On 24/11/2023 14.11, Paul Geurts wrote: > When using the serial port as RS485 port, the tx statemachine is used to > control the RTS pin to drive the RS485 transceiver TX_EN pin. When the > TTY port is closed in the middle of a transmission (for instance during > userland application crash), imx_uart_shutdown disables the interface > and disables the Transmission Complete interrupt. afer that, > imx_uart_stop_tx bails on an incomplete transmission, to be retriggered > by the TC interrupt. This interrupt is disabled and therefore the tx > statemachine never transitions out of SEND. The statemachine is in > deadlock now, and the TX_EN remains low, making the interface useless. > > imx_uart_stop_tx now checks for incomplete transmission AND whether TC > interrupts are enabled before bailing to be retriggered. This makes sure > the state machine handling is reached, and is properly set to > WAIT_AFTER_SEND. > > Fixes: cb1a60923609 ("serial: imx: implement rts delaying for rs485") > Signed-off-by: Paul Geurts <paul_geurts@xxxxxxx> Hi Paul Interestingly, both Eberhard (cc'ed) and I have hit similar problems in this driver recently. See the thread https://lore.kernel.org/lkml/20231120132256.136625-1-rasmus.villemoes@xxxxxxxxx/ . It is possible that this also fixes the problems I/we saw, but I can't get around to testing until sometime next week. Rasmus