diff options
Diffstat (limited to 'drivers/usb/phy/phy-msm-usb.c')
| -rw-r--r-- | drivers/usb/phy/phy-msm-usb.c | 19 |
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; } |
