video: rockchip: fb: delete DISPLAY_POLICY_BOX_TEMP
[firefly-linux-kernel-4.4.55.git] / drivers / phy / phy-samsung-usb2.c
index 908949dfb4dbec93e22c55c27b293c2cb5bf6c9f..55b6994932e37f0b3d5d14c72cb1ff7df4807f85 100644 (file)
@@ -37,10 +37,14 @@ static int samsung_usb2_phy_power_on(struct phy *phy)
                spin_lock(&drv->lock);
                ret = inst->cfg->power_on(inst);
                spin_unlock(&drv->lock);
+               if (ret)
+                       goto err_power_on;
        }
 
        return 0;
 
+err_power_on:
+       clk_disable_unprepare(drv->ref_clk);
 err_instance_clk:
        clk_disable_unprepare(drv->clk);
 err_main_clk:
@@ -51,7 +55,7 @@ static int samsung_usb2_phy_power_off(struct phy *phy)
 {
        struct samsung_usb2_phy_instance *inst = phy_get_drvdata(phy);
        struct samsung_usb2_phy_driver *drv = inst->drv;
-       int ret = 0;
+       int ret;
 
        dev_dbg(drv->dev, "Request to power_off \"%s\" usb phy\n",
                inst->cfg->label);
@@ -59,10 +63,12 @@ static int samsung_usb2_phy_power_off(struct phy *phy)
                spin_lock(&drv->lock);
                ret = inst->cfg->power_off(inst);
                spin_unlock(&drv->lock);
+               if (ret)
+                       return ret;
        }
        clk_disable_unprepare(drv->ref_clk);
        clk_disable_unprepare(drv->clk);
-       return ret;
+       return 0;
 }
 
 static struct phy_ops samsung_usb2_phy_ops = {
@@ -202,8 +208,7 @@ static int samsung_usb2_phy_probe(struct platform_device *pdev)
                struct samsung_usb2_phy_instance *p = &drv->instances[i];
 
                dev_dbg(dev, "Creating phy \"%s\"\n", label);
-               p->phy = devm_phy_create(dev, NULL, &samsung_usb2_phy_ops,
-                                        NULL);
+               p->phy = devm_phy_create(dev, NULL, &samsung_usb2_phy_ops);
                if (IS_ERR(p->phy)) {
                        dev_err(drv->dev, "Failed to create usb2_phy \"%s\"\n",
                                label);