mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-06 13:58:53 +00:00
ecda6b791b
At this point in v5.4 kernel we cannot use dwc2_readl() and
dwc2_writel() since they rely on the value hsotg->needs_byte_swap
which cannot be obtained before the controller wakes up.
We should use readl() and writel() to wake up the controller before
calling dwc2_check_core_endianness().
Fixes: 6be0da90a1
("ramips: refresh patches")
Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
[fixed Fixes: tag]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
16 lines
456 B
Diff
16 lines
456 B
Diff
--- a/drivers/usb/dwc2/platform.c
|
|
+++ b/drivers/usb/dwc2/platform.c
|
|
@@ -430,6 +430,12 @@ static int dwc2_driver_probe(struct plat
|
|
if (retval)
|
|
return retval;
|
|
|
|
+ /* Enable USB port before any regs access */
|
|
+ if (readl(hsotg->regs + PCGCTL) & 0x0f) {
|
|
+ writel(0x00, hsotg->regs + PCGCTL);
|
|
+ /* TODO: mdelay(25) here? vendor driver don't use it */
|
|
+ }
|
|
+
|
|
hsotg->needs_byte_swap = dwc2_check_core_endianness(hsotg);
|
|
|
|
retval = dwc2_get_dr_mode(hsotg);
|