xhci: xhci_ring_device: Ring stream ring bells for endpoints with streams

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Hans de Goede 2014-08-20 16:41:56 +03:00 committed by Greg Kroah-Hartman
parent 14e61a1bd9
commit b7f9696bd1

View File

@ -319,12 +319,19 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend)
*/ */
void xhci_ring_device(struct xhci_hcd *xhci, int slot_id) void xhci_ring_device(struct xhci_hcd *xhci, int slot_id)
{ {
int i; int i, s;
struct xhci_virt_ep *ep;
for (i = 0; i < LAST_EP_INDEX + 1; i++) for (i = 0; i < LAST_EP_INDEX + 1; i++) {
if (xhci->devs[slot_id]->eps[i].ring && ep = &xhci->devs[slot_id]->eps[i];
xhci->devs[slot_id]->eps[i].ring->dequeue)
if (ep->ep_state & EP_HAS_STREAMS) {
for (s = 1; s < ep->stream_info->num_streams; s++)
xhci_ring_ep_doorbell(xhci, slot_id, i, s);
} else if (ep->ring && ep->ring->dequeue) {
xhci_ring_ep_doorbell(xhci, slot_id, i, 0); xhci_ring_ep_doorbell(xhci, slot_id, i, 0);
}
}
return; return;
} }