Message ID | 1642398248-21753-3-git-send-email-quic_c_sanm@quicinc.com |
---|---|
State | New |
Headers | show |
Series | USB DWC3 host wake up support from system suspend | expand |
On 1/18/2022 2:27 PM, Jun Li wrote: > Sandeep Maheswaram <quic_c_sanm@quicinc.com> 于2022年1月17日周一 22:03写道: >> Avoiding phy powerdown when wakeup capable devices are connected >> by checking wakeup property of xhci plat device. >> Phy should be on to wake up the device from suspend using wakeup capable >> devices such as keyboard and mouse. >> >> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >> Tested-by: Brian Norris <briannorris@chromium.org> >> --- >> Remove redundant else part in dwc3_resume_common. This will not be >> required if GDSC is always on during suspend/resume. >> >> >> drivers/usb/dwc3/core.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c >> index f4c0995..e7a5e3f 100644 >> --- a/drivers/usb/dwc3/core.c >> +++ b/drivers/usb/dwc3/core.c >> @@ -1789,7 +1789,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) >> dwc3_core_exit(dwc); >> break; >> case DWC3_GCTL_PRTCAP_HOST: >> - if (!PMSG_IS_AUTO(msg)) { >> + if (!PMSG_IS_AUTO(msg) && !device_may_wakeup(&dwc->xhci->dev)) { >> dwc3_core_exit(dwc); >> break; >> } >> @@ -1850,7 +1850,7 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) >> spin_unlock_irqrestore(&dwc->lock, flags); >> break; >> case DWC3_GCTL_PRTCAP_HOST: >> - if (!PMSG_IS_AUTO(msg)) { >> + if (!PMSG_IS_AUTO(msg) && !device_may_wakeup(&dwc->xhci->dev)) { > If XHCI_SKIP_PHY_INIT is not set, I see the usb core will help to > handle phy power on/off and init/exit via drivers/usb/core/phy.c, so > if the wakeup is enabled for controller, then finally the phy will not > be power off/exit. I am wondering if this change is actually required if > that is the case. > > Sorry for the late comment. > > Li Jun > The patch is to avoid phy power off in case only if some wakeup capable devices are connected. Regarding XHCI_SKIP_PHY_INIT we are setting in this patch https://patchwork.kernel.org/project/linux-arm-msm/patch/1640153383-21036-1-git-send-email-quic_c_sanm@quicinc.com/ > >> ret = dwc3_core_init_for_resume(dwc); >> if (ret) >> return ret; >> -- >> 2.7.4 >>
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index f4c0995..e7a5e3f 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1789,7 +1789,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) dwc3_core_exit(dwc); break; case DWC3_GCTL_PRTCAP_HOST: - if (!PMSG_IS_AUTO(msg)) { + if (!PMSG_IS_AUTO(msg) && !device_may_wakeup(&dwc->xhci->dev)) { dwc3_core_exit(dwc); break; } @@ -1850,7 +1850,7 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) spin_unlock_irqrestore(&dwc->lock, flags); break; case DWC3_GCTL_PRTCAP_HOST: - if (!PMSG_IS_AUTO(msg)) { + if (!PMSG_IS_AUTO(msg) && !device_may_wakeup(&dwc->xhci->dev)) { ret = dwc3_core_init_for_resume(dwc); if (ret) return ret;