aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2019-07-09 20:32:28 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2019-07-14 12:44:14 +0200
commit42954857190b9df16d9d873ecc7f6cc38e013e44 (patch)
tree98c588f629ff534d458eb0884782ea99672d7634 /target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch
parentf1875e902d0afb7d9b9e5285b4fd8da7f6c5e30a (diff)
downloadupstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.gz
upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.bz2
upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.zip
brcm2708: add linux 4.19 support
Boot tested on Raspberry Pi B+ (BCM2708) and Raspberry Pi 2 (BCM2709) Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch')
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch b/target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch
new file mode 100644
index 0000000000..a52aafd634
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch
@@ -0,0 +1,28 @@
+From 0efd687c78d47645956af472eac1b8d8f3a973d5 Mon Sep 17 00:00:00 2001
+From: P33M <p33m@github.com>
+Date: Wed, 16 Jan 2019 10:17:52 +0000
+Subject: [PATCH 307/703] 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;