brcm2708: update to latest patches from RPi Foundation
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch b/target/linux/brcm2708/patches-4.19/950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch
new file mode 100644 (file)
index 0000000..fd5f88f
--- /dev/null
@@ -0,0 +1,28 @@
+From 6e56da00afdf11416045213552514d10bab845cc Mon Sep 17 00:00:00 2001
+From: P33M <p33m@github.com>
+Date: Wed, 16 Jan 2019 10:17:52 +0000
+Subject: [PATCH] dwc_otg: fix bug with port_addr assignment for
+ single-TT hubs
+
+See https://github.com/raspberrypi/linux/issues/2734
+
+The "Hub Port" field in the split transaction packet was always set
+to 1 for single-TT hubs. The majority of single-TT hub products
+apparently ignore this field and broadcast to all downstream enabled
+ports, which masked the issue. A subset of hub devices apparently
+need the port number to be exact or split transactions will fail.
+---
+ drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
+@@ -232,7 +232,7 @@ static int _hub_info(dwc_otg_hcd_t * hcd
+               else
+                       *hub_addr = urb->dev->tt->hub->devnum;
+       }
+-      *port_addr = urb->dev->tt->multi ? urb->dev->ttport : 1;
++      *port_addr = urb->dev->ttport;
+    } else {
+         *hub_addr = 0;
+       *port_addr = urb->dev->ttport;