Message ID | 1601376452-31839-2-git-send-email-sanm@codeaurora.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | USB DWC3 host wake up support from system suspend | expand |
On 29.09.2020 13:47, Sandeep Maheswaram wrote: > Avoiding phy powerdown in host mode so that it can be wake up by devices. s/wake/woken/? > Added hs_phy_flags and ss_phy_flags to check connection status and > set phy mode and configure interrupts. > > Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> [...] MBR, Sergei
On Tue, Sep 29, 2020 at 04:17:28PM +0530, Sandeep Maheswaram wrote: > Avoiding phy powerdown in host mode so that it can be wake up by devices. > Added hs_phy_flags and ss_phy_flags to check connection status and > set phy mode and configure interrupts. > > Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> > --- > drivers/usb/dwc3/core.c | 14 +++----------- > drivers/usb/dwc3/core.h | 3 +++ > 2 files changed, 6 insertions(+), 11 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 385262f..c32ed10 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1663,10 +1663,6 @@ 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)) { > - dwc3_core_exit(dwc); > - break; > - } > > /* Let controller to suspend HSPHY before PHY driver suspends */ > if (dwc->dis_u2_susphy_quirk || > @@ -1724,13 +1720,9 @@ 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)) { > - ret = dwc3_core_init_for_resume(dwc); > - if (ret) > - return ret; > - dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_HOST); > - break; > - } > + > + dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_HOST); > + > /* Restore GUSB2PHYCFG bits that were modified in suspend */ > reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); > if (dwc->dis_u2_susphy_quirk) > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h > index 83b6c87..cd385a8 100644 > --- a/drivers/usb/dwc3/core.h > +++ b/drivers/usb/dwc3/core.h > @@ -1096,6 +1096,9 @@ struct dwc3 { > > bool phys_ready; > > + unsigned int hs_phy_flags; > + unsigned int ss_phy_flags; > + It doesn't seem ss_phy_flags is really needed, it is only used in dwc3_set_phy_speed_flags(), a local variable could be used instead. The 'flags' are passed as 'mode' to phy_set_mode(), I think it would be clearer to reflect that in the name, i.e. 'hs_phy_mode' instead of 'hs_phy_flags'.
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 385262f..c32ed10 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1663,10 +1663,6 @@ 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)) { - dwc3_core_exit(dwc); - break; - } /* Let controller to suspend HSPHY before PHY driver suspends */ if (dwc->dis_u2_susphy_quirk || @@ -1724,13 +1720,9 @@ 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)) { - ret = dwc3_core_init_for_resume(dwc); - if (ret) - return ret; - dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_HOST); - break; - } + + dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_HOST); + /* Restore GUSB2PHYCFG bits that were modified in suspend */ reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); if (dwc->dis_u2_susphy_quirk) diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 83b6c87..cd385a8 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -1096,6 +1096,9 @@ struct dwc3 { bool phys_ready; + unsigned int hs_phy_flags; + unsigned int ss_phy_flags; + struct ulpi *ulpi; bool ulpi_ready;
Avoiding phy powerdown in host mode so that it can be wake up by devices. Added hs_phy_flags and ss_phy_flags to check connection status and set phy mode and configure interrupts. Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org> --- drivers/usb/dwc3/core.c | 14 +++----------- drivers/usb/dwc3/core.h | 3 +++ 2 files changed, 6 insertions(+), 11 deletions(-)