[OpenWrt-Devel] [RFC PATCH] ramips: remove patches for USB-dwc2

Alexey Dobrovolskiy dobrovolskiy.alexey at gmail.com
Tue Apr 21 19:20:55 EDT 2020


Hi,
USB does not work in master at 35f208da3c built with testing kernel
5.4 with or without 0032-USB-dwc2-add-device_reset.patch.
(ramips, ZyXEL Keenetic)
In boot log:
[    6.888293] usbcore: registered new interface driver usbfs
[    6.899641] usbcore: registered new interface driver hub
[    6.910630] usbcore: registered new device driver usb
[    6.930904] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    6.955086] SCSI subsystem initialized
[    6.970394] ehci-fsl: Freescale EHCI Host controller driver
[    6.985235] ehci-platform: EHCI generic platform driver
[    7.006666] dwc2 101c0000.otg: Configuration mismatch. dr_mode forced to host
[    7.033189] dwc2 101c0000.otg: dwc2_core_reset: HANG! AHB Idle
timeout GRSTCTL GRSTCTL_AHBIDLE
[    7.050637] dwc2: probe of 101c0000.otg failed with error -16
[    7.074662] usbcore: registered new interface driver usb-storage

Full log attached to FS#2964

Best regards,
Alexey

сб, 11 апр. 2020 г. в 01:37, Alexey Dobrovolsky <dobrovolskiy.alexey at gmail.com>:
>
> In FS#2738 we can see that patch first introduced in
> e8ebcff ("ramips: add a explicit reset to dwc2")
> breaks USB functionality since 18.06. Thus, this patch should be removed.
>
> Removed:
> - 0032-USB-dwc2-add-device_reset.patch
>
> Fixes: FS#2738
> Fixes: FS#2964
>
> Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey at gmail.com>
> ---
>
> Notes:
>     I can’t assess whether the root cause of the e8ebcff patch has been fixed
>     in upstream or the patch needs to be rewritten. From the description
>     of the bugs, it is only clear that in the latest OpenWrt versions this
>     patch does not work correctly.
>
>     I built 18.06.2 and master at 91c61aae200ecf98e332482d395beda819d6a4fa
>     for ZyXEL Keenetic with 0032-USB-dwc2-add-device_reset.patch removed
>     as described in FS#2738 and USB works with a USB flash drive (FS#2964).
>
>  .../0032-USB-dwc2-add-device_reset.patch      | 29 -------------------
>  .../0032-USB-dwc2-add-device_reset.patch      | 29 -------------------
>  2 files changed, 58 deletions(-)
>  delete mode 100644 target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch
>  delete mode 100644 target/linux/ramips/patches-5.4/0032-USB-dwc2-add-device_reset.patch
>
> diff --git a/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch b/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch
> deleted file mode 100644
> index c04e2db661..0000000000
> --- a/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From a758e0870c6d1e4b0272f6e7f9efa9face5534bb Mon Sep 17 00:00:00 2001
> -From: John Crispin <blogic at openwrt.org>
> -Date: Sun, 27 Jul 2014 09:49:07 +0100
> -Subject: [PATCH 32/53] USB: dwc2: add device_reset()
> -
> -Signed-off-by: John Crispin <blogic at openwrt.org>
> ----
> - drivers/usb/dwc2/hcd.c |    3 +++
> - 1 file changed, 3 insertions(+)
> -
> ---- a/drivers/usb/dwc2/hcd.c
> -+++ b/drivers/usb/dwc2/hcd.c
> -@@ -48,6 +48,7 @@
> - #include <linux/io.h>
> - #include <linux/slab.h>
> - #include <linux/usb.h>
> -+#include <linux/reset.h>
> -
> - #include <linux/usb/hcd.h>
> - #include <linux/usb/ch11.h>
> -@@ -5215,6 +5216,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
> -
> -       retval = -ENOMEM;
> -
> -+      device_reset(hsotg->dev);
> -+
> -       hcfg = dwc2_readl(hsotg->regs + HCFG);
> -       dev_dbg(hsotg->dev, "hcfg=%08x\n", hcfg);
> -
> diff --git a/target/linux/ramips/patches-5.4/0032-USB-dwc2-add-device_reset.patch b/target/linux/ramips/patches-5.4/0032-USB-dwc2-add-device_reset.patch
> deleted file mode 100644
> index ec837cda93..0000000000
> --- a/target/linux/ramips/patches-5.4/0032-USB-dwc2-add-device_reset.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From a758e0870c6d1e4b0272f6e7f9efa9face5534bb Mon Sep 17 00:00:00 2001
> -From: John Crispin <blogic at openwrt.org>
> -Date: Sun, 27 Jul 2014 09:49:07 +0100
> -Subject: [PATCH 32/53] USB: dwc2: add device_reset()
> -
> -Signed-off-by: John Crispin <blogic at openwrt.org>
> ----
> - drivers/usb/dwc2/hcd.c |    3 +++
> - 1 file changed, 3 insertions(+)
> -
> ---- a/drivers/usb/dwc2/hcd.c
> -+++ b/drivers/usb/dwc2/hcd.c
> -@@ -49,6 +49,7 @@
> - #include <linux/io.h>
> - #include <linux/slab.h>
> - #include <linux/usb.h>
> -+#include <linux/reset.h>
> -
> - #include <linux/usb/hcd.h>
> - #include <linux/usb/ch11.h>
> -@@ -5023,6 +5024,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
> -
> -       retval = -ENOMEM;
> -
> -+      device_reset(hsotg->dev);
> -+
> -       hcfg = dwc2_readl(hsotg, HCFG);
> -       dev_dbg(hsotg->dev, "hcfg=%08x\n", hcfg);
> -
> --
> 2.17.1
>

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list