Hi Sarah, This is xHCI ring expansion v2. It passed isoc device test, but it's hard to test the special case handler in patch 6 and I mark this as RFC, comments are appreciated. Changelog from v1: 1. Count free TRB numbers to perform room_on_ring() check; 2. Factor out segments alloc and free to remove duplicate codes; 3. If dequeue and enqueue pointer are in the same segment and enqueue pointer is behind, wait for the dequeue pointer pass link TRB first; 4. Update sg_tablesize to allow more sg list entries. Thanks, Andiry --- Andiry Xu (7): 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: wait for dequeue pointer move pass link TRB xHCI: update sg tablesize drivers/usb/host/xhci-mem.c | 240 ++++++++++++++++++++++++++++++++---------- drivers/usb/host/xhci-ring.c | 190 ++++++++++++++++++++------------- drivers/usb/host/xhci.c | 12 ++- drivers/usb/host/xhci.h | 20 +++- 4 files changed, 326 insertions(+), 136 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