usb: chipidea: otg: handling vbus disconnect event occurred during system suspend
Subsystems (2)
PATCH 1/1 usb: chipidea: otg: handling vbus disconnect event occurred during system suspend
During system suspend, the role switch may occur, eg, from gadget->host. In this case, the vbus disconnect event is lost, we add this handling in role switch routine in this commit.
Signed-off-by Peter Chen <[email protected]>
--- drivers/usb/chipidea/otg.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/usb/chipidea/otg.c +7 -0
@@ -170,6 +170,13 @@ static void ci_handle_id_switch(struct ci_hdrc *ci)dev_dbg (ci->dev,"switching from %s to %s\n" ,ci_role (ci)->name, ci->roles[role]->name); +if (ci->vbus_active && ci->role ==CI_ROLE_GADGET ) +/* +* vbus disconnect event is lost due to role +* switch occurs during system suspend. +*/ +usb_gadget_vbus_disconnect (&ci->gadget); +ci_role_stop (ci); if (role == CI_ROLE_GADGET &&
Signature · 1 line
2.17.1