Messages in this thread Patch in this message | | | From | Jamie Iles <> | Subject | [PATCH 1/4] dmaengine/dw_dmac: don't scan descriptors if no xfers in progress | Date | Tue, 23 Nov 2010 11:06:08 +0000 |
| |
Some hardware (picoChip picoXCell in particular) sometimes has the block transfer complete bit being set for a channel after the whole transfer has completed. If we don't have any transfers in the active list then don't bother to scan the descriptors. This often happens in normal operation and doesn't require the channel to be reset.
Cc: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Jamie Iles <jamie.iles@picochip.com> --- drivers/dma/dw_dmac.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index a3991ab..08c51d4 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@ -291,6 +291,9 @@ static void dwc_scan_descriptors(struct dw_dma *dw, struct dw_dma_chan *dwc) return; } + if (list_empty(&dwc->active_list)) + return; + dev_vdbg(chan2dev(&dwc->chan), "scan_descriptors: llp=0x%x\n", llp); list_for_each_entry_safe(desc, _desc, &dwc->active_list, desc_node) { -- 1.7.2.3
| |