Avoiding phy powerdown in host mode so that it can be woken up by devices. Added hs_phy_mode flag to check connection status and set phy mode and configure interrupts. Signed-off-by: Sandeep Maheswaram <sanm@xxxxxxxxxxxxxx> --- drivers/usb/dwc3/core.c | 14 +++----------- drivers/usb/dwc3/core.h | 2 ++ 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index bdf0925..0e4bc1e 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1672,10 +1672,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 || @@ -1733,13 +1729,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 74323b1..da63d4a3 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -1101,6 +1101,8 @@ struct dwc3 { bool phys_ready; + unsigned int hs_phy_mode; + struct ulpi *ulpi; bool ulpi_ready; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation