Commit 8034da7ab8f5db3bd4e98be8916f514e9cfab14f

Authored by Ajay Kumar Gupta
1 parent cf20e3c5a0
Exists in master

usb: musb: cppi41dma: fix channel status

Channel status was wrongly set to FREE while it should be done just before
calling dma_completion.

Merge to:
commit 26be0d11e79728339e4e627dc27d6894bcb5de82
usb: musb: cppi41dma: yield cpu in tx fifo empty workqueue

Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff

drivers/usb/musb/cppi41_dma.c
... ... @@ -1308,6 +1308,8 @@
1308 1308 MUSB_TXCSR_FIFONOTEMPTY)) {
1309 1309 resched = 1;
1310 1310 } else {
  1311 + tx_ch->channel.status =
  1312 + MUSB_DMA_STATUS_FREE;
1311 1313 tx_ch->tx_complete = 0;
1312 1314 musb_dma_completion(musb, index+1, 1);
1313 1315 }
... ... @@ -1420,8 +1422,6 @@
1420 1422 (tx_ch->transfer_mode && !tx_ch->zlp_queued))
1421 1423 cppi41_next_tx_segment(tx_ch);
1422 1424 else if (tx_ch->channel.actual_len >= tx_ch->length) {
1423   - tx_ch->channel.status = MUSB_DMA_STATUS_FREE;
1424   -
1425 1425 /*
1426 1426 * We get Tx DMA completion interrupt even when
1427 1427 * data is still in FIFO and not moved out to