Commit e358c215 authored by Artur Petrosyan's avatar Artur Petrosyan Committed by Greg Kroah-Hartman
Browse files

usb: dwc2: Move exit hibernation to dwc2_port_resume() function



This move is done to call hibernation exit handler in
"dwc2_port_resume()" function when core receives port resume.
Otherwise it could be confusing to exit hibernation in
"dwc2_hcd_hub_control()" function but other power saving modes
in "dwc2_port_resume()" function.

Acked-by: default avatarMinas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Signed-off-by: default avatarArtur Petrosyan <Arthur.Petrosyan@synopsys.com>
Link: https://lore.kernel.org/r/20210416124755.E47F3A005D@mailhost.synopsys.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8f7f8689
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -3383,6 +3383,11 @@ int dwc2_port_resume(struct dwc2_hsotg *hsotg)
				"exit partial_power_down failed.\n");
		break;
	case DWC2_POWER_DOWN_PARAM_HIBERNATION:
		/* Exit host hibernation. */
		ret = dwc2_exit_hibernation(hsotg, 0, 0, 1);
		if (ret)
			dev_err(hsotg->dev, "exit hibernation failed.\n");
		break;
	case DWC2_POWER_DOWN_PARAM_NONE:
		/*
		 * If not hibernation nor partial power down are supported,
@@ -3446,12 +3451,8 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq,
			dev_dbg(hsotg->dev,
				"ClearPortFeature USB_PORT_FEAT_SUSPEND\n");

			if (hsotg->bus_suspended) {
				if (hsotg->hibernated)
					dwc2_exit_hibernation(hsotg, 0, 0, 1);
				else
					dwc2_port_resume(hsotg);
			}
			if (hsotg->bus_suspended)
				retval = dwc2_port_resume(hsotg);
			break;

		case USB_PORT_FEAT_POWER: