]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
tty: serial: imx: Fix broken RS485
authorRickard x Andersson <rickaran@axis.com>
Wed, 21 Feb 2024 11:53:04 +0000 (12:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Apr 2024 13:28:42 +0000 (15:28 +0200)
commit24b5eff43ec25a258e1d99e106b598761ac3d2a8
treef05b8b466e022400280db092710c4d590dacbe4e
parent6f3c1dabe8d014ad95b72fc56276d82a6f5e6ab3
tty: serial: imx: Fix broken RS485

commit 672448ccf9b6a676f96f9352cbf91f4d35f4084a upstream.

When about to transmit the function imx_uart_start_tx is called and in
some RS485 configurations this function will call imx_uart_stop_rx. The
problem is that imx_uart_stop_rx will enable loopback in order to
release the RS485 bus, but when loopback is enabled transmitted data
will just be looped to RX.

This patch fixes the above problem by not enabling loopback when about
to transmit.

This driver now works well when used for RS485 half duplex master
configurations.

Fixes: 79d0224f6bf2 ("tty: serial: imx: Handle RS485 DE signal active high")
Cc: stable <stable@kernel.org>
Signed-off-by: Rickard x Andersson <rickaran@axis.com>
Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Link: https://lore.kernel.org/r/20240221115304.509811-1-rickaran@axis.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c