aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci.h
diff options
context:
space:
mode:
authorAndiry Xu <andiry.xu@amd.com>2012-03-05 04:49:37 -0500
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2012-03-13 12:30:24 -0400
commit8dfec6140fc617b932cf9a09ba46d0ee3f3a7d87 (patch)
tree0929c51b289a54c7ac11e6919ff1f9ae737535ff /drivers/usb/host/xhci.h
parent186a7ef13a8fa3bc7cca1ccd33bd469b931e46de (diff)
xHCI: dynamic ring expansion
If room_on_ring() check fails, try to expand the ring and check again. When expand a ring, use a cached ring or allocate new segments, link the original ring and the new ring or segments, update the original ring's segment numbers and the last segment pointer. 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>
Diffstat (limited to 'drivers/usb/host/xhci.h')
-rw-r--r--drivers/usb/host/xhci.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index ea8fc237d158..57cd632064b4 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1622,6 +1622,8 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev,
1622 struct usb_device *udev, struct usb_host_endpoint *ep, 1622 struct usb_device *udev, struct usb_host_endpoint *ep,
1623 gfp_t mem_flags); 1623 gfp_t mem_flags);
1624void xhci_ring_free(struct xhci_hcd *xhci, struct xhci_ring *ring); 1624void xhci_ring_free(struct xhci_hcd *xhci, struct xhci_ring *ring);
1625int xhci_ring_expansion(struct xhci_hcd *xhci, struct xhci_ring *ring,
1626 unsigned int num_trbs, gfp_t flags);
1625void xhci_free_or_cache_endpoint_ring(struct xhci_hcd *xhci, 1627void xhci_free_or_cache_endpoint_ring(struct xhci_hcd *xhci,
1626 struct xhci_virt_device *virt_dev, 1628 struct xhci_virt_device *virt_dev,
1627 unsigned int ep_index); 1629 unsigned int ep_index);