]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
serial: rsci: Add set_rtrg() callback
authorBiju Das <biju.das.jz@bp.renesas.com>
Sat, 29 Nov 2025 16:42:59 +0000 (16:42 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Dec 2025 14:07:06 +0000 (15:07 +0100)
The rtrg variable is populated in sci_init_single() for RZ/T2H. Add
set_rtrg() callback for setting the rtrg value.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Link: https://patch.msgid.link/20251129164325.209213-4-biju.das.jz@bp.renesas.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/rsci.c

index b3c48dc1e07dbb8c485d226110552d7d1daee92b..0533a4bb1d03c883971f4c5331f3a1595fb182e8 100644 (file)
@@ -151,6 +151,22 @@ static void rsci_start_rx(struct uart_port *port)
        rsci_serial_out(port, CCR0, ctrl);
 }
 
+static int rsci_scif_set_rtrg(struct uart_port *port, int rx_trig)
+{
+       u32 fcr = rsci_serial_in(port, FCR);
+
+       if (rx_trig >= port->fifosize)
+               rx_trig = port->fifosize - 1;
+       else if (rx_trig < 1)
+               rx_trig = 0;
+
+       fcr &= ~FCR_RTRG4_0;
+       fcr |= field_prep(FCR_RTRG4_0, rx_trig);
+       rsci_serial_out(port, FCR, fcr);
+
+       return rx_trig;
+}
+
 static void rsci_set_termios(struct uart_port *port, struct ktermios *termios,
                             const struct ktermios *old)
 {
@@ -454,6 +470,7 @@ static const struct sci_port_ops rsci_port_ops = {
        .poll_put_char          = rsci_poll_put_char,
        .prepare_console_write  = rsci_prepare_console_write,
        .suspend_regs_size      = rsci_suspend_regs_size,
+       .set_rtrg               = rsci_scif_set_rtrg,
        .shutdown_complete      = rsci_shutdown_complete,
 };