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.ale...@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.ale...@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 <blo...@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 <blo...@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 <blo...@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 <blo...@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@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel