linux/drivers/dma/dw
Andy Shevchenko 6bdec2b3a4 dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer
[ Upstream commit ee1cdcdae5 ]

The commit 2895b2cad6 ("dmaengine: dw: fix cyclic transfer callbacks")
re-enabled BLOCK interrupts with regard to make cyclic transfers work. However,
this change becomes a regression for non-cyclic transfers as interrupt counters
under stress test had been grown enormously (approximately per 4-5 bytes in the
UART loop back test).

Taking into consideration above enable BLOCK interrupts if and only if channel
is programmed to perform cyclic transfer.

Fixes: 2895b2cad6 ("dmaengine: dw: fix cyclic transfer callbacks")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mans Rullgard <mans@mansr.com>
Tested-by: Mans Rullgard <mans@mansr.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2016-03-04 10:25:43 -05:00
..
core.c dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer 2016-03-04 10:25:43 -05:00
internal.h dmaengine: dw: export probe()/remove() and Co to users 2014-10-15 20:31:05 +05:30
Kconfig dmaengine: dw: don't prompt for DW_DMAC_CORE 2015-04-22 12:24:13 +05:30
Makefile dma: dw: add PCI part of the driver 2013-07-05 11:40:45 +05:30
pci.c dmaengine: dw: always export dw_dma_{en,dis}able 2014-10-15 20:31:04 +05:30
platform.c dmaengine: dw: append MODULE_ALIAS for platform driver 2015-03-16 22:07:03 +05:30
regs.h dmaengine: dw: define DW_DMA_MAX_NR_MASTERS 2015-02-04 22:39:44 -08:00