Le 23/11/2022 à 09:50, Michael Walle a écrit : > Am 2022-11-23 09:27, schrieb Jiri Slaby (SUSE): >> Writing ATMEL_US_TXDIS to ATMEL_US_CR makes the transmitter NOT to send >> the just queued character. This means when the character is last and >> uart calls ops->stop_tx(), the character is not sent at all. >> >> The usart datasheet is not much specific on this, it just says the >> transmitter is stopped. But apparently, the character is dropped. So >> we should stop the transmitter only for DMA and PDC transfers to not >> send any more characters. For PIO, this is unexpected and deviates from >> other drivers. In particular, the below referenced commit broke TX as it >> added a call to ->stop_tx() after the very last character written to the >> transmitter. >> >> So fix this by limiting the write of ATMEL_US_TXDIS to DMA transfers >> only. >> >> Even there, I don't know if it is correctly implemented. Are all the >> queued characters sent once ->start_tx() is called? Anyone tested flow >> control -- be it hard (RTSCTS) or the soft (XOFF/XON) one? >> >> Fixes: 2d141e683e9a ("tty: serial: use uart_port_tx() helper") >> Cc: Richard Genoud <richard.genoud@xxxxxxxxx> >> Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx> >> Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> >> Cc: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> >> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> Reported-by: Michael Walle <michael@xxxxxxxx> >> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@xxxxxxxxxx> > > Already merged, but: > Tested-by: Michael Walle <michael@xxxxxxxx> Acked-by: Richard Genoud <richard.genoud@xxxxxxxxx> > > Thanks, > -michael Thanks !