Update V4

Remove whitespace

> -----Original Message-----
> From: YD [mailto:yuhdar.ts...@gmail.com]
> Sent: Thursday, May 25, 2017 5:38 PM
> To: gre...@linuxfoundation.org; mathias.ny...@intel.com; linux-
> u...@vger.kernel.org
> Cc: yd_ts...@asmedia.com.tw
> Subject: [PATCH v3] usb:host:xhci:USB 3.1 speed
> 
> From: YD Tseng <yd_ts...@asmedia.com.tw>
> 
> One of the xHCI host controllers supports both USB 3.1/3.0 extended speed
> protocol lists. The content of the lists is shown as below.
> In xhci-mem.c, the USB 3.1 speed is parsed first, the min_rev of usb3_rhub
is set
> as 0x10.  And then USB 3.0 is parsed.  However, the min_rev of usb3_rhub
will be
> changed to 0x00. If USB 3.1 device is connected behind this host
controller, the
> speed of USB 3.1 device just reports 5G speed using lsusb.
> 
>      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
>   00 01 08 00 00 00 00 00 40 00 00 00 00 00 00 00 00
>   10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>   20 02 08 10 03 55 53 42 20 01 02 00 00 00 00 00 00     //USB 3.1
>   30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>   40 02 08 00 03 55 53 42 20 03 06 00 00 00 00 00 00     //USB 3.0
>   50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>   60 02 08 00 02 55 53 42 20 09 0E 19 00 00 00 00 00     //USB 2.0
>   70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 
> This patch works around for parsing extended speed protocol lists. If the
xHCI
> controller supports USB 3.1 and 3.0 extended speed protocol, it could show
as
> one 3.1 roothub.
> 
> Signed-off-by: YD Tseng <yd_ts...@asmedia.com.tw>
> ---
>  drivers/usb/host/xhci-mem.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index
> 1f1687e..fddf273 100644
> --- a/drivers/usb/host/xhci-mem.c
> +++ b/drivers/usb/host/xhci-mem.c
> @@ -2119,11 +2119,12 @@ static void xhci_add_in_port(struct xhci_hcd
*xhci,
> unsigned int num_ports,  {
>       u32 temp, port_offset, port_count;
>       int i;
> -     u8 major_revision;
> +     u8 major_revision, minor_revision;
>       struct xhci_hub *rhub;
> 
>       temp = readl(addr);
>       major_revision = XHCI_EXT_PORT_MAJOR(temp);
> +     minor_revision = XHCI_EXT_PORT_MINOR(temp);
> 
>       if (major_revision == 0x03) {
>               rhub = &xhci->usb3_rhub;
> @@ -2137,7 +2138,9 @@ static void xhci_add_in_port(struct xhci_hcd *xhci,
> unsigned int num_ports,
>               return;
>       }
>       rhub->maj_rev = XHCI_EXT_PORT_MAJOR(temp);
> -     rhub->min_rev = XHCI_EXT_PORT_MINOR(temp);
> +
> +     if (rhub->min_rev < minor_revision)
> +             rhub->min_rev = minor_revision;
> 
>       /* Port offset and count in the third dword, see section 7.2 */
>       temp = readl(addr + 2);
> --
> 2.7.4

==================================================================================================================
This email and any attachments to it contain confidential information and are 
intended solely for the use of the individual to whom it 
is addressed.If you are not the intended recipient or receive it accidentally, 
please immediately notify the sender by e-mail and delete 
the message and any attachments from your computer system, and destroy all hard 
copies. If any, please be advised that any unauthorized 
disclosure, copying, distribution or any action taken or omitted in reliance on 
this, is illegal and prohibited. Furthermore, any views 
or opinions expressed are solely those of the author and do not represent those 
of ASMedia Technology Inc. Thank you for your cooperation.
==================================================================================================================

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to