Hi Sandeep, On Tue, Mar 22, 2022 at 02:02:21PM +0530, Pavan Kondeti wrote: > Hi Sandeep, > > On Tue, Mar 22, 2022 at 12:37:53PM +0530, Sandeep Maheswaram wrote: > > During suspend read the status of all port and make sure the PHYs > > are in the correct mode based on current speed. > > Phy interrupt masks are set based on this mode. Keep track of the mode > > of the HS PHY to be able to configure wakeup properly. > > > > Also check during suspend if any wakeup capable devices are > > connected to the controller (directly or through hubs), if there > > are none set a flag to indicate that the PHY is powered > > down during suspend. > > > > Signed-off-by: Sandeep Maheswaram <quic_c_sanm@xxxxxxxxxxx> > > --- > > drivers/usb/dwc3/core.c | 54 ++++++++++++++++++++++++++++++++++++++++--------- > > 1 file changed, 45 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > > index 1170b80..232a734 100644 > > --- a/drivers/usb/dwc3/core.c > > +++ b/drivers/usb/dwc3/core.c > > @@ -32,12 +32,14 @@ > > #include <linux/usb/gadget.h> > > #include <linux/usb/of.h> > > #include <linux/usb/otg.h> > > +#include <linux/usb/hcd.h> > > > > #include "core.h" > > #include "gadget.h" > > #include "io.h" > > > > #include "debug.h" > > +#include "../host/xhci.h" > > > > #define DWC3_DEFAULT_AUTOSUSPEND_DELAY 5000 /* ms */ > > > > @@ -1861,10 +1863,36 @@ static int dwc3_core_init_for_resume(struct dwc3 *dwc) > > return ret; > > } > > > > +static void dwc3_set_phy_speed_mode(struct dwc3 *dwc) > > +{ > > + > > + int i, num_ports; > > + u32 reg; > > + struct usb_hcd *hcd = platform_get_drvdata(dwc->xhci); > > + struct xhci_hcd *xhci_hcd = hcd_to_xhci(hcd); > > + > > + dwc->hs_phy_mode = 0; > > + Sorry, My bad. I did not notice that the flags are cleared here. Thanks, Pavan