summaryrefslogtreecommitdiff
path: root/libre-testing/linux-libre/0009-usb-dwc2-disable-power_down-on-rockchip-devices.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre-testing/linux-libre/0009-usb-dwc2-disable-power_down-on-rockchip-devices.patch')
-rw-r--r--libre-testing/linux-libre/0009-usb-dwc2-disable-power_down-on-rockchip-devices.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/libre-testing/linux-libre/0009-usb-dwc2-disable-power_down-on-rockchip-devices.patch b/libre-testing/linux-libre/0009-usb-dwc2-disable-power_down-on-rockchip-devices.patch
new file mode 100644
index 000000000..a91facd17
--- /dev/null
+++ b/libre-testing/linux-libre/0009-usb-dwc2-disable-power_down-on-rockchip-devices.patch
@@ -0,0 +1,44 @@
+From 3379ffad8f5b3db47578cc4eadc3c0f22f7547f1 Mon Sep 17 00:00:00 2001
+From: Hal Emmerich <hal@halemmerich.com>
+Date: Thu, 19 Jul 2018 21:48:08 -0500
+Subject: [PATCH 9/9] usb: dwc2: disable power_down on rockchip devices
+
+ 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
+index bf7052e037d6..09292dc977e4 100644
+--- a/drivers/usb/dwc2/params.c
++++ b/drivers/usb/dwc2/params.c
+@@ -81,6 +81,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
+ 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
+