android_kernel_xiaomi_sm8350/drivers/dma
Peter Ujfalusi e37cf26bd5 dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available
[ Upstream commit eda97cb095f2958bbad55684a6ca3e7d7af0176a ]

If the router_xlate can not find the controller in the available DMA
devices then it should return with -EPORBE_DEFER in a same way as the
of_dma_request_slave_channel() does.

The issue can be reproduced if the event router is registered before the
DMA controller itself and a driver would request for a channel before the
controller is registered.
In of_dma_request_slave_channel():
1. of_dma_find_controller() would find the dma_router
2. ofdma->of_dma_xlate() would fail and returned NULL
3. -ENODEV is returned as error code

with this patch we would return in this case the correct -EPROBE_DEFER and
the client can try to request the channel later.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Link: https://lore.kernel.org/r/20210717190021.21897-1-peter.ujfalusi@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-26 08:36:13 -04:00
..
bestcomm
dw dmaengine: dw: Make it dependent to HAS_IOMEM 2021-04-21 12:56:13 +02:00
dw-axi-dmac
dw-edma dmaengine: dw-edma: Fix crash on loading/unloading driver 2021-05-22 11:38:28 +02:00
hsu dmaengine: hsu: disable spurious interrupt 2021-03-04 10:26:28 +01:00
ioat
ipu
mediatek dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma 2021-06-30 08:47:46 -04:00
ppc4xx
qcom dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM 2021-06-23 14:41:23 +02:00
sh dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe() 2021-08-26 08:36:13 -04:00
ti
xilinx dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers 2021-08-26 08:36:13 -04:00
acpi-dma.c dmaengine: acpi: Put the CSRT table after using it 2020-09-17 13:47:45 +02:00
altera-msgdma.c
amba-pl08x.c
at_hdmac_regs.h
at_hdmac.c dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate() 2021-01-09 13:44:54 +01:00
at_xdmac.c
bcm2835-dma.c
bcm-sba-raid.c
coh901318_lli.c
coh901318.c
coh901318.h
dma-axi-dmac.c
dma-jz4780.c dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status 2020-11-05 11:43:29 +01:00
dmaengine.c
dmaengine.h
dmatest.c dmaengine: dmatest: Check list for emptiness before access its last entry 2020-10-29 09:57:41 +01:00
ep93xx_dma.c
fsl_raid.c
fsl_raid.h
fsl-edma-common.c
fsl-edma-common.h
fsl-edma.c
fsl-qdma.c dmaengine: fsl-qdma: check dma_set_mask return value 2021-07-20 16:10:40 +02:00
fsldma.c dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function 2021-03-04 10:26:28 +01:00
fsldma.h
idma64.c
idma64.h
img-mdc-dma.c
imx-dma.c dmaengine: imx-dma: configure the generic DMA type to make it work 2021-08-12 13:20:56 +02:00
imx-sdma.c
iop-adma.c
iop-adma.h
k3dma.c
Kconfig dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM 2021-06-23 14:41:23 +02:00
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_v2.c dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe() 2020-12-30 11:51:12 +01:00
mv_xor.c
mv_xor.h
mxs-dma.c
nbpfaxi.c
of-dma.c dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available 2021-08-26 08:36:13 -04:00
owl-dma.c dmaengine: owl-dma: Fix a resource leak in the remove function 2021-03-04 10:26:28 +01:00
pch_dma.c
pl330.c dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc 2021-06-23 14:41:29 +02:00
pxa_dma.c
s3c24xx-dma.c
sa11x0-dma.c
sirf-dma.c
sprd-dma.c
st_fdma.c
st_fdma.h
ste_dma40_ll.c
ste_dma40_ll.h
ste_dma40.c dmaengine: stedma40: add missing iounmap() on error in d40_probe() 2021-06-23 14:41:23 +02:00
stm32-dma.c dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all 2020-10-01 13:17:36 +02:00
stm32-dmamux.c
stm32-mdma.c dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all 2020-10-01 13:17:35 +02:00
sun4i-dma.c
sun6i-dma.c
tegra20-apb-dma.c dmaengine: tegra-apb: Prevent race conditions on channel's freeing 2020-10-01 13:17:36 +02:00
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