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.
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;