All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.