eb72439dbb
With kernel 4.19 dwc2 would not want to initialize due to reset timeouts, while it worked fine with 4.14. Increase the reset timeouts to 1 second, as it was used by the old lantiq ifxhcd usb driver. Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Mathias Kresin <dev@kresin.me>
30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
From 09bbf8c732e7a6ce290fc7c2d5a3e79ec6c3e8d2 Mon Sep 17 00:00:00 2001
|
|
From: Mathias Kresin <dev@kresin.me>
|
|
Date: Wed, 3 Jul 2019 17:03:02 +0200
|
|
Subject: [PATCH] usb: dwc2: use a longer core rest timeout in
|
|
dwc2_core_reset()
|
|
|
|
Testing on different generations of Lantiq MIPS SoC based boards, showed
|
|
that it takes up to 1500 us until the core reset bit is cleared.
|
|
|
|
The driver from the vendor SDK (ifxhcd) uses a 1 second timeout. Use the
|
|
same timeout to fix wrong hang detections and make the driver work for
|
|
Lantiq MIPS SoCs.
|
|
|
|
Signed-off-by: Mathias Kresin <dev@kresin.me>
|
|
---
|
|
drivers/usb/dwc2/core.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/drivers/usb/dwc2/core.c
|
|
+++ b/drivers/usb/dwc2/core.c
|
|
@@ -524,7 +524,7 @@ int dwc2_core_reset(struct dwc2_hsotg *h
|
|
greset |= GRSTCTL_CSFTRST;
|
|
dwc2_writel(hsotg, greset, GRSTCTL);
|
|
|
|
- if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 50)) {
|
|
+ if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 10000)) {
|
|
dev_warn(hsotg->dev, "%s: HANG! Soft Reset timeout GRSTCTL GRSTCTL_CSFTRST\n",
|
|
__func__);
|
|
return -EBUSY;
|