• Chanho Park's avatar
    spi: s3c64xx: move dma_release_channel to unprepare · 82295bc0
    Chanho Park authored
    This fixes the sequence of dma_release_channel.
    Since commit f52b03c7 ("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: f52b03c7
    
     ("spi: s3c64xx: requests spi-dma channel only during data transfer")
    Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
    Link: https://lore.kernel.org/r/20220627013845.138350-1-chanho61.park@samsung.com
    
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    82295bc0
spi-s3c64xx.c 39.3 KB