Adds a new flow of exiting hibernation when PC is resumed
from suspend state.

Signed-off-by: Artur Petrosyan <arthur.petros...@synopsys.com>
---
 drivers/usb/dwc2/hcd.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index db8eb1940d17..c92307775863 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -4470,6 +4470,16 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd)
                set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
                break;
        case DWC2_POWER_DOWN_PARAM_HIBERNATION:
+               ret = dwc2_exit_hibernation(hsotg, 0, 0, 1);
+               if (ret)
+                       dev_err(hsotg->dev, "exit hibernation failed.\n");
+
+               /*
+                * Set HW accessible bit before powering on the controller
+                * since an interrupt may rise.
+                */
+               set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+               break;
        case DWC2_POWER_DOWN_PARAM_NONE:
                /*
                 * If not hibernation nor partial power down are supported,
-- 
2.25.1

Reply via email to