Adds Partial Power Down exiting flow when set port feature
reset is received in suspended state.

Signed-off-by: Artur Petrosyan <arthur.petros...@synopsys.com>
---
 Changes in v3:
 - None
 Changes in v2:
 - None

 drivers/usb/dwc2/hcd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 720354df014b..7c7496719152 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -3694,6 +3694,15 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg 
*hsotg, u16 typereq,
                        if (hsotg->params.power_down == 
DWC2_POWER_DOWN_PARAM_HIBERNATION &&
                            hsotg->hibernated)
                                dwc2_exit_hibernation(hsotg, 0, 1, 1);
+
+                       if (hsotg->in_ppd) {
+                               retval = dwc2_exit_partial_power_down(hsotg, 1,
+                                                                     true);
+                               if (retval)
+                                       dev_err(hsotg->dev,
+                                               "exit partial_power_down 
failed\n");
+                       }
+
                        hprt0 = dwc2_read_hprt0(hsotg);
                        dev_dbg(hsotg->dev,
                                "SetPortFeature - USB_PORT_FEAT_RESET\n");
-- 
2.25.1

Reply via email to