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 <[email protected]>
---
 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;
+
        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

Reply via email to