linux-stable/drivers/dma
Sinan Kaya 793ae66c7d dmaengine: qcom_hidma: add error reporting for tx_status
The HIDMA driver is capable of error detection. However, the error was
not being passed back to the client when tx_status API is called.

Changing the error handling behavior to follow this oder.

1. dmaengine asserts error interrupt
2. Driver receives and mark's the txn as error
3. Driver completes the txn and intimates the client. No further
   submissions. Drop the locks before calling callback, as subsequent
   processing by client maybe in callback thread.
4. Client invokes status and you can return error
5. On error, client calls terminate_all. You can reset channel, free all
   descriptors in the active, pending and completed lists
6. Client prepares new txn and so on.

As part of this work, got rid of the reset in the interrupt handler when
an error happens and the HW is put into disabled state. The only way to
recover is for the client to terminate the channel.

Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2016-08-31 21:27:32 +05:30
..
bestcomm dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
dw dmaengine: dw: convert callback to helper function 2016-08-08 08:11:38 +05:30
hsu dmaengine: hsu: Export hsu_dma_get_status() 2016-06-25 14:30:42 -07:00
ioat dmaengine: ioatdma: add error strings to chanerr output 2016-08-08 08:11:42 +05:30
ipu dmaengine: ipu: convert callback to helper function 2016-08-08 08:11:39 +05:30
ppc4xx dmaengine: ppc4xx_adma: convert callback to helper function 2016-08-08 08:11:40 +05:30
qcom dmaengine: qcom_hidma: add error reporting for tx_status 2016-08-31 21:27:32 +05:30
sh dmaengine: sh_shdma-base: convert callback to helper function 2016-08-08 08:11:43 +05:30
xilinx dmengine: xilinx_dma: convert callback to helper function 2016-08-08 08:11:43 +05:30
acpi-dma.c dmaengine: acpi-dma: align debug message with flow 2016-02-22 09:06:09 +05:30
amba-pl08x.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
at_hdmac.c dmaengine: at_hdmac: convert callback to helper function 2016-08-08 08:11:38 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: use %pad format string for dma_addr_t 2015-11-16 09:21:05 +05:30
at_xdmac.c dmaengine: at_xdmac: convert callback to helper function 2016-08-08 08:11:38 +05:30
bcm2835-dma.c dmaengine: bcm2835: fix 64-bit warning 2016-07-06 22:39:43 +05:30
coh901318.c dmaengine: coh901318: convert callback to helper function 2016-08-08 08:11:38 +05:30
coh901318.h
coh901318_lli.c
cppi41.c dmaengine: cppi41: convert callback to helper function 2016-08-08 08:11:38 +05:30
dma-axi-dmac.c dmaengine: axi-dmac: Return IRQ_NONE if no IRQs are pending 2016-07-01 22:56:41 +05:30
dma-jz4740.c dmaengine: jz4740: kill the tasklets upon exit 2016-07-16 20:19:00 +05:30
dma-jz4780.c dmaengine: jz4780: Kill tasklets before unregistering the device 2015-08-18 22:28:50 +05:30
dmaengine.c Merge branch 'topic/core' into for-linus 2016-05-17 10:13:40 +05:30
dmaengine.h dmaengine: add support to provide error result from a DMA transation 2016-08-08 08:11:42 +05:30
dmatest.c dmaengine: dmatest: Add support for scatter-gather DMA mode 2016-07-16 20:17:26 +05:30
edma.c dmaengine: edma: kill the tasklets upon exit 2016-07-16 20:18:58 +05:30
ep93xx_dma.c dmaengine: ep93xx_dma: convert callback to helper function 2016-08-08 08:11:38 +05:30
fsl-edma.c dmaengine: fsl-edma: kill the tasklets upon exit 2016-07-16 20:19:00 +05:30
fsl_raid.c dmaengine: fsl_raid: convert callback to helper function 2016-08-08 08:11:38 +05:30
fsl_raid.h dmaengine: Driver support for FSL RaidEngine device. 2015-04-02 16:10:27 +05:30
fsldma.c dmaengine: fsldma: convert callback to helper function 2016-08-08 08:11:39 +05:30
fsldma.h dmaengine: fsldma: declare slave capabilities for the generic code 2015-01-13 23:58:08 +05:30
idma64.c dmaengine: idma64: clear LLP_[SD]_EN bits in last descriptor 2016-02-15 22:06:45 +05:30
idma64.h asm-generic changes for 4.6 2016-03-24 23:13:48 -07:00
img-mdc-dma.c dmaengine: mdc: Correct terminate_all handling 2015-12-18 11:12:29 +05:30
imx-dma.c dmaengine: imx-dma: convert callback to helper function 2016-08-08 08:11:39 +05:30
imx-sdma.c dmaengine: imx-sdma: convert callback to helper function 2016-08-08 08:11:39 +05:30
iop-adma.c dmaengine: iop-adma: convert callback to helper function 2016-08-08 08:11:39 +05:30
k3dma.c Merge branch 'topic/dmaengine_cleanups' into for-linus 2016-07-28 10:10:37 +05:30
Kconfig Merge branch 'topic/xilinx' into for-linus 2016-07-16 20:10:54 +05:30
lpc18xx-dmamux.c dmaengine: add driver for lpc18xx dmamux 2015-08-18 22:12:14 +05:30
Makefile dmaengine: mv_xor_v2: new driver 2016-07-12 10:09:53 +05:30
mic_x100_dma.c dmaengine: mic_x100_dma: convert callback to helper function 2016-08-08 08:11:39 +05:30
mic_x100_dma.h dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
mmp_pdma.c dmaengine: mmp_pdma: convert callback to helper function 2016-08-08 08:11:39 +05:30
mmp_tdma.c dmaengine: mmp_tdma: convert callback to helper function 2016-08-08 08:11:40 +05:30
moxart-dma.c dmaengine: moxart-dma: explicitly freeup irq 2016-07-16 20:19:03 +05:30
mpc512x_dma.c dmaengine: mpc512x_dma: convert callback to helper function 2016-08-08 08:11:40 +05:30
mv_xor.c dmaengine: mv_xor: convert callback to helper function 2016-08-08 08:11:40 +05:30
mv_xor.h dmaengine: mv_xor: use SoC type instead of directly the operation mode 2016-05-03 12:27:47 +05:30
mv_xor_v2.c dmaengine: mv_xor_v2: remove trailing whitespace 2016-07-12 10:10:00 +05:30
mxs-dma.c dmaengine: mxs-dma: convert callback to helper function 2016-08-08 08:11:40 +05:30
nbpfaxi.c dmaengine: nbpfaxi: convert callback to helper function 2016-08-08 08:11:40 +05:30
of-dma.c dmaengine: of_dma: approximate an average distribution 2016-05-14 13:34:10 +05:30
omap-dma.c Merge branch 'topic/dmaengine_cleanups' into for-linus 2016-07-28 10:10:37 +05:30
pch_dma.c dmaengine: pch_dma: convert callback to helper function 2016-08-08 08:11:40 +05:30
pl330.c dmaengine: pl330: convert callback to helper function 2016-08-08 08:11:40 +05:30
pxa_dma.c dmaengine: pxa_dma: implement device_synchronize 2016-07-23 16:07:29 +05:30
s3c24xx-dma.c dmaengine: s3c24xx: kill the tasklets upon exit 2016-07-23 16:07:24 +05:30
sa11x0-dma.c dmaengine: sa11x0: report slave capabilities to upper layers 2015-04-17 23:24:35 +05:30
sirf-dma.c dmaengine: sirf-dma: convert callback to helper function 2016-08-08 08:11:41 +05:30
ste_dma40.c dmaengine: ste_dma40: convert callback to helper function 2016-08-08 08:11:41 +05:30
ste_dma40_ll.c dmaengine: ste_dma40_ll: make d40_width_to_bits static 2016-06-08 08:59:55 +05:30
ste_dma40_ll.h
stm32-dma.c dmaengine: stm32-dma: Fix unchecked deference of chan->desc 2015-12-10 09:45:22 +05:30
sun4i-dma.c remove lots of IS_ERR_VALUE abuses 2016-05-27 15:26:11 -07:00
sun6i-dma.c dmaengine: sun6i-dma: Only calculate residue if state exists. 2016-06-21 21:35:00 +05:30
tegra20-apb-dma.c dmaengine: tegra20-apb-dma: convert callback to helper function 2016-08-08 08:11:41 +05:30
tegra210-adma.c dmaengine: tegra-adma: Add support for Tegra210 ADMA 2016-05-13 14:56:24 +05:30
ti-dma-crossbar.c dmaengine: ti-dma-crossbar: make omap_dmaxbar_init static 2016-06-28 20:09:54 +05:30
timb_dma.c dmaengine: timb_dma: convert callback to helper function 2016-08-08 08:11:41 +05:30
TODO dmaengine: dw: don't perform DMA when dmaengine_submit is called 2014-07-15 22:14:30 +05:30
txx9dmac.c dmaengine: txx9dmac: convert callback to helper function 2016-08-08 08:11:41 +05:30
txx9dmac.h MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT 2014-11-24 22:46:44 +01:00
virt-dma.c dmaengine: virt-dma: convert callback to helper function 2016-08-08 08:11:41 +05:30
virt-dma.h Merge branch 'topic/async' into for-linus 2016-01-06 15:17:47 +05:30
xgene-dma.c dmaengine: xgene-dma: convert callback to helper function 2016-08-08 08:11:42 +05:30
zx296702_dma.c dmaengine updates for 4.4-rc1 2015-11-10 10:05:17 -08:00