]> git.baikalelectronics.ru Git - kernel.git/commit
spi: s3c64xx: move dma_release_channel to unprepare
authorChanho Park <chanho61.park@samsung.com>
Mon, 27 Jun 2022 01:38:45 +0000 (10:38 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 27 Jun 2022 22:26:54 +0000 (23:26 +0100)
commit151df1c85f079f995f4a2470700a9d18660c4024
tree210c03b0361dcc34f39a283de8fa3b9fee0c6954
parent0c44b48d03201ca6ac151036d4dba8683b361fe8
spi: s3c64xx: move dma_release_channel to unprepare

This fixes the sequence of dma_release_channel.
Since commit 6d87922c0d6c ("spi: s3c64xx: requests spi-dma channel only
during data transfer"),
dma_release_channel has been located in the s3c64xx_spi_transfer_one
but this makes invalid return of can_dma callback.
__spi_unmap_msg will check whether the request is requested by dma or
not via can_dma callback. When it is calling to check it, the channels
will be already released at the end of s3c64xx_spi_transfer_one so the
callback function will return always "false". So, they can't be unmapped
from __spi_unmap_msg call. To fix this, we need to add
unprepare_transfer_hardware callback and move the dma_release_channel
from s3c64xx_spi_transfer_one to there.

Fixes: 6d87922c0d6c ("spi: s3c64xx: requests spi-dma channel only during data transfer")
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Link: https://lore.kernel.org/r/20220627013845.138350-1-chanho61.park@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-s3c64xx.c