summaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc2/params.c
diff options
context:
space:
mode:
authorSolidHal <hal@halemmerich.com>2018-10-02 20:58:16 -0500
committerFelipe Balbi <felipe.balbi@linux.intel.com>2018-10-05 10:50:14 +0300
commitc216765d3a1defda5e7e2dabd878f99f0cd2ebf2 (patch)
tree192788cdc4d66571264bc30d04f0b5c0c6619c7c /drivers/usb/dwc2/params.c
parent30025efa8b5e75f545e38a592158c34b3169423b (diff)
downloadlinux-stable-c216765d3a1defda5e7e2dabd878f99f0cd2ebf2.tar.gz
linux-stable-c216765d3a1defda5e7e2dabd878f99f0cd2ebf2.tar.bz2
linux-stable-c216765d3a1defda5e7e2dabd878f99f0cd2ebf2.zip
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: SolidHal <hal@halemmerich.com> Acked-by: Minas Harutyunyan <hminas@synopsys.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Diffstat (limited to 'drivers/usb/dwc2/params.c')
-rw-r--r--drivers/usb/dwc2/params.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
index d150984406ee..7c1b6938f212 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)