Commit d7854041 authored by Mathias Nyman's avatar Mathias Nyman Committed by Greg Kroah-Hartman

xhci: set slot context speed field to SuperSpeedPlus for USB 3.1 SSP devices

The speed field of the input slot context should represent the speed the
device is working at.
Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5da665fc
...@@ -1106,6 +1106,9 @@ int xhci_setup_addressable_virt_dev(struct xhci_hcd *xhci, struct usb_device *ud ...@@ -1106,6 +1106,9 @@ int xhci_setup_addressable_virt_dev(struct xhci_hcd *xhci, struct usb_device *ud
slot_ctx->dev_info |= cpu_to_le32(LAST_CTX(1) | udev->route); slot_ctx->dev_info |= cpu_to_le32(LAST_CTX(1) | udev->route);
switch (udev->speed) { switch (udev->speed) {
case USB_SPEED_SUPER_PLUS: case USB_SPEED_SUPER_PLUS:
slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_SSP);
max_packets = MAX_PACKET(512);
break;
case USB_SPEED_SUPER: case USB_SPEED_SUPER:
slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_SS); slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_SS);
max_packets = MAX_PACKET(512); max_packets = MAX_PACKET(512);
......
...@@ -343,6 +343,7 @@ struct xhci_op_regs { ...@@ -343,6 +343,7 @@ struct xhci_op_regs {
#define SLOT_SPEED_LS (XDEV_LS << 10) #define SLOT_SPEED_LS (XDEV_LS << 10)
#define SLOT_SPEED_HS (XDEV_HS << 10) #define SLOT_SPEED_HS (XDEV_HS << 10)
#define SLOT_SPEED_SS (XDEV_SS << 10) #define SLOT_SPEED_SS (XDEV_SS << 10)
#define SLOT_SPEED_SSP (XDEV_SSP << 10)
/* Port Indicator Control */ /* Port Indicator Control */
#define PORT_LED_OFF (0 << 14) #define PORT_LED_OFF (0 << 14)
#define PORT_LED_AMBER (1 << 14) #define PORT_LED_AMBER (1 << 14)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment