aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/apm821xx/patches-5.10/100-dwc2-disable-powerdown.patch
blob: ede7d732ff3685d51d35c0d035e59ce3088d3794 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
From 88ca61467a0897c79b1fbf8f5c30691b43b52613 Mon Sep 17 00:00:00 2001
From: Christian Lamparter <chunkeey@gmail.com>
Date: Sun, 26 Dec 2021 22:36:29 +0200
Subject: [PATCH] dwc2: temporary force to be powered up all times

the APM821xx's onchip dwc2 misbehaves with 5.4 and 5.10
when a USB device gets connected. Instead of announcing
and setting up the USB devices it crashes and burns with:

[   22.023476] dwc2 4bff80000.usbotg: dwc2_restore_global_registers: no global registers to restore
[   22.032245] dwc2 4bff80000.usbotg: dwc2_exit_partial_power_down: failed to restore registers
[   22.040647] dwc2 4bff80000.usbotg: exit partial_power_down failed
[   22.058765] dwc2 4bff80000.usbotg: HC died; cleaning up

This is all seemingly fixed with dwc2 from a 5.16-rc6.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
---

--- a/drivers/usb/dwc2/params.c
+++ b/drivers/usb/dwc2/params.c
@@ -137,6 +137,7 @@ static void dwc2_set_amcc_params(struct
 	struct dwc2_core_params *p = &hsotg->params;
 
 	p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT;
+	p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
 }
 
 static void dwc2_set_stm32f4x9_fsotg_params(struct dwc2_hsotg *hsotg)