Patch "xhci: change xhci 1.0 only restrictions to support xhci 1.1" has been added to the 3.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
xhci: change xhci 1.0 only restrictions to support xhci 1.1
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
xhci-change-xhci-1.0-only-restrictions-to-support-xhci-1.1.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
dca7794539eff04b786fb6907186989e5eaaa9c2Mon Sep 17 00:00:00 2001
From: Mathias Nyman <[email protected]>
Date: Mon, 21 Sep 2015 17:46:16 +0300
Subject: xhci: change xhci 1.0 only restrictions to support xhci 1.1
From: Mathias Nyman <[email protected]>
commit dca7794539eff04b786fb6907186989e5eaaa9c2 upstream.
Some changes between xhci 0.96 and xhci 1.0 specifications forced us to check the hci version in code, some of these checks were implemented as hci_version == 1.0, which will not work with new xhci 1.1 controllers.
xhci 1.1 behaves similar to xhci 1.0 in these cases, so change these checks to hci_version >= 1.0
--- drivers/usb/host/xhci-mem.c | 6 +++--- drivers/usb/host/xhci-ring.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)
drivers/usb/host/xhci-mem.c +3 -3
@@ -1402,10 +1402,10 @@ int xhci_endpoint_init(struct xhci_hcd ** use Event Data TRBs, and we don't chain in a link TRB on short * transfers, we're basically dividing by 1. * -* xHCI 1.0 specification indicates that the Average TRB Length should -* be set to 8 for control endpoints. +* xHCI 1.0 and 1.1 specification indicates that the Average TRB Length +* should be set to 8 for control endpoints. */ -if (usb_endpoint_xfer_control (&ep->desc) && xhci->hci_version ==0x100 ) +if (usb_endpoint_xfer_control (&ep->desc) && xhci->hci_version >=0x100 ) ep_ctx->tx_info |=cpu_to_le32 (AVG_TRB_LENGTH_FOR_EP (8 ));else ep_ctx->tx_info |=
drivers/usb/host/xhci-ring.c +2 -2
@@ -3567,8 +3567,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *if (start_cycle ==0 ) field |=0x1 ; -/* xHCI 1.0 6.4.1.2.1: Transfer Type field */ -if (xhci->hci_version ==0x100 ) { +/* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */ +if (xhci->hci_version >=0x100 ) {if (urb->transfer_buffer_length >0 ) {if (setup->bRequestType &USB_DIR_IN ) field |=TRB_TX_TYPE (TRB_DATA_IN );
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/usb-xhci-clear-xhci_state_dying-on-start.patch queue-3.14/usb-xhci-add-support-for-urb_zero_packet-to-bulk-sg-transfers.patch queue-3.14/xhci-change-xhci-1.0-only-restrictions-to-support-xhci-1.1.patch