diff options
author | Andiry Xu <andiry.xu@amd.com> | 2010-07-22 18:23:25 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-10 17:35:41 -0400 |
commit | d18240db797ed749b511b8dc910c5dcf08be46d6 (patch) | |
tree | fe358df8e823593a144597252e72c32b6434abd2 /drivers/usb/host/xhci-mem.c | |
parent | 986a92d44810cad915279fdc942e2fd2c2857499 (diff) |
USB: xHCI: Missed Service Error Event process
This patch adds mechanism to process Missed Service Error Event.
Sometimes the xHC is unable to process the isoc TDs in time, it will
generate Missed Service Error Event. In this case some TDs on the ring are
not processed and missed. When encounter a Missed Servce Error Event, set
the skip flag of the ep, and process the missed TDs until reach the next
processed TD, then clear the skip flag.
Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/xhci-mem.c')
-rw-r--r-- | drivers/usb/host/xhci-mem.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index 6d8f7e32932a..64d036804715 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c | |||
@@ -1124,6 +1124,7 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, | |||
1124 | virt_dev->num_rings_cached--; | 1124 | virt_dev->num_rings_cached--; |
1125 | xhci_reinit_cached_ring(xhci, virt_dev->eps[ep_index].new_ring); | 1125 | xhci_reinit_cached_ring(xhci, virt_dev->eps[ep_index].new_ring); |
1126 | } | 1126 | } |
1127 | virt_dev->eps[ep_index].skip = false; | ||
1127 | ep_ring = virt_dev->eps[ep_index].new_ring; | 1128 | ep_ring = virt_dev->eps[ep_index].new_ring; |
1128 | ep_ctx->deq = ep_ring->first_seg->dma | ep_ring->cycle_state; | 1129 | ep_ctx->deq = ep_ring->first_seg->dma | ep_ring->cycle_state; |
1129 | 1130 | ||