Skip to contentSkip to conversation

usb: dwc2: disable power_down on rockchip devices

DISCUSSION Felipe Balbi 1 participant 1 message Oct 2, 2018 USB

lore
Share & tools
lore
#0 lore raw

Hi,

Quoted 40 lines · Hal Emmerich

From 04fbf78e4e569bf872f1ffcb0a6f9b89569dc913 Mon Sep 17 00:00:00 2001
From: Hal Emmerich <[email protected]>
Date: Thu, 19 Jul 2018 21:48:08 -0500
Subject: [PATCH] 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

---
 drivers/usb/dwc2/params.c | 1 +

 1 file changed, 1 insertion(+)
drivers/usb/dwc2/params.c +0 -0
index f03e41879224..492607adc506 100644
@@ -82,6 +82,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;
 }

Quoted 1 line

 static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)

can't apply, badly formatted. Please resend using git send-email. Also collect Minas' acked-by