usb: dwc2: Add clock gating entering flow by system suspend
authorArtur Petrosyan <Arthur.Petrosyan@synopsys.com>
Tue, 13 Apr 2021 07:37:15 +0000 (11:37 +0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Apr 2021 10:25:12 +0000 (12:25 +0200)
If not hibernation nor partial power down are supported,
clock gating is used to save power.

Adds a new flow of entering clock gating when PC is
suspended.

Signed-off-by: Artur Petrosyan <Arthur.Petrosyan@synopsys.com>
Link: https://lore.kernel.org/r/20210413073716.30C13A0094@mailhost.synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc2/hcd.c

index 31d6a1b..09dcd37 100644 (file)
@@ -4372,6 +4372,15 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd)
                break;
        case DWC2_POWER_DOWN_PARAM_HIBERNATION:
        case DWC2_POWER_DOWN_PARAM_NONE:
+               /*
+                * If not hibernation nor partial power down are supported,
+                * clock gating is used to save power.
+                */
+               dwc2_host_enter_clock_gating(hsotg);
+
+               /* After entering suspend, hardware is not accessible */
+               clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+               break;
        default:
                goto skip_power_saving;
        }