aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndiry Xu <andiry.xu@amd.com>2012-03-05 04:49:39 -0500
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2012-03-13 12:30:34 -0400
commit2fdcd47b6980f4e26a97811a17f5be7cb919ef90 (patch)
tree24badc008b12560a7a1943d6c825e298dd6f8d0a
parent8dfec6140fc617b932cf9a09ba46d0ee3f3a7d87 (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.c6
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)