2018-10-23 02:11:16 +00:00
|
|
|
From 3379ffad8f5b3db47578cc4eadc3c0f22f7547f1 Mon Sep 17 00:00:00 2001
|
2018-10-09 01:37:09 +00:00
|
|
|
From: Hal Emmerich <hal@halemmerich.com>
|
|
|
|
Date: Thu, 19 Jul 2018 21:48:08 -0500
|
2018-10-11 02:09:39 +00:00
|
|
|
Subject: [PATCH 9/9] usb: dwc2: disable power_down on rockchip devices
|
2018-10-09 01:37:09 +00:00
|
|
|
|
|
|
|
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:
|
|
|
|
6d23ee9caa6790aea047f9aca7f3c03cb8d96eb6
|
|
|
|
|
|
|
|
Signed-off-by: Hal Emmerich <hal@halemmerich.com>
|
|
|
|
---
|
|
|
|
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
|
2018-10-23 02:11:16 +00:00
|
|
|
index bf7052e037d6..09292dc977e4 100644
|
2018-10-09 01:37:09 +00:00
|
|
|
--- a/drivers/usb/dwc2/params.c
|
|
|
|
+++ b/drivers/usb/dwc2/params.c
|
2018-10-23 02:11:16 +00:00
|
|
|
@@ -81,6 +81,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
|
2018-10-09 01:37:09 +00:00
|
|
|
p->host_perio_tx_fifo_size = 256;
|
|
|
|
p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
|
|
|
|
GAHBCFG_HBSTLEN_SHIFT;
|
|
|
|
+ p->power_down = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
|
|
|
|
--
|
|
|
|
2.19.0
|
|
|
|
|