xhci: Make sure xhci handles USB_SPEED_SUPER_PLUS devices.
In most cases the devices with the speed set to USB_SPEED_SUPER_PLUS are handled like regular SuperSpeed devices. Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

orang tua
8df0d77d8c
melakukan
0caf6b3345
@@ -2084,6 +2084,7 @@ static unsigned int xhci_get_block_size(struct usb_device *udev)
|
||||
case USB_SPEED_HIGH:
|
||||
return HS_BLOCK;
|
||||
case USB_SPEED_SUPER:
|
||||
case USB_SPEED_SUPER_PLUS:
|
||||
return SS_BLOCK;
|
||||
case USB_SPEED_UNKNOWN:
|
||||
case USB_SPEED_WIRELESS:
|
||||
@@ -2209,7 +2210,7 @@ static int xhci_check_bw_table(struct xhci_hcd *xhci,
|
||||
unsigned int packets_remaining = 0;
|
||||
unsigned int i;
|
||||
|
||||
if (virt_dev->udev->speed == USB_SPEED_SUPER)
|
||||
if (virt_dev->udev->speed >= USB_SPEED_SUPER)
|
||||
return xhci_check_ss_bw(xhci, virt_dev);
|
||||
|
||||
if (virt_dev->udev->speed == USB_SPEED_HIGH) {
|
||||
@@ -2410,7 +2411,7 @@ void xhci_drop_ep_from_interval_table(struct xhci_hcd *xhci,
|
||||
if (xhci_is_async_ep(ep_bw->type))
|
||||
return;
|
||||
|
||||
if (udev->speed == USB_SPEED_SUPER) {
|
||||
if (udev->speed >= USB_SPEED_SUPER) {
|
||||
if (xhci_is_sync_in_ep(ep_bw->type))
|
||||
xhci->devs[udev->slot_id]->bw_table->ss_bw_in -=
|
||||
xhci_get_ss_bw_consumed(ep_bw);
|
||||
@@ -2448,6 +2449,7 @@ void xhci_drop_ep_from_interval_table(struct xhci_hcd *xhci,
|
||||
interval_bw->overhead[HS_OVERHEAD_TYPE] -= 1;
|
||||
break;
|
||||
case USB_SPEED_SUPER:
|
||||
case USB_SPEED_SUPER_PLUS:
|
||||
case USB_SPEED_UNKNOWN:
|
||||
case USB_SPEED_WIRELESS:
|
||||
/* Should never happen because only LS/FS/HS endpoints will get
|
||||
@@ -2507,6 +2509,7 @@ static void xhci_add_ep_to_interval_table(struct xhci_hcd *xhci,
|
||||
interval_bw->overhead[HS_OVERHEAD_TYPE] += 1;
|
||||
break;
|
||||
case USB_SPEED_SUPER:
|
||||
case USB_SPEED_SUPER_PLUS:
|
||||
case USB_SPEED_UNKNOWN:
|
||||
case USB_SPEED_WIRELESS:
|
||||
/* Should never happen because only LS/FS/HS endpoints will get
|
||||
|
Reference in New Issue
Block a user