| 336a4487 | 04-Jul-2017 |
Simon Glass <sjg@chromium.org> |
fdt: Correct fdt_get_base_address()
This function appears to obtain the value of the 'ranges' property rather than 'reg'. As such it does not behave as documented or expected.
In addition it picks
fdt: Correct fdt_get_base_address()
This function appears to obtain the value of the 'ranges' property rather than 'reg'. As such it does not behave as documented or expected.
In addition it picks up the second field of the property which is the size (with prop += naddr) rather than the first which is the address.
Fix it.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 81060bb1 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Call usb_update_hub_device() after hub descriptor is fetched
After fetching hub descriptor, we need to call USB uclass operation update_hub_device() to notify HCD to do some preparation wo
usb: hub: Call usb_update_hub_device() after hub descriptor is fetched
After fetching hub descriptor, we need to call USB uclass operation update_hub_device() to notify HCD to do some preparation work.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 5624dfd5 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Parse and save TT details from device descriptor
A high speed hub has a special responsibility to handle full speed/ low speed devices connected on downstream ports. In this case, the hub
usb: hub: Parse and save TT details from device descriptor
A high speed hub has a special responsibility to handle full speed/ low speed devices connected on downstream ports. In this case, the hub must isolate the high speed signaling environment from the full speed/low speed signaling environment with the help of Transaction Translator (TT). TT details are provided by hub descriptors and we parse and save it to hub uclass_priv for later use.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| bbc6f06c | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Support 'set hub depth' request for USB 3.0 hubs
USB 3.0 hub uses a hub depth value multiplied by four as an offset into the 'route string' to locate the bits it uses to determine the down
usb: hub: Support 'set hub depth' request for USB 3.0 hubs
USB 3.0 hub uses a hub depth value multiplied by four as an offset into the 'route string' to locate the bits it uses to determine the downstream port number. We shall set the hub depth value of a USB 3.0 hub after it is configured.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 74ffc7cb | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Translate USB 3.0 hub port status into old version
USB 3.0 hub port status field has different bit positions from 2.0 hubs. Since U-Boot only understands the old version, translate the new
usb: hub: Translate USB 3.0 hub port status into old version
USB 3.0 hub port status field has different bit positions from 2.0 hubs. Since U-Boot only understands the old version, translate the new one into the old one.
Since we are going to add USB 3.0 hub support, this feature is only available with driver model USB.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 46c1d493 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Add a new API to test if a hub device is root hub
Sometimes we need know if a given hub device is root hub or not. Add a new API to test this. This removes the xHCI driver's own version is
usb: hub: Add a new API to test if a hub device is root hub
Sometimes we need know if a given hub device is root hub or not. Add a new API to test this. This removes the xHCI driver's own version is_root_hub() and change to use the new API.
While we are here, remove the unused/commented out get_usb_device() in the xHCI driver too.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| a199a724 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Remove hub_port_reset()
At present hub_port_reset() is defined in DM USB, but it is never called hence remove it (removing another ifdefs).
While we are here, change legacy_hub_port_reset
usb: hub: Remove hub_port_reset()
At present hub_port_reset() is defined in DM USB, but it is never called hence remove it (removing another ifdefs).
While we are here, change legacy_hub_port_reset() name to usb_hub_port_reset() to better match other function names in the same hub module.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 337fc7e6 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Change USB hub descriptor to match USB 3.0 hubs
USB 3.0 hubs have a slightly different hub descriptor than USB 2.0 hubs, with a fixed (rather than variable length) size. Change the host co
usb: hub: Change USB hub descriptor to match USB 3.0 hubs
USB 3.0 hubs have a slightly different hub descriptor than USB 2.0 hubs, with a fixed (rather than variable length) size. Change the host controller drivers that access those last two fields (DeviceRemovable and PortPowerCtrlMask) to use the union.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
show more ...
|
| 53771a49 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Revise wLength for 'get port status' request
For accuracy, we should use 'sizeof(struct usb_port_status)' as the wLength for 'get port status' request, although it happens to be equal to '
usb: hub: Revise wLength for 'get port status' request
For accuracy, we should use 'sizeof(struct usb_port_status)' as the wLength for 'get port status' request, although it happens to be equal to 'sizeof(struct usb_hub_status)'.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
show more ...
|
| f3421196 | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Send correct wValue to get hub descriptor of a USB 3.0 hub
Testing a USB 3.0 hub by connecting it to the xHCI port on Intel MinnowMax, when issuing 'get hub descriptor' to the hub, xHCI re
usb: hub: Send correct wValue to get hub descriptor of a USB 3.0 hub
Testing a USB 3.0 hub by connecting it to the xHCI port on Intel MinnowMax, when issuing 'get hub descriptor' to the hub, xHCI reports a transfer event TRB with a completion code 6 which means 'Stall Error'.
In fact super speed USB hub descriptor type is 0x2a, not 0x29. Sending correct SETUP packet to the hub makes it not stall anymore.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
show more ...
|
| f7a9e5dd | 19-Jul-2017 |
Bin Meng <bmeng.cn@gmail.com> |
usb: hub: Update handling connect status/change in usb_scan_port()
It was observed that on Intel MinnowMax board, when xHCI is enabled in the BayTrail SoC, with a USB 3.0 device connected to the bot
usb: hub: Update handling connect status/change in usb_scan_port()
It was observed that on Intel MinnowMax board, when xHCI is enabled in the BayTrail SoC, with a USB 3.0 device connected to the bottom USB 3.0 port (mapped to xHCI root port #7), its PORTSC register is always 0x201203 (CCS = 1, CSC = 0). The root cause of such behavior is unknown yet. Connect status change bit is set on the same port with a USB 2.0 device (mapped to xHCI port #1, which is a different port on the root hub).
With current logic in usb_scan_port(), the enumeration process will abort if it does not detect a connect status change on a hub port. However since a device connection status is correctly reported, the enumeration process can still continue.
With this change, USB device connected to the bottom blue port on MinnowMax board can be enumerated under either SS or HS mode.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de> Tested-by: Dinh Nguyen <dinguyen@kernel.org>
show more ...
|