[PATCH] usb:host:xhci:USB 3.1 Speed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: YD Tseng <Yd_Tseng@xxxxxxxxxxxxxx>

Hi Mathias,

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_Tseng@xxxxxxxxxxxxxx>

---

A file is modified.
drivers/usb/host/xhci-mem.c		Modified file

diff -up xhci-mem{.orig,} > /tmp/patch
--- xhci-mem.c.orig     2017-04-08 15:35:38.000000000 +0800
+++ xhci-mem.c  2017-05-22 11:56:21.362907677 +0800
@@ -2111,11 +2111,12 @@ static void xhci_add_in_port(struct xhci
 {
        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;
@@ -2129,7 +2130,9 @@ static void xhci_add_in_port(struct xhci
                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);
@@ -2280,6 +2283,8 @@ static int xhci_setup_port_arrays(struct

        offset = cap_start;

+       xhci->usb3_rhub.min_rev = 0;
+       xhci->usb2_rhub.min_rev = 0;
        while (offset) {
                xhci_add_in_port(xhci, num_ports, base + offset, cap_count);
                if (xhci->num_usb2_ports + xhci->num_usb3_ports == num_ports)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux