[PATCH v2 0/4] Fix transmit handling on SCI/RSCI ports
From: Biju Das
Date: Wed Oct 21 2026 - 09:18:31 EST
Hi All,
This series fixes several transmit problems on the SCI (PORT_SCI) and
RSCI ports of the sh-sci driver, seen on Renesas RZ SoCs:
- Patch 1 removes the code that disables TE at the end of a
transmission on SCI, which the hardware manual does not describe.
- Patch 2 stops the TEI handler from turning the transmitter off
while the xmit kfifo still holds data, which could stall or lose
output. It also covers the TE handling that patch 1 no longer does
in sci_transmit_chars().
- Patch 3 skips the software clear of the TDxE flag on SCI, since
hardware clears it on a TDR write and the extra clear caused a
spurious TXI and a duplicated last character.
- Patch 4 forces a TE toggle when restoring SCSCR in the console
write path on SCI, so the TXI that restarts an interrupted drain is
generated. Without it the RZ/G2UL console can hang during boot.
To: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
To: Jiri Slaby <jirislaby@xxxxxxxxxx>
To: Kiryl Shutsemau <kas@xxxxxxxxxx>
To: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx>
To: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-serial@xxxxxxxxxxxxxxx
CC: linux-renesas-soc@xxxxxxxxxxxxxxx
Cc: x86@xxxxxxxxxx
Cc: linux-coco@xxxxxxxxxxxxxxx
Cc: kvm@xxxxxxxxxxxxxxx
Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Changes in v2:
* Updated commit header and description for patch#2 and #3.
* Take the port lock before reading the control register, so the
read-modify-write in sci_tx_end_interrupt() is protected.
* Extended the pending-data check in sci_tx_end_interrupt() to cover
x_char and a stopped port, not only a non-empty xmit kfifo.
* Replaced the PORT_SCI check with a has_tdxe_auto_clear flag in
struct sci_port, set from the new tdxe_auto_clear field in
struct sci_of_data.
- Link to v1: https://lore.kernel.org/r/20261019170139.473808-1-biju.das.jz@xxxxxxxxxxxxxx
---
Au Dang (2):
serial: sh-sci: Skip TDxE clear when hardware clears it automatically
serial: sh-sci: Toggle TE when restoring SCSCR in console write on SCI
Biju Das (2):
serial: sh-sci: Drop TE disable at end of transmission on SCI
serial: sh-sci: Keep TX enabled on TEI while data is pending
drivers/tty/serial/rsci.c | 2 ++
drivers/tty/serial/sh-sci-common.h | 4 ++++
drivers/tty/serial/sh-sci.c | 45 +++++++++++++++++++++++++-------------
3 files changed, 36 insertions(+), 15 deletions(-)
---
base-commit: 8f7df005a7564bd7ffa75da9c3085d5b996f1e16
change-id: 20261020-g2ul_sci-b610606ea5b5
Best regards,
--
Biju Das <biju.das.jz@xxxxxxxxxxxxxx>