Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

serial: sc16is7xx: announce support for SER_RS485_RTS_ON_SEND

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.

Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Suggested-by: Konstantin Pugin <ria.freelander@gmail.com>
Link: https://lore.kernel.org/lkml/20240422133219.2710061-2-ria.freelander@gmail.com
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Tested-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Link: https://lore.kernel.org/r/20241007162716.3122912-1-hugo@hugovil.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Hugo Villeneuve and committed by
Greg Kroah-Hartman
068d35a7 0927c649

+1 -1
+1 -1
drivers/tty/serial/sc16is7xx.c
··· 1473 1473 } 1474 1474 1475 1475 static const struct serial_rs485 sc16is7xx_rs485_supported = { 1476 - .flags = SER_RS485_ENABLED | SER_RS485_RTS_AFTER_SEND, 1476 + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND, 1477 1477 .delay_rts_before_send = 1, 1478 1478 .delay_rts_after_send = 1, /* Not supported but keep returning -EINVAL */ 1479 1479 };