Re: [PATCH] serial: qcom-geni: Set UPSTAT_AUTOCTS for hardware flow control

From: Jiri Slaby

Date: Wed Oct 21 2026 - 23:59:49 EST


On 21. 10. 26, 22:26, Michael McAllister wrote:
diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index a851b8f0ef..5782b89c84 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1503,6 +1503,7 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport,
struct qcom_geni_serial_port *port = to_dev_port(uport);
unsigned int baud;
unsigned long timeout;
+ unsigned long flags;
u32 bits_per_char;
u32 tx_trans_cfg;
u32 tx_parity_cfg;
@@ -1596,6 +1597,14 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport,
writel(bits_per_char, uport->membase + SE_UART_RX_WORD_LEN);
writel(stop_bit_len, uport->membase + SE_UART_TX_STOP_BIT_LEN);
+ /* CTS gates TX in hardware; no CTS interrupt updates hw_stopped. */
+ uart_port_lock_irqsave(uport, &flags);

Why not to use scoped_guard()?

+ if (termios->c_cflag & CRTSCTS)
+ uport->status |= UPSTAT_AUTOCTS;
+ else
+ uport->status &= ~UPSTAT_AUTOCTS;
+ uart_port_unlock_irqrestore(uport, flags);
+
trace_geni_serial_set_termios(uport->dev, baud, bits_per_char,
tx_trans_cfg, tx_parity_cfg, rx_trans_cfg,
rx_parity_cfg, stop_bit_len);

thanks,
--
js
suse labs