u-boot/drivers/usb/musb-new
Stefan Brüns ac3abf0b7d usb: musb: Fix hub port setting for SPLIT transactions
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>
2015-12-31 16:16:30 +01:00
..
am35x.c musb: Allow musb_platform_enable to return an error code 2015-07-21 17:39:37 -06:00
Kconfig sunxi: musb: Drop no longer accurate comment in Kconfig help text 2015-08-31 08:43:41 +02:00
linux-compat.h lib, linux: move linux specific defines to linux/compat.h 2014-08-25 19:25:03 -04:00
Makefile Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
musb_core.c arm: Remove unused ST-Ericsson u8500 arch 2015-09-15 15:05:21 -04:00
musb_core.h usb: musb-new: CONFIG_MUSB prefix replacement with CONFIG_USB_MUSB 2015-08-05 17:20:34 +02:00
musb_debug.h musb-new: port of Linux musb driver 2012-11-20 00:16:06 +01:00
musb_dma.h usb: musb-new: CONFIG_MUSB prefix replacement with CONFIG_USB_MUSB 2015-08-05 17:20:34 +02:00
musb_dsps.c musb: Allow musb_platform_enable to return an error code 2015-07-21 17:39:37 -06:00
musb_gadget.c usb: musb-new: CONFIG_MUSB prefix replacement with CONFIG_USB_MUSB 2015-08-05 17:20:34 +02:00
musb_gadget.h musb-new: port of Linux musb driver 2012-11-20 00:16:06 +01:00
musb_gadget_ep0.c linux_compat: remove cpu_relax() define 2015-07-22 07:30:37 -06:00
musb_host.c usb: musb: Fix hub port setting for SPLIT transactions 2015-12-31 16:16:30 +01:00
musb_host.h musb-new: Properly remove a transfer from the schedule on timeout 2015-01-18 12:31:36 +01:00
musb_io.h musb-new: port of Linux musb driver 2012-11-20 00:16:06 +01:00
musb_regs.h sunxi: Add basic A33 basic support 2015-05-04 16:51:51 +02:00
musb_uboot.c Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
musb_uboot.h musb: Add device-model support to the musb-host u-boot glue 2015-07-21 17:39:38 -06:00
omap2430.c musb: Allow musb_platform_enable to return an error code 2015-07-21 17:39:37 -06:00
omap2430.h musb-new: omap2plus backend driver 2012-11-20 00:16:08 +01:00
sunxi.c sunxi: musb: Implement dfu_usb_get_reset() 2015-11-22 11:30:59 +01:00
usb-compat.h usb: Move determination of TT hub address/port into separate function 2015-12-31 16:16:29 +01:00