xHCI: fix queue_trb in isoc transfer

Fix the more_trbs_coming field of queue_trb() in isoc transfer.

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
This commit is contained in:
Andiry Xu 2010-12-20 14:49:48 +08:00 committed by Sarah Sharp
parent a6d940dd75
commit 47cbf6925c
1 changed files with 4 additions and 1 deletions

View File

@ -2900,6 +2900,7 @@ static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
int running_total, trb_buff_len, td_len, td_remain_len, ret; int running_total, trb_buff_len, td_len, td_remain_len, ret;
u64 start_addr, addr; u64 start_addr, addr;
int i, j; int i, j;
bool more_trbs_coming;
ep_ring = xhci->devs[slot_id]->eps[ep_index].ring; ep_ring = xhci->devs[slot_id]->eps[ep_index].ring;
@ -2965,9 +2966,11 @@ static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
*/ */
if (j < trbs_per_td - 1) { if (j < trbs_per_td - 1) {
field |= TRB_CHAIN; field |= TRB_CHAIN;
more_trbs_coming = true;
} else { } else {
td->last_trb = ep_ring->enqueue; td->last_trb = ep_ring->enqueue;
field |= TRB_IOC; field |= TRB_IOC;
more_trbs_coming = false;
} }
/* Calculate TRB length */ /* Calculate TRB length */
@ -2980,7 +2983,7 @@ static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
length_field = TRB_LEN(trb_buff_len) | length_field = TRB_LEN(trb_buff_len) |
remainder | remainder |
TRB_INTR_TARGET(0); TRB_INTR_TARGET(0);
queue_trb(xhci, ep_ring, false, false, queue_trb(xhci, ep_ring, false, more_trbs_coming,
lower_32_bits(addr), lower_32_bits(addr),
upper_32_bits(addr), upper_32_bits(addr),
length_field, length_field,