phy: exynos: Change order of initialization of phy in power_on
authorKamil Debski <k.debski@samsung.com>
Mon, 7 Oct 2013 16:23:49 +0000 (18:23 +0200)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:44:52 +0000 (11:44 +0900)
The order was changed to turn power on first and the disable the physical
isolation.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Phy driver change - order of init - to be squashed

drivers/phy/phy-exynos4210-usb.c
drivers/phy/phy-exynos4212-usb.c

index d75a554..6102aac 100644 (file)
@@ -222,19 +222,9 @@ static int exynos4210_power_on(struct uphy_instance *inst)
        if (inst->ref_cnt > 1)
                return 0;
 
-       exynos4210_isol(inst, 0);
+       /* Order of initialisation is important - first power then isolation */
        exynos4210_phy_pwr(inst, 1);
-
-       /* Power on the device, as it is necessary for HSIC to work */
-       if (inst->cfg->id == EXYNOS4210_HOST) {
-               struct uphy_instance *device =
-                                       &drv->uphy_instances[EXYNOS4210_DEVICE];
-               device->ref_cnt++;
-               if (device->ref_cnt > 1)
-                       return 0;
-               exynos4210_phy_pwr(device, 1);
-               exynos4210_isol(device, 0);
-       }
+       exynos4210_isol(inst, 0);
 
        return 0;
 }
@@ -257,16 +247,6 @@ static int exynos4210_power_off(struct uphy_instance *inst)
        exynos4210_phy_pwr(inst, 0);
        exynos4210_isol(inst, 1);
 
-       if (inst->cfg->id == EXYNOS4210_HOST) {
-               struct uphy_instance *device =
-                                       &drv->uphy_instances[EXYNOS4210_DEVICE];
-               device->ref_cnt--;
-               if (device->ref_cnt > 0)
-                       return 0;
-               exynos4210_phy_pwr(device, 0);
-               exynos4210_isol(device, 1);
-       }
-
        return 0;
 }
 
index 80480a4..b7de33f 100644 (file)
@@ -255,8 +255,8 @@ static int exynos4212_power_on(struct uphy_instance *inst)
        if (inst->ref_cnt > 1)
                return 0;
 
-       exynos4212_isol(inst, 0);
        exynos4212_phy_pwr(inst, 1);
+       exynos4212_isol(inst, 0);
 
        /* Power on the device, as it is necessary for HSIC to work */
        if (inst->cfg->id == EXYNOS4212_HSIC0) {