diff options
author | Jimmy Hu <hhhuuu@google.com> | 2022-05-26 08:50:30 +0000 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2024-03-21 17:45:15 +0200 |
commit | b2c3134113250ea997e867384f95fb669f806e9c (patch) | |
tree | a5487b996af6ff31fbc643561d9e39b155b603df | |
parent | c2e4ed66cf61a5b3cbf75e28dfce253c3411325d (diff) |
usb: dwc3: Handle charging behavior when usb data is disabled
Bug: 221009551
Test: build, boot
Signed-off-by: Jimmy Hu <hhhuuu@google.com>
Change-Id: I82add2a6cb5e3060c930105b1b8b4f45da85f5f8
-rw-r--r-- | drivers/usb/dwc3/dwc3-msm.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index c8193b224ea6..c40c15a22abc 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -2773,8 +2773,13 @@ static int dwc3_msm_vbus_notifier(struct notifier_block *nb, goto done; } - if (!mdwc->usb_data_enabled) + if (!mdwc->usb_data_enabled) { + if (event) + dwc3_msm_gadget_vbus_draw(mdwc, 500); + else + dwc3_msm_gadget_vbus_draw(mdwc, 0); return NOTIFY_DONE; + } dev_dbg(mdwc->dev, "vbus:%ld event received\n", event); @@ -4047,7 +4052,8 @@ static void dwc3_otg_sm_work(struct work_struct *w) work = 1; break; } else { - dwc3_msm_gadget_vbus_draw(mdwc, 0); + if (mdwc->usb_data_enabled) + dwc3_msm_gadget_vbus_draw(mdwc, 0); pm_relax(mdwc->dev); dev_dbg(mdwc->dev, "Cable disconnected\n"); } |