lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 335/846] serial: stm32: move tx dma terminate DMA to shutdown
    Date
    From: Valentin Caron <valentin.caron@foss.st.com>

    [ Upstream commit 56a23f9319e86e1d62a109896e2c7e52c414e67d ]

    Terminate DMA transaction and clear CR3_DMAT when shutdown is requested,
    instead of when remove is requested. If DMA transfer is not stopped in
    shutdown ops, driver will fail to start a new DMA transfer after next
    startup ops.

    Fixes: 3489187204eb ("serial: stm32: adding dma support")
    Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>
    Signed-off-by: Valentin Caron <valentin.caron@foss.st.com>
    Link: https://lore.kernel.org/r/20220104182445.4195-2-valentin.caron@foss.st.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/tty/serial/stm32-usart.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c
    index 8f032e77b954a..3366914dad7a8 100644
    --- a/drivers/tty/serial/stm32-usart.c
    +++ b/drivers/tty/serial/stm32-usart.c
    @@ -691,6 +691,11 @@ static void stm32_usart_shutdown(struct uart_port *port)
    u32 val, isr;
    int ret;

    + if (stm32_port->tx_dma_busy) {
    + dmaengine_terminate_async(stm32_port->tx_ch);
    + stm32_usart_clr_bits(port, ofs->cr3, USART_CR3_DMAT);
    + }
    +
    /* Disable modem control interrupts */
    stm32_usart_disable_ms(port);

    @@ -1385,7 +1390,6 @@ static int stm32_usart_serial_remove(struct platform_device *pdev)
    stm32_usart_clr_bits(port, ofs->cr3, USART_CR3_DMAR);

    if (stm32_port->tx_ch) {
    - dmaengine_terminate_async(stm32_port->tx_ch);
    stm32_usart_of_dma_tx_remove(stm32_port, pdev);
    dma_release_channel(stm32_port->tx_ch);
    }
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 22:09    [W:3.980 / U:0.472 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site