diff mbox series

[3/3] usb: dwc2: Prevent core suspend when port connection flag is 0

Message ID 20210326102510.BDEDEA005D@mailhost.synopsys.com (mailing list archive)
State New, archived
Headers show
Series usb: dwc2: Fix power saving general issues. | expand

Commit Message

Artur Petrosyan March 26, 2021, 10:25 a.m. UTC
In host mode port connection status flag is "0" when loading
the driver. After loading the driver system asserts suspend
which is handled by "_dwc2_hcd_suspend()" function. Before
the system suspend the port connection status is "0". As
result need to check the "port_connect_status" if it is "0",
then skipping entering to suspend.

Cc: <stable@vger.kernel.org> # 5.2
Fixes: 6f6d70597c15 ("usb: dwc2: bus suspend/resume for hosts with
DWC2_POWER_DOWN_PARAM_NONE")
Signed-off-by: Artur Petrosyan <Arthur.Petrosyan@synopsys.com>
---
 drivers/usb/dwc2/hcd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Greg KH March 26, 2021, 1:33 p.m. UTC | #1
On Fri, Mar 26, 2021 at 02:25:09PM +0400, Artur Petrosyan wrote:
> In host mode port connection status flag is "0" when loading
> the driver. After loading the driver system asserts suspend
> which is handled by "_dwc2_hcd_suspend()" function. Before
> the system suspend the port connection status is "0". As
> result need to check the "port_connect_status" if it is "0",
> then skipping entering to suspend.
> 
> Cc: <stable@vger.kernel.org> # 5.2
> Fixes: 6f6d70597c15 ("usb: dwc2: bus suspend/resume for hosts with
> DWC2_POWER_DOWN_PARAM_NONE")

In the future, do not line-wrap the fixes line.

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 40e5655921bf..1a9789ec5847 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -4322,7 +4322,8 @@  static int _dwc2_hcd_suspend(struct usb_hcd *hcd)
 	if (hsotg->op_state == OTG_STATE_B_PERIPHERAL)
 		goto unlock;
 
-	if (hsotg->params.power_down > DWC2_POWER_DOWN_PARAM_PARTIAL)
+	if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL ||
+	    hsotg->flags.b.port_connect_status == 0)
 		goto skip_power_saving;
 
 	/*