diff options
author | Andiry Xu <andiry.xu@amd.com> | 2012-03-05 04:49:39 -0500 |
---|---|---|
committer | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2012-03-13 12:30:34 -0400 |
commit | 2fdcd47b6980f4e26a97811a17f5be7cb919ef90 (patch) | |
tree | 24badc008b12560a7a1943d6c825e298dd6f8d0a | |
parent | 8dfec6140fc617b932cf9a09ba46d0ee3f3a7d87 (diff) |
xHCI: Allocate 2 segments for transfer ring
Allocate 2 segments for transfer ring by default, so we can expand the ring
when the enqueue pointer and dequeue pointer are in different segments.
Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
-rw-r--r-- | drivers/usb/host/xhci-mem.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index c37aa1ba9126..cae4c6f2845a 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c | |||
@@ -642,7 +642,7 @@ struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci, | |||
642 | */ | 642 | */ |
643 | for (cur_stream = 1; cur_stream < num_streams; cur_stream++) { | 643 | for (cur_stream = 1; cur_stream < num_streams; cur_stream++) { |
644 | stream_info->stream_rings[cur_stream] = | 644 | stream_info->stream_rings[cur_stream] = |
645 | xhci_ring_alloc(xhci, 1, 1, TYPE_STREAM, mem_flags); | 645 | xhci_ring_alloc(xhci, 2, 1, TYPE_STREAM, mem_flags); |
646 | cur_ring = stream_info->stream_rings[cur_stream]; | 646 | cur_ring = stream_info->stream_rings[cur_stream]; |
647 | if (!cur_ring) | 647 | if (!cur_ring) |
648 | goto cleanup_rings; | 648 | goto cleanup_rings; |
@@ -976,7 +976,7 @@ int xhci_alloc_virt_device(struct xhci_hcd *xhci, int slot_id, | |||
976 | } | 976 | } |
977 | 977 | ||
978 | /* Allocate endpoint 0 ring */ | 978 | /* Allocate endpoint 0 ring */ |
979 | dev->eps[0].ring = xhci_ring_alloc(xhci, 1, 1, TYPE_CTRL, flags); | 979 | dev->eps[0].ring = xhci_ring_alloc(xhci, 2, 1, TYPE_CTRL, flags); |
980 | if (!dev->eps[0].ring) | 980 | if (!dev->eps[0].ring) |
981 | goto fail; | 981 | goto fail; |
982 | 982 | ||
@@ -1423,7 +1423,7 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, | |||
1423 | type = usb_endpoint_type(&ep->desc); | 1423 | type = usb_endpoint_type(&ep->desc); |
1424 | /* Set up the endpoint ring */ | 1424 | /* Set up the endpoint ring */ |
1425 | virt_dev->eps[ep_index].new_ring = | 1425 | virt_dev->eps[ep_index].new_ring = |
1426 | xhci_ring_alloc(xhci, 1, 1, type, mem_flags); | 1426 | xhci_ring_alloc(xhci, 2, 1, type, mem_flags); |
1427 | if (!virt_dev->eps[ep_index].new_ring) { | 1427 | if (!virt_dev->eps[ep_index].new_ring) { |
1428 | /* Attempt to use the ring cache */ | 1428 | /* Attempt to use the ring cache */ |
1429 | if (virt_dev->num_rings_cached == 0) | 1429 | if (virt_dev->num_rings_cached == 0) |