[lkml]   [2019]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH AUTOSEL 4.19 097/209] usb: dwc2: disable power_down on rockchip devices
From: SolidHal <>

[ Upstream commit c216765d3a1defda5e7e2dabd878f99f0cd2ebf2 ]

The bug would let the usb controller enter partial power down,
which was formally known as hibernate, upon boot if nothing was plugged
in to the port. Partial power down couldn't be exited properly, so any
usb devices plugged in after boot would not be usable.

Before the name change, params.hibernation was false by default, so
_dwc2_hcd_suspend() would skip entering hibernation. With the
rename, _dwc2_hcd_suspend() was changed to use params.power_down
to decide whether or not to enter partial power down.

Since params.power_down is non-zero by default, it needs to be set
to 0 for rockchip devices to restore functionality.

This bug was reported in the linux-usb thread:
REGRESSION: usb: dwc2: USB device not seen after boot

The commit that caused this regression is:

Signed-off-by: SolidHal <>
Acked-by: Minas Harutyunyan <>
Signed-off-by: Felipe Balbi <>
Signed-off-by: Sasha Levin <>
drivers/usb/dwc2/params.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
index dff2c6e8d797c..a93415f33bf36 100644
--- a/drivers/usb/dwc2/params.c
+++ b/drivers/usb/dwc2/params.c
@@ -88,6 +88,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
p->host_perio_tx_fifo_size = 256;
p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
+ p->power_down = 0;

static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
 \ /
  Last update: 2019-11-13 03:24    [W:0.356 / U:0.636 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site