summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Hu <hhhuuu@google.com>2022-05-26 08:50:30 +0000
committerMichael Bestas <mkbestas@lineageos.org>2024-03-21 17:45:15 +0200
commitb2c3134113250ea997e867384f95fb669f806e9c (patch)
treea5487b996af6ff31fbc643561d9e39b155b603df
parentc2e4ed66cf61a5b3cbf75e28dfce253c3411325d (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.c10
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");
}