mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-14 21:10:27 +01:00
The ifdef'ed Linux kernel code uses the 1 based port number, whereas U-Boot puts a 0 based port number into the register. The reason the 0 based port number apparently works can probably be taken from the USB 2.0 spec: 8.4.2.2 Start-Split Transaction Token ... The host must correctly set the port field for single and multiple TT hub implementations. A single TT hub implementation *may ignore* the port field. Actually, as far as I understand, a multi TT hub defaults to single TT (bAlternateSetting: 0) until switched via SetInterface, so even "port 42" would work. The change was verified by hardcoding the port number to a wrong value, SPLIT transactions kept working (although using a DWC2 instead of MUSB). Tested hubs are the RPi onboard SMC9514 and an external "05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB". The former is a multi TT hub, the latter single TT only. Addendum: Tested on sunxi/MUSB by Hans de Goede Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Hans de Goede <hdegoede@redhat.com> |
||
|---|---|---|
| .. | ||
| am35x.c | ||
| Kconfig | ||
| linux-compat.h | ||
| Makefile | ||
| musb_core.c | ||
| musb_core.h | ||
| musb_debug.h | ||
| musb_dma.h | ||
| musb_dsps.c | ||
| musb_gadget.c | ||
| musb_gadget.h | ||
| musb_gadget_ep0.c | ||
| musb_host.c | ||
| musb_host.h | ||
| musb_io.h | ||
| musb_regs.h | ||
| musb_uboot.c | ||
| musb_uboot.h | ||
| omap2430.c | ||
| omap2430.h | ||
| sunxi.c | ||
| usb-compat.h | ||