Hi Sarah, This is xHCI ring expansion patchset v1 for formal submission. Changelog from RFC v3: 1. Fix the bug in patch 3 that num_trbs_free is not calculated correctly in xhci_queue_isoc_tx(). 2. Fix for patch7 "wait for dequeue pointer move pass link TRB": 1) Give back all the pending urbs if ring expansion or urb enqueue fail in xhci_queue_pending_urbs(). 2) Remove waiting_deq_ptr variable in xhci_ring struct. 3) In xhci_urb_dequeue(), check it in pending urb list and give it back. 3. Move patch7 to the last position. It's up to you to accept it or not, it does not affect patchset function, only solve a special case seldom occurs. The patchset passed isoc device test. Thanks, Andiry --- Andiry Xu (8): xHCI: store ring's type xHCI: store ring's last segment and segment numbers xHCI: count free TRBs on transfer ring xHCI: factor out segments allocation and free function xHCI: set cycle state when allocate rings xHCI: dynamic ring expansion xHCI: update sg tablesize xHCI: wait for dequeue pointer move pass link TRB drivers/usb/host/xhci-mem.c | 235 ++++++++++++++++++------- drivers/usb/host/xhci-ring.c | 402 ++++++++++++++++++++++++++++++------------ drivers/usb/host/xhci.c | 61 +++++-- drivers/usb/host/xhci.h | 25 +++ 4 files changed, 526 insertions(+), 197 deletions(-) -- 1.7.4.1 -- 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