summaryrefslogtreecommitdiff
path: root/drivers/dma/sprd-dma.c
diff options
context:
space:
mode:
authorAkhil R <akhilrajeev@nvidia.com>2022-07-20 13:40:44 +0300
committerVinod Koul <vkoul@kernel.org>2022-07-26 15:42:21 +0300
commit36834c67016794b8fa03d7672a5b7f2cc4529298 (patch)
tree789e003fff27c00dd24c8d847d1189431aedbb98 /drivers/dma/sprd-dma.c
parent37a0d69d00f50f2a0c387bbbbb2946e771af243d (diff)
downloadlinux-36834c67016794b8fa03d7672a5b7f2cc4529298.tar.xz
dmaengine: tegra: Add terminate() for Tegra234
In certain cases where the DMA client bus gets corrupted or if the end device ceases to send/receive data, DMA can wait indefinitely for the data to be received/sent. Attempting to terminate the transfer will put the DMA in pause flush mode and it remains there. The channel is irrecoverable once this pause times out in Tegra194 and earlier chips. Whereas, from Tegra234, it can be recovered by disabling the channel and reprograming it. Hence add a new terminate() function that ignores the outcome of dma_pause() so that terminate_all() can proceed to disable the channel. Signed-off-by: Akhil R <akhilrajeev@nvidia.com> Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/r/20220720104045.16099-3-akhilrajeev@nvidia.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/sprd-dma.c')
0 files changed, 0 insertions, 0 deletions