dw_dmac: print correct number of scanned descriptors
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 19 Jun 2012 10:34:04 +0000 (13:34 +0300)
committerVinod Koul <vinod.koul@linux.intel.com>
Thu, 21 Jun 2012 02:35:34 +0000 (08:05 +0530)
In case the first descriptor we found is available, the counter still remains 0
value which is wrong. This patch fixes the counter behaviour.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Viresh Kumar <viresh.linux@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
drivers/dma/dw_dmac.c

index 467599a4b9b68b7ffec2b5acb41917d0f8c02577..a37608d02a2c3747b250db6dc9df052e10e4586e 100644 (file)
@@ -105,13 +105,13 @@ static struct dw_desc *dwc_desc_get(struct dw_dma_chan *dwc)
 
        spin_lock_irqsave(&dwc->lock, flags);
        list_for_each_entry_safe(desc, _desc, &dwc->free_list, desc_node) {
+               i++;
                if (async_tx_test_ack(&desc->txd)) {
                        list_del(&desc->desc_node);
                        ret = desc;
                        break;
                }
                dev_dbg(chan2dev(&dwc->chan), "desc %p not ACKed\n", desc);
-               i++;
        }
        spin_unlock_irqrestore(&dwc->lock, flags);