aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/phy/phy-msm-usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/phy/phy-msm-usb.c')
-rw-r--r--drivers/usb/phy/phy-msm-usb.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c
index b2b060b0..3985cb2a 100644
--- a/drivers/usb/phy/phy-msm-usb.c
+++ b/drivers/usb/phy/phy-msm-usb.c
@@ -805,15 +805,9 @@ static int msm_otg_reset(struct usb_phy *phy)
USB_HS_APF_CTRL);
/*
- * Enable USB BAM if USB BAM is enabled already before block reset as
- * block reset also resets USB BAM registers.
+ * Disable USB BAM as block reset resets USB BAM registers.
*/
- if (test_bit(ID, &motg->inputs)) {
- msm_usb_bam_enable(CI_CTRL,
- phy->otg->gadget->bam2bam_func_enabled);
- } else {
- dev_dbg(phy->dev, "host mode BAM not enabled\n");
- }
+ msm_usb_bam_enable(CI_CTRL, false);
return 0;
}
@@ -1812,9 +1806,11 @@ static void msm_otg_notify_charger(struct msm_otg *motg, unsigned mA)
/*
* This condition will be true when usb cable is disconnected
- * during bootup before charger detection mechanism starts.
+ * during bootup before enumeration. Check charger type also
+ * to avoid clearing online flag in case of valid charger.
*/
- if (motg->online && motg->cur_power == 0 && mA == 0)
+ if (motg->online && motg->cur_power == 0 && mA == 0 &&
+ (motg->chg_type == USB_INVALID_CHARGER))
msm_otg_set_online_status(motg);
if (motg->cur_power == mA)
@@ -3754,10 +3750,11 @@ set_msm_otg_perf_mode(struct device *dev, struct device_attribute *attr,
ret = clk_set_rate(motg->core_clk, clk_rate);
if (ret)
pr_err("sys_clk set_rate fail:%d %ld\n", ret, clk_rate);
+ msm_otg_dbg_log_event(&motg->phy, "OTG PERF SET",
+ clk_rate, ret);
} else {
pr_err("usb sys_clk rate is undefined\n");
}
- msm_otg_dbg_log_event(&motg->phy, "OTG PERF SET", clk_rate, ret);
return count;
}