mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-06 20:03:33 -04:00
| Filename | Latest commit message | Latest commit date |
|---|---|---|
[ Upstream commit e7e1e880b114ca640a2f280b0d5d38aed98f98c6 ]
Before the `callback_result` callback was introduced drivers coded their
invocation to the callback in a similar way to:
if (cb->callback) {
spin_unlock(&dma->lock);
cb->callback(cb->callback_param);
spin_lock(&dma->lock);
}
With the introduction of `callback_result` two helpers where introduced to
transparently handle both types of callbacks. And drivers where updated to
look like this:
if (dmaengine_desc_callback_valid(cb)) {
spin_unlock(&dma->lock);
dmaengine_desc_callback_invoke(cb, ...);
spin_lock(&dma->lock);
}
dmaengine_desc_callback_invoke() correctly handles both `callback_result`
and `callback`. But we forgot to update the dmaengine_desc_callback_valid()
function to check for `callback_result`. As a result DMA descriptors that
use the `callback_result` rather than `callback` don't have their callback
invoked by drivers that follow the pattern above.
Fix this by checking for both `callback` and `callback_result` in
dmaengine_desc_callback_valid().
Fixes:
|
||
| .. | ||
| bestcomm | ||
| dw | ||
| dw-axi-dmac | ||
| dw-edma | ||
| hsu | ||
| ioat | ||
| ipu | ||
| mediatek | ||
| ppc4xx | ||
| qcom | ||
| sh | ||
| ti | ||
| xilinx | ||
| acpi-dma.c | ||
| altera-msgdma.c | ||
| amba-pl08x.c | ||
| at_hdmac.c | ||
| at_hdmac_regs.h | ||
| at_xdmac.c | ||
| bcm-sba-raid.c | ||
| bcm2835-dma.c | ||
| coh901318.c | ||
| coh901318.h | ||
| coh901318_lli.c | ||
| dma-axi-dmac.c | ||
| dma-jz4780.c | ||
| dmaengine.c | ||
| dmaengine.h | ||
| dmatest.c | ||
| ep93xx_dma.c | ||
| fsl-edma-common.c | ||
| fsl-edma-common.h | ||
| fsl-edma.c | ||
| fsl-qdma.c | ||
| fsl_raid.c | ||
| fsl_raid.h | ||
| fsldma.c | ||
| fsldma.h | ||
| idma64.c | ||
| idma64.h | ||
| img-mdc-dma.c | ||
| imx-dma.c | ||
| imx-sdma.c | ||
| iop-adma.c | ||
| iop-adma.h | ||
| k3dma.c | ||
| Kconfig | ||
| lpc18xx-dmamux.c | ||
| Makefile | ||
| mcf-edma.c | ||
| mic_x100_dma.c | ||
| mic_x100_dma.h | ||
| mmp_pdma.c | ||
| mmp_tdma.c | ||
| moxart-dma.c | ||
| mpc512x_dma.c | ||
| mv_xor.c | ||
| mv_xor.h | ||
| mv_xor_v2.c | ||
| mxs-dma.c | ||
| nbpfaxi.c | ||
| of-dma.c | ||
| owl-dma.c | ||
| pch_dma.c | ||
| pl330.c | ||
| pxa_dma.c | ||
| s3c24xx-dma.c | ||
| sa11x0-dma.c | ||
| sirf-dma.c | ||
| sprd-dma.c | ||
| st_fdma.c | ||
| st_fdma.h | ||
| ste_dma40.c | ||
| ste_dma40_ll.c | ||
| ste_dma40_ll.h | ||
| stm32-dma.c | ||
| stm32-dmamux.c | ||
| stm32-mdma.c | ||
| sun4i-dma.c | ||
| sun6i-dma.c | ||
| tegra20-apb-dma.c | ||
| tegra210-adma.c | ||
| timb_dma.c | ||
| TODO | ||
| txx9dmac.c | ||
| txx9dmac.h | ||
| uniphier-mdmac.c | ||
| virt-dma.c | ||
| virt-dma.h | ||
| xgene-dma.c | ||
| zx_dma.c | ||