]> Git Repo - linux.git/commitdiff
Merge 5.6-rc3 into usb-next
authorGreg Kroah-Hartman <[email protected]>
Mon, 24 Feb 2020 07:48:49 +0000 (08:48 +0100)
committerGreg Kroah-Hartman <[email protected]>
Mon, 24 Feb 2020 07:48:49 +0000 (08:48 +0100)
We need the USB fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <[email protected]>
1  2 
MAINTAINERS
drivers/usb/core/usb.h
drivers/usb/host/xhci-hub.c
drivers/usb/host/xhci-pci.c
drivers/usb/host/xhci.h

diff --combined MAINTAINERS
index 62d39710c3f3f07f75bf68f266f6992e73da8ebf,fcd79fc38928fafc7c416592adeeec2f1325c252..e54866c0eb0b8d0dae3b4dc6c10c2eeefc5fc10b
@@@ -2796,11 -2796,11 +2796,11 @@@ F:   drivers/block/aoe
  
  ATHEROS 71XX/9XXX GPIO DRIVER
  M:    Alban Bedel <[email protected]>
+ S:    Maintained
  W:    https://github.com/AlbanBedel/linux
  T:    git git://github.com/AlbanBedel/linux
- S:    Maintained
- F:    drivers/gpio/gpio-ath79.c
  F:    Documentation/devicetree/bindings/gpio/gpio-ath79.txt
+ F:    drivers/gpio/gpio-ath79.c
  
  ATHEROS 71XX/9XXX USB PHY DRIVER
  M:    Alban Bedel <[email protected]>
@@@ -3422,8 -3422,8 +3422,8 @@@ BROADCOM BRCMSTB GPIO DRIVE
  M:    Gregory Fong <[email protected]>
  L:    [email protected]
  S:    Supported
- F:    drivers/gpio/gpio-brcmstb.c
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
+ F:    drivers/gpio/gpio-brcmstb.c
  
  BROADCOM BRCMSTB I2C DRIVER
  M:    Kamal Dasu <[email protected]>
@@@ -3481,8 -3481,8 +3481,8 @@@ BROADCOM KONA GPIO DRIVE
  M:    Ray Jui <[email protected]>
  L:    [email protected]
  S:    Supported
- F:    drivers/gpio/gpio-bcm-kona.c
  F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
+ F:    drivers/gpio/gpio-bcm-kona.c
  
  BROADCOM NETXTREME-E ROCE DRIVER
  M:    Selvin Xavier <[email protected]>
@@@ -3597,8 -3597,8 +3597,8 @@@ F:      sound/pci/bt87x.
  
  BT8XXGPIO DRIVER
  M:    Michael Buesch <[email protected]>
- W:    http://bu3sch.de/btgpio.php
  S:    Maintained
+ W:    http://bu3sch.de/btgpio.php
  F:    drivers/gpio/gpio-bt8xx.c
  
  BTRFS FILE SYSTEM
@@@ -3649,6 -3649,7 +3649,7 @@@ F:      sound/pci/oxygen
  
  C-SKY ARCHITECTURE
  M:    Guo Ren <[email protected]>
+ L:    [email protected]
  T:    git https://github.com/c-sky/csky-linux.git
  S:    Supported
  F:    arch/csky/
@@@ -3909,7 -3910,7 +3910,7 @@@ S:      Supporte
  F:    Documentation/filesystems/ceph.txt
  F:    fs/ceph/
  
- CERTIFICATE HANDLING:
+ CERTIFICATE HANDLING
  M:    David Howells <[email protected]>
  M:    David Woodhouse <[email protected]>
  L:    [email protected]
@@@ -3919,7 -3920,7 +3920,7 @@@ F:      certs
  F:    scripts/sign-file.c
  F:    scripts/extract-cert.c
  
- CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
+ CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM
  L:    [email protected]
  S:    Obsolete
  F:    drivers/staging/wusbcore/
@@@ -5932,12 -5933,12 +5933,12 @@@ S:   Maintaine
  F:    drivers/media/dvb-frontends/ec100*
  
  ECRYPT FILE SYSTEM
- M:    Tyler Hicks <tyhicks@canonical.com>
+ M:    Tyler Hicks <code@tyhicks.com>
  L:    [email protected]
  W:    http://ecryptfs.org
  W:    https://launchpad.net/ecryptfs
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs.git
- S:    Supported
+ S:    Odd Fixes
  F:    Documentation/filesystems/ecryptfs.txt
  F:    fs/ecryptfs/
  
@@@ -7047,7 -7048,7 +7048,7 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/uio/uio_pci_generic.c
  
- GENERIC VDSO LIBRARY:
+ GENERIC VDSO LIBRARY
  M:    Andy Lutomirski <[email protected]>
  M:    Thomas Gleixner <[email protected]>
  M:    Vincenzo Frascino <[email protected]>
@@@ -7143,18 -7144,18 +7144,18 @@@ GPIO SUBSYSTE
  M:    Linus Walleij <[email protected]>
  M:    Bartosz Golaszewski <[email protected]>
  L:    [email protected]
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
  S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
+ F:    Documentation/ABI/obsolete/sysfs-gpio
+ F:    Documentation/ABI/testing/gpio-cdev
+ F:    Documentation/admin-guide/gpio/
  F:    Documentation/devicetree/bindings/gpio/
  F:    Documentation/driver-api/gpio/
- F:    Documentation/admin-guide/gpio/
- F:    Documentation/ABI/testing/gpio-cdev
- F:    Documentation/ABI/obsolete/sysfs-gpio
  F:    drivers/gpio/
+ F:    include/asm-generic/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/gpio.h
  F:    include/linux/of_gpio.h
- F:    include/asm-generic/gpio.h
  F:    include/uapi/linux/gpio.h
  F:    tools/gpio/
  
@@@ -8055,8 -8056,8 +8056,8 @@@ F:      drivers/scsi/ips.
  ICH LPC AND GPIO DRIVER
  M:    Peter Tyser <[email protected]>
  S:    Maintained
- F:    drivers/mfd/lpc_ich.c
  F:    drivers/gpio/gpio-ich.c
+ F:    drivers/mfd/lpc_ich.c
  
  ICY I2C DRIVER
  M:    Max Staudt <[email protected]>
@@@ -8392,7 -8393,7 +8393,7 @@@ M:      Joonas Lahtinen <joonas.lahtinen@lin
  M:    Rodrigo Vivi <[email protected]>
  L:    [email protected]
  W:    https://01.org/linuxgraphics/
- B:    https://01.org/linuxgraphics/documentation/how-report-bugs
+ B:    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
  C:    irc://chat.freenode.net/intel-gfx
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  T:    git git://anongit.freedesktop.org/drm-intel
@@@ -9278,7 -9279,7 +9279,7 @@@ F:      include/keys/trusted-type.
  F:    security/keys/trusted.c
  F:    include/keys/trusted.h
  
- KEYS/KEYRINGS:
+ KEYS/KEYRINGS
  M:    David Howells <[email protected]>
  M:    Jarkko Sakkinen <[email protected]>
  L:    [email protected]
@@@ -11484,7 -11485,7 +11485,7 @@@ F:   drivers/scsi/mac_scsi.
  F:    drivers/scsi/sun3_scsi.*
  F:    drivers/scsi/sun3_scsi_vme.c
  
- NCSI LIBRARY:
+ NCSI LIBRARY
  M:    Samuel Mendoza-Jonas <[email protected]>
  S:    Maintained
  F:    net/ncsi/
  S:    Maintained
  F:    drivers/block/ps3vram.c
  
- PSAMPLE PACKET SAMPLING SUPPORT:
+ PSAMPLE PACKET SAMPLING SUPPORT
  M:    Yotam Gigi <[email protected]>
  S:    Maintained
  F:    net/psample
@@@ -14582,10 -14583,10 +14583,10 @@@ F:        drivers/media/pci/saa7146
  F:    include/media/drv-intf/saa7146*
  
  SAFESETID SECURITY MODULE
- M:     Micah Morton <[email protected]>
- S:     Supported
- F:     security/safesetid/
- F:     Documentation/admin-guide/LSM/SafeSetID.rst
+ M:    Micah Morton <[email protected]>
+ S:    Supported
+ F:    security/safesetid/
+ F:    Documentation/admin-guide/LSM/SafeSetID.rst
  
  SAMSUNG AUDIO (ASoC) DRIVERS
  M:    Krzysztof Kozlowski <[email protected]>
@@@ -16075,8 -16076,8 +16076,8 @@@ F:   Documentation/devicetree/bindings/re
  SYNOPSYS CREG GPIO DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Maintained
- F:    drivers/gpio/gpio-creg-snps.c
  F:    Documentation/devicetree/bindings/gpio/snps,creg-gpio.txt
+ F:    drivers/gpio/gpio-creg-snps.c
  
  SYNOPSYS DESIGNWARE 8250 UART DRIVER
  R:    Andy Shevchenko <[email protected]>
@@@ -16087,8 -16088,8 +16088,8 @@@ SYNOPSYS DESIGNWARE APB GPIO DRIVE
  M:    Hoan Tran <[email protected]>
  L:    [email protected]
  S:    Maintained
- F:    drivers/gpio/gpio-dwapb.c
  F:    Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
+ F:    drivers/gpio/gpio-dwapb.c
  
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <[email protected]>
@@@ -16552,8 -16553,8 +16553,8 @@@ M:   Michael Jamet <[email protected]
  M:    Mika Westerberg <[email protected]>
  M:    Yehezkel Bernat <[email protected]>
  L:    [email protected]
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git
  S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git
  F:    Documentation/admin-guide/thunderbolt.rst
  F:    drivers/thunderbolt/
  F:    include/linux/thunderbolt.h
@@@ -17080,7 -17081,7 +17081,7 @@@ S:   Maintaine
  F:    Documentation/admin-guide/ufs.rst
  F:    fs/ufs/
  
- UHID USERSPACE HID IO DRIVER:
+ UHID USERSPACE HID IO DRIVER
  M:    David Herrmann <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -17094,18 -17095,18 +17095,18 @@@ S:        Maintaine
  F:    drivers/usb/common/ulpi.c
  F:    include/linux/ulpi/
  
- ULTRA-WIDEBAND (UWB) SUBSYSTEM:
+ ULTRA-WIDEBAND (UWB) SUBSYSTEM
  L:    [email protected]
  S:    Obsolete
  F:    drivers/staging/uwb/
  
- UNICODE SUBSYSTEM:
+ UNICODE SUBSYSTEM
  M:    Gabriel Krisman Bertazi <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    fs/unicode/
  
- UNICORE32 ARCHITECTURE:
+ UNICORE32 ARCHITECTURE
  M:    Guan Xuetao <[email protected]>
  W:    http://mprc.pku.edu.cn/~guanxuetao/linux
  S:    Maintained
@@@ -17182,12 -17183,6 +17183,12 @@@ S: Maintaine
  F:    Documentation/usb/acm.rst
  F:    drivers/usb/class/cdc-acm.*
  
 +USB APPLE MFI FASTCHARGE DRIVER
 +M:    Bastien Nocera <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/usb/misc/apple-mfi-fastcharge.c
 +
  USB AR5523 WIRELESS DRIVER
  M:    Pontus Fuchs <[email protected]>
  L:    [email protected]
@@@ -17398,11 -17393,14 +17399,14 @@@ F:        drivers/usb
  F:    include/linux/usb.h
  F:    include/linux/usb/
  
- USB TYPEC PI3USB30532 MUX DRIVER
- M:    Hans de Goede <hdegoede@redhat.com>
+ USB TYPEC BUS FOR ALTERNATE MODES
+ M:    Heikki Krogerus <[email protected].com>
  L:    [email protected]
  S:    Maintained
- F:    drivers/usb/typec/mux/pi3usb30532.c
+ F:    Documentation/ABI/testing/sysfs-bus-typec
+ F:    Documentation/driver-api/usb/typec_bus.rst
+ F:    drivers/usb/typec/altmodes/
+ F:    include/linux/usb/typec_altmode.h
  
  USB TYPEC CLASS
  M:    Heikki Krogerus <[email protected]>
@@@ -17413,14 -17411,11 +17417,11 @@@ F:        Documentation/driver-api/usb/typec.r
  F:    drivers/usb/typec/
  F:    include/linux/usb/typec.h
  
- USB TYPEC BUS FOR ALTERNATE MODES
- M:    Heikki Krogerus <[email protected].com>
+ USB TYPEC PI3USB30532 MUX DRIVER
+ M:    Hans de Goede <hdegoede@redhat.com>
  L:    [email protected]
  S:    Maintained
- F:    Documentation/ABI/testing/sysfs-bus-typec
- F:    Documentation/driver-api/usb/typec_bus.rst
- F:    drivers/usb/typec/altmodes/
- F:    include/linux/usb/typec_altmode.h
+ F:    drivers/usb/typec/mux/pi3usb30532.c
  
  USB TYPEC PORT CONTROLLER DRIVERS
  M:    Guenter Roeck <[email protected]>
@@@ -17797,7 -17792,7 +17798,7 @@@ F:   include/linux/vbox_utils.
  F:    include/uapi/linux/vbox*.h
  F:    drivers/virt/vboxguest/
  
- VIRTUAL BOX SHARED FOLDER VFS DRIVER:
+ VIRTUAL BOX SHARED FOLDER VFS DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -18420,8 -18415,8 +18421,8 @@@ M:   Nandor Han <[email protected]
  M:    Semi Malinen <[email protected]>
  L:    [email protected]
  S:    Maintained
- F:    drivers/gpio/gpio-xra1403.c
  F:    Documentation/devicetree/bindings/gpio/gpio-xra1403.txt
+ F:    drivers/gpio/gpio-xra1403.c
  
  XTENSA XTFPGA PLATFORM SUPPORT
  M:    Max Filippov <[email protected]>
diff --combined drivers/usb/core/usb.h
index f1dc63848219f60b17e3c42893300b56bea7ebc9,3ad0ee57e859fb00990bcf733112c553b25c65b1..64ed4023a8c8823fb624cb94d9941324ecd4e460
@@@ -37,6 -37,9 +37,9 @@@ extern void usb_authorize_interface(str
  extern void usb_detect_quirks(struct usb_device *udev);
  extern void usb_detect_interface_quirks(struct usb_device *udev);
  extern void usb_release_quirk_list(void);
+ extern bool usb_endpoint_is_blacklisted(struct usb_device *udev,
+               struct usb_host_interface *intf,
+               struct usb_endpoint_descriptor *epd);
  extern int usb_remove_device(struct usb_device *udev);
  
  extern int usb_get_device_descriptor(struct usb_device *dev,
@@@ -47,12 -50,6 +50,12 @@@ extern void usb_release_bos_descriptor(
  extern char *usb_cache_string(struct usb_device *udev, int index);
  extern int usb_set_configuration(struct usb_device *dev, int configuration);
  extern int usb_choose_configuration(struct usb_device *udev);
 +extern int usb_generic_driver_probe(struct usb_device *udev);
 +extern void usb_generic_driver_disconnect(struct usb_device *udev);
 +extern int usb_generic_driver_suspend(struct usb_device *udev,
 +              pm_message_t msg);
 +extern int usb_generic_driver_resume(struct usb_device *udev,
 +              pm_message_t msg);
  
  static inline unsigned usb_get_max_power(struct usb_device *udev,
                struct usb_host_config *c)
@@@ -69,8 -66,6 +72,8 @@@ extern int usb_match_one_id_intf(struc
                                 const struct usb_device_id *id);
  extern int usb_match_device(struct usb_device *dev,
                            const struct usb_device_id *id);
 +extern const struct usb_device_id *usb_device_match_id(struct usb_device *udev,
 +                              const struct usb_device_id *id);
  extern void usb_forced_unbind_intf(struct usb_interface *intf);
  extern void usb_unbind_and_rebind_marked_interfaces(struct usb_device *udev);
  
index 38839308557e84806723dfb21e1bea1d28319fab,af92b2576fe91c5d497ab0aa8145aeaabd9ab5c9..24835718b9c6930e882d2680838a592cc90b6f90
@@@ -55,6 -55,7 +55,7 @@@ static u8 usb_bos_descriptor [] = 
  static int xhci_create_usb3_bos_desc(struct xhci_hcd *xhci, char *buf,
                                     u16 wLength)
  {
+       struct xhci_port_cap *port_cap = NULL;
        int i, ssa_count;
        u32 temp;
        u16 desc_size, ssp_cap_size, ssa_size = 0;
        ssp_cap_size = sizeof(usb_bos_descriptor) - desc_size;
  
        /* does xhci support USB 3.1 Enhanced SuperSpeed */
-       if (xhci->usb3_rhub.min_rev >= 0x01) {
+       for (i = 0; i < xhci->num_port_caps; i++) {
+               if (xhci->port_caps[i].maj_rev == 0x03 &&
+                   xhci->port_caps[i].min_rev >= 0x01) {
+                       usb3_1 = true;
+                       port_cap = &xhci->port_caps[i];
+                       break;
+               }
+       }
+       if (usb3_1) {
                /* does xhci provide a PSI table for SSA speed attributes? */
-               if (xhci->usb3_rhub.psi_count) {
+               if (port_cap->psi_count) {
                        /* two SSA entries for each unique PSI ID, RX and TX */
-                       ssa_count = xhci->usb3_rhub.psi_uid_count * 2;
+                       ssa_count = port_cap->psi_uid_count * 2;
                        ssa_size = ssa_count * sizeof(u32);
                        ssp_cap_size -= 16; /* skip copying the default SSA */
                }
                desc_size += ssp_cap_size;
-               usb3_1 = true;
        }
        memcpy(buf, &usb_bos_descriptor, min(desc_size, wLength));
  
        }
  
        /* If PSI table exists, add the custom speed attributes from it */
-       if (usb3_1 && xhci->usb3_rhub.psi_count) {
+       if (usb3_1 && port_cap->psi_count) {
                u32 ssp_cap_base, bm_attrib, psi, psi_mant, psi_exp;
                int offset;
  
  
                /* attribute count SSAC bits 4:0 and ID count SSIC bits 8:5 */
                bm_attrib = (ssa_count - 1) & 0x1f;
-               bm_attrib |= (xhci->usb3_rhub.psi_uid_count - 1) << 5;
+               bm_attrib |= (port_cap->psi_uid_count - 1) << 5;
                put_unaligned_le32(bm_attrib, &buf[ssp_cap_base + 4]);
  
                if (wLength < desc_size + ssa_size)
                 * USB 3.1 requires two SSA entries (RX and TX) for every link
                 */
                offset = desc_size;
-               for (i = 0; i < xhci->usb3_rhub.psi_count; i++) {
-                       psi = xhci->usb3_rhub.psi[i];
+               for (i = 0; i < port_cap->psi_count; i++) {
+                       psi = port_cap->psi[i];
                        psi &= ~USB_SSP_SUBLINK_SPEED_RSVD;
                        psi_exp = XHCI_EXT_PORT_PSIE(psi);
                        psi_mant = XHCI_EXT_PORT_PSIM(psi);
@@@ -558,7 -567,6 +567,7 @@@ struct xhci_hub *xhci_get_rhub(struct u
   */
  static void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd,
                                u16 index, bool on, unsigned long *flags)
 +      __must_hold(&xhci->lock)
  {
        struct xhci_hub *rhub;
        struct xhci_port *port;
@@@ -609,7 -617,6 +618,7 @@@ static void xhci_port_set_test_mode(str
  
  static int xhci_enter_test_mode(struct xhci_hcd *xhci,
                                u16 test_mode, u16 wIndex, unsigned long *flags)
 +      __must_hold(&xhci->lock)
  {
        int i, retval;
  
index 4d3ea921dd1480207b53611a404547f5f0d7a96c,5e9b537df631bbc5bd16674674e67491e02af7bb..0715a2e75413e1c90556d14a0f8e3948bf2ac566
@@@ -49,6 -49,7 +49,7 @@@
  #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI               0x15ec
  #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI               0x15f0
  #define PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI             0x8a13
+ #define PCI_DEVICE_ID_INTEL_CML_XHCI                  0xa3af
  
  #define PCI_DEVICE_ID_AMD_PROMONTORYA_4                       0x43b9
  #define PCI_DEVICE_ID_AMD_PROMONTORYA_3                       0x43ba
@@@ -187,7 -188,8 +188,8 @@@ static void xhci_pci_quirks(struct devi
                 pdev->device == PCI_DEVICE_ID_INTEL_BROXTON_M_XHCI ||
                 pdev->device == PCI_DEVICE_ID_INTEL_BROXTON_B_XHCI ||
                 pdev->device == PCI_DEVICE_ID_INTEL_APL_XHCI ||
-                pdev->device == PCI_DEVICE_ID_INTEL_DNV_XHCI)) {
+                pdev->device == PCI_DEVICE_ID_INTEL_DNV_XHCI ||
+                pdev->device == PCI_DEVICE_ID_INTEL_CML_XHCI)) {
                xhci->quirks |= XHCI_PME_STUCK_QUIRK;
        }
        if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
@@@ -302,6 -304,9 +304,9 @@@ static int xhci_pci_setup(struct usb_hc
        if (!usb_hcd_is_primary_hcd(hcd))
                return 0;
  
+       if (xhci->quirks & XHCI_PME_STUCK_QUIRK)
+               xhci_pme_acpi_rtd3_enable(pdev);
        xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn);
  
        /* Find any debug ports */
@@@ -359,9 -364,6 +364,6 @@@ static int xhci_pci_probe(struct pci_de
                        HCC_MAX_PSA(xhci->hcc_params) >= 4)
                xhci->shared_hcd->can_do_streams = 1;
  
-       if (xhci->quirks & XHCI_PME_STUCK_QUIRK)
-               xhci_pme_acpi_rtd3_enable(dev);
        /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */
        pm_runtime_put_noidle(&dev->dev);
  
@@@ -547,7 -549,7 +549,7 @@@ MODULE_DEVICE_TABLE(pci, pci_ids)
  
  /* pci driver glue; this is a "new style" PCI driver module */
  static struct pci_driver xhci_pci_driver = {
 -      .name =         (char *) hcd_name,
 +      .name =         hcd_name,
        .id_table =     pci_ids,
  
        .probe =        xhci_pci_probe,
diff --combined drivers/usb/host/xhci.h
index 5f47b18609ee44f3e24adfa9630482841e443ee2,3ecee10fdcdc7dfd697b24310de0ad3885421f10..685180e1b98a552d0e88cb5100446cdf48f2507d
@@@ -1642,7 -1642,7 +1642,7 @@@ struct xhci_scratchpad 
  struct urb_priv {
        int     num_tds;
        int     num_tds_done;
 -      struct  xhci_td td[0];
 +      struct  xhci_td td[];
  };
  
  /*
@@@ -1702,12 -1702,20 +1702,20 @@@ struct xhci_bus_state 
   * Intel Lynx Point LP xHCI host.
   */
  #define       XHCI_MAX_REXIT_TIMEOUT_MS       20
+ struct xhci_port_cap {
+       u32                     *psi;   /* array of protocol speed ID entries */
+       u8                      psi_count;
+       u8                      psi_uid_count;
+       u8                      maj_rev;
+       u8                      min_rev;
+ };
  
  struct xhci_port {
        __le32 __iomem          *addr;
        int                     hw_portnum;
        int                     hcd_portnum;
        struct xhci_hub         *rhub;
+       struct xhci_port_cap    *port_cap;
  };
  
  struct xhci_hub {
        /* supported prococol extended capabiliy values */
        u8                      maj_rev;
        u8                      min_rev;
-       u32                     *psi;   /* array of protocol speed ID entries */
-       u8                      psi_count;
-       u8                      psi_uid_count;
  };
  
  /* There is one xhci_hcd structure per controller */
@@@ -1880,6 -1885,9 +1885,9 @@@ struct xhci_hcd 
        /* cached usb2 extened protocol capabilites */
        u32                     *ext_caps;
        unsigned int            num_ext_caps;
+       /* cached extended protocol port capabilities */
+       struct xhci_port_cap    *port_caps;
+       unsigned int            num_port_caps;
        /* Compliance Mode Recovery Data */
        struct timer_list       comp_mode_recovery_timer;
        u32                     port_status_u0;
  
        void                    *dbc;
        /* platform-specific data -- must come last */
 -      unsigned long           priv[0] __aligned(sizeof(s64));
 +      unsigned long           priv[] __aligned(sizeof(s64));
  };
  
  /* Platform specific overrides to generic XHCI hc_driver ops */
This page took 0.167205 seconds and 4 git commands to generate.