|
@@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
|
|
--- a/drivers/usb/host/xhci-ring.c
|
|
--- a/drivers/usb/host/xhci-ring.c
|
|
|
+++ b/drivers/usb/host/xhci-ring.c
|
|
+++ b/drivers/usb/host/xhci-ring.c
|
|
|
-@@ -3657,6 +3657,48 @@ static int xhci_align_td(struct xhci_hcd
|
|
|
|
|
|
|
+@@ -3658,6 +3658,48 @@ static int xhci_align_td(struct xhci_hcd
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
/* This is very similar to what ehci-q.c qtd_fill() does */
|
|
/* This is very similar to what ehci-q.c qtd_fill() does */
|
|
|
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
|
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
|
|
struct urb *urb, int slot_id, unsigned int ep_index)
|
|
struct urb *urb, int slot_id, unsigned int ep_index)
|
|
|
-@@ -3813,6 +3855,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
|
|
|
|
|
|
+@@ -3814,6 +3856,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
check_trb_math(urb, enqd_len);
|
|
check_trb_math(urb, enqd_len);
|
|
@@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
|
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
|
|
start_cycle, start_trb);
|
|
start_cycle, start_trb);
|
|
|
return 0;
|
|
return 0;
|
|
|
-@@ -3948,6 +3992,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
|
|
|
|
|
|
+@@ -3949,6 +3993,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
|
|
/* Event on completion */
|
|
/* Event on completion */
|
|
|
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
|
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
|
|
|
|
|