* [PATCH 0/1] serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND
@ 2024-04-28 14:45 Konstantin Pugin
2024-04-28 14:45 ` [PATCH 1/1] " Konstantin Pugin
0 siblings, 1 reply; 2+ messages in thread
From: Konstantin Pugin @ 2024-04-28 14:45 UTC (permalink / raw)
Cc: krzk, conor, lkp, vz, robh, jcmvbkbc, nicolas.ferre,
manikanta.guntupalli, corbet, ychuang3, u.kleine-koenig,
Maarten.Brock, linux-stable, Konstantin Pugin,
Greg Kroah-Hartman, Jiri Slaby, Hugo Villeneuve, Andy Shevchenko,
Lech Perczak, Ilpo Järvinen, linux-kernel, linux-serial
When specifying flag SER_RS485_RTS_ON_SEND in RS485 configuration,
we get the following warning after commit 4afeced55baa ("serial: core:
fix sanitizing check for RTS settings"):
invalid RTS setting, using RTS_AFTER_SEND instead
This results in SER_RS485_RTS_AFTER_SEND being set and the
driver always write to the register field SC16IS7XX_EFCR_RTS_INVERT_BIT,
which breaks some hardware using these chips.
The hardware supports both RTS_ON_SEND and RTS_AFTER_SEND modes, so fix
this by announcing support for RTS_ON_SEND.
This patch is extracted from my XR20M117X series as it is affect all SC16IS7XX hardware.
This bug affects all kernel series from 6.1 onwards.
Konstantin Pugin (1):
serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND
drivers/tty/serial/sc16is7xx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
base-commit: 660a708098569a66a47d0abdad998e29e1259de6
--
2.44.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 1/1] serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND
2024-04-28 14:45 [PATCH 0/1] serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND Konstantin Pugin
@ 2024-04-28 14:45 ` Konstantin Pugin
0 siblings, 0 replies; 2+ messages in thread
From: Konstantin Pugin @ 2024-04-28 14:45 UTC (permalink / raw)
Cc: krzk, conor, lkp, vz, robh, jcmvbkbc, nicolas.ferre,
manikanta.guntupalli, corbet, ychuang3, u.kleine-koenig,
Maarten.Brock, linux-stable, Konstantin Pugin, stable,
Hugo Villeneuve, Andy Shevchenko, Greg Kroah-Hartman, Jiri Slaby,
Lech Perczak, Ilpo Järvinen, linux-kernel, linux-serial
From: Konstantin Pugin <ria.freelander@gmail.com>
When specifying flag SER_RS485_RTS_ON_SEND in RS485 configuration,
we get the following warning after commit 4afeced55baa ("serial: core:
fix sanitizing check for RTS settings"):
invalid RTS setting, using RTS_AFTER_SEND instead
This results in SER_RS485_RTS_AFTER_SEND being set and the
driver always write to the register field SC16IS7XX_EFCR_RTS_INVERT_BIT,
which breaks some hardware using these chips.
The hardware supports both RTS_ON_SEND and RTS_AFTER_SEND modes, so fix
this by announcing support for RTS_ON_SEND.
Cc: stable@vger.kernel.org
Fixes: 267913ecf737 ("serial: sc16is7xx: Fill in rs485_supported")
Tested-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Konstantin Pugin <ria.freelander@gmail.com>
---
drivers/tty/serial/sc16is7xx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
index 03cf30e20b75..dfcc804f558f 100644
--- a/drivers/tty/serial/sc16is7xx.c
+++ b/drivers/tty/serial/sc16is7xx.c
@@ -1449,7 +1449,7 @@ static int sc16is7xx_setup_mctrl_ports(struct sc16is7xx_port *s,
}
static const struct serial_rs485 sc16is7xx_rs485_supported = {
- .flags = SER_RS485_ENABLED | SER_RS485_RTS_AFTER_SEND,
+ .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND,
.delay_rts_before_send = 1,
.delay_rts_after_send = 1, /* Not supported but keep returning -EINVAL */
};
--
2.44.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-04-28 14:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-28 14:45 [PATCH 0/1] serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND Konstantin Pugin
2024-04-28 14:45 ` [PATCH 1/1] " Konstantin Pugin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.