Loading drivers/usb/phy/phy-msm-qusb.c +29 −33 Original line number Diff line number Diff line Loading @@ -183,15 +183,14 @@ static int qusb_phy_config_vdd(struct qusb_phy *qphy, int high) return ret; } static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, bool toggle_vdd) static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on) { int ret = 0; dev_dbg(qphy->phy.dev, "%s turn %s regulators. power_enabled:%d\n", __func__, on ? "on" : "off", qphy->power_enabled); if (toggle_vdd && qphy->power_enabled == on) { if (qphy->power_enabled == on) { dev_dbg(qphy->phy.dev, "PHYs' regulators are already ON.\n"); return 0; } Loading @@ -199,7 +198,6 @@ static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, if (!on) goto disable_vdda33; if (toggle_vdd) { ret = qusb_phy_config_vdd(qphy, true); if (ret) { dev_err(qphy->phy.dev, "Unable to config VDD:%d\n", Loading @@ -212,7 +210,6 @@ static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, dev_err(qphy->phy.dev, "Unable to enable VDD\n"); goto unconfig_vdd; } } ret = regulator_set_optimum_mode(qphy->vdda18, QUSB2PHY_1P8_HPM_LOAD); if (ret < 0) { Loading Loading @@ -254,7 +251,6 @@ static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, goto unset_vdd33; } if (toggle_vdd) qphy->power_enabled = true; pr_debug("%s(): QUSB PHY's regulators are turned ON.\n", __func__); Loading Loading @@ -293,7 +289,6 @@ put_vdda18_lpm: dev_err(qphy->phy.dev, "Unable to set LPM of vdda18\n"); disable_vdd: if (toggle_vdd) { ret = regulator_disable(qphy->vdd); if (ret) dev_err(qphy->phy.dev, "Unable to disable vdd:%d\n", Loading @@ -304,9 +299,7 @@ unconfig_vdd: if (ret) dev_err(qphy->phy.dev, "Unable unconfig VDD:%d\n", ret); } err_vdd: if (toggle_vdd) qphy->power_enabled = false; dev_dbg(qphy->phy.dev, "QUSB PHY's regulators are turned OFF.\n"); return ret; Loading @@ -328,7 +321,7 @@ static int qusb_phy_update_dpdm(struct usb_phy *phy, int value) case POWER_SUPPLY_DP_DM_DPF_DMF: dev_dbg(phy->dev, "POWER_SUPPLY_DP_DM_DPF_DMF\n"); if (!qphy->rm_pulldown) { ret = qusb_phy_enable_power(qphy, true, false); ret = qusb_phy_enable_power(qphy, true); if (ret >= 0) { qphy->rm_pulldown = true; dev_dbg(phy->dev, "DP_DM_F: rm_pulldown:%d\n", Loading Loading @@ -371,7 +364,10 @@ static int qusb_phy_update_dpdm(struct usb_phy *phy, int value) clk_disable_unprepare(qphy->cfg_ahb_clk); } ret = qusb_phy_enable_power(qphy, false, false); if (!qphy->cable_connected) { dev_dbg(phy->dev, "turn off for HVDCP case\n"); ret = qusb_phy_enable_power(qphy, false); } if (ret >= 0) { qphy->rm_pulldown = false; dev_dbg(phy->dev, "DP_DM_R: rm_pulldown:%d\n", Loading Loading @@ -574,7 +570,7 @@ static int qusb_phy_init(struct usb_phy *phy) dev_dbg(phy->dev, "%s\n", __func__); ret = qusb_phy_enable_power(qphy, true, true); ret = qusb_phy_enable_power(qphy, true); if (ret) return ret; Loading Loading @@ -807,7 +803,7 @@ static int qusb_phy_set_suspend(struct usb_phy *phy, int suspend) wmb(); qusb_phy_enable_clocks(qphy, false); qusb_phy_enable_power(qphy, false, true); qusb_phy_enable_power(qphy, false); } qphy->suspended = true; } else { Loading @@ -819,7 +815,7 @@ static int qusb_phy_set_suspend(struct usb_phy *phy, int suspend) writel_relaxed(0x00, qphy->base + QUSB2PHY_PORT_INTR_CTRL); } else { qusb_phy_enable_power(qphy, true, true); qusb_phy_enable_power(qphy, true); qusb_phy_enable_clocks(qphy, true); } qphy->suspended = false; Loading Loading @@ -1156,7 +1152,7 @@ static int qusb_phy_remove(struct platform_device *pdev) qphy->clocks_enabled = false; } qusb_phy_enable_power(qphy, false, true); qusb_phy_enable_power(qphy, false); return 0; } Loading Loading
drivers/usb/phy/phy-msm-qusb.c +29 −33 Original line number Diff line number Diff line Loading @@ -183,15 +183,14 @@ static int qusb_phy_config_vdd(struct qusb_phy *qphy, int high) return ret; } static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, bool toggle_vdd) static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on) { int ret = 0; dev_dbg(qphy->phy.dev, "%s turn %s regulators. power_enabled:%d\n", __func__, on ? "on" : "off", qphy->power_enabled); if (toggle_vdd && qphy->power_enabled == on) { if (qphy->power_enabled == on) { dev_dbg(qphy->phy.dev, "PHYs' regulators are already ON.\n"); return 0; } Loading @@ -199,7 +198,6 @@ static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, if (!on) goto disable_vdda33; if (toggle_vdd) { ret = qusb_phy_config_vdd(qphy, true); if (ret) { dev_err(qphy->phy.dev, "Unable to config VDD:%d\n", Loading @@ -212,7 +210,6 @@ static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, dev_err(qphy->phy.dev, "Unable to enable VDD\n"); goto unconfig_vdd; } } ret = regulator_set_optimum_mode(qphy->vdda18, QUSB2PHY_1P8_HPM_LOAD); if (ret < 0) { Loading Loading @@ -254,7 +251,6 @@ static int qusb_phy_enable_power(struct qusb_phy *qphy, bool on, goto unset_vdd33; } if (toggle_vdd) qphy->power_enabled = true; pr_debug("%s(): QUSB PHY's regulators are turned ON.\n", __func__); Loading Loading @@ -293,7 +289,6 @@ put_vdda18_lpm: dev_err(qphy->phy.dev, "Unable to set LPM of vdda18\n"); disable_vdd: if (toggle_vdd) { ret = regulator_disable(qphy->vdd); if (ret) dev_err(qphy->phy.dev, "Unable to disable vdd:%d\n", Loading @@ -304,9 +299,7 @@ unconfig_vdd: if (ret) dev_err(qphy->phy.dev, "Unable unconfig VDD:%d\n", ret); } err_vdd: if (toggle_vdd) qphy->power_enabled = false; dev_dbg(qphy->phy.dev, "QUSB PHY's regulators are turned OFF.\n"); return ret; Loading @@ -328,7 +321,7 @@ static int qusb_phy_update_dpdm(struct usb_phy *phy, int value) case POWER_SUPPLY_DP_DM_DPF_DMF: dev_dbg(phy->dev, "POWER_SUPPLY_DP_DM_DPF_DMF\n"); if (!qphy->rm_pulldown) { ret = qusb_phy_enable_power(qphy, true, false); ret = qusb_phy_enable_power(qphy, true); if (ret >= 0) { qphy->rm_pulldown = true; dev_dbg(phy->dev, "DP_DM_F: rm_pulldown:%d\n", Loading Loading @@ -371,7 +364,10 @@ static int qusb_phy_update_dpdm(struct usb_phy *phy, int value) clk_disable_unprepare(qphy->cfg_ahb_clk); } ret = qusb_phy_enable_power(qphy, false, false); if (!qphy->cable_connected) { dev_dbg(phy->dev, "turn off for HVDCP case\n"); ret = qusb_phy_enable_power(qphy, false); } if (ret >= 0) { qphy->rm_pulldown = false; dev_dbg(phy->dev, "DP_DM_R: rm_pulldown:%d\n", Loading Loading @@ -574,7 +570,7 @@ static int qusb_phy_init(struct usb_phy *phy) dev_dbg(phy->dev, "%s\n", __func__); ret = qusb_phy_enable_power(qphy, true, true); ret = qusb_phy_enable_power(qphy, true); if (ret) return ret; Loading Loading @@ -807,7 +803,7 @@ static int qusb_phy_set_suspend(struct usb_phy *phy, int suspend) wmb(); qusb_phy_enable_clocks(qphy, false); qusb_phy_enable_power(qphy, false, true); qusb_phy_enable_power(qphy, false); } qphy->suspended = true; } else { Loading @@ -819,7 +815,7 @@ static int qusb_phy_set_suspend(struct usb_phy *phy, int suspend) writel_relaxed(0x00, qphy->base + QUSB2PHY_PORT_INTR_CTRL); } else { qusb_phy_enable_power(qphy, true, true); qusb_phy_enable_power(qphy, true); qusb_phy_enable_clocks(qphy, true); } qphy->suspended = false; Loading Loading @@ -1156,7 +1152,7 @@ static int qusb_phy_remove(struct platform_device *pdev) qphy->clocks_enabled = false; } qusb_phy_enable_power(qphy, false, true); qusb_phy_enable_power(qphy, false); return 0; } Loading