[PATCH 0/2] serial: qcom-geni: Convert console to nbcon and handle RX overflow
Bjorn Andersson <[email protected]> Wed, 29 Jul 2026 21:44:54 +0000
| Newsgroups | org.kernel.vger.linux-serial,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
The Qualcomm GENI UART uses independent sequencers. The main sequencer handles console TX and the secondary sequencer handles FIFO RX. The legacy console writer disables both interrupt domains while it performs a potentially long polled M-side transfer. Besides blocking printk callers for UART wire time, this leaves the small S-side FIFO unserviced and can lose interactive console input through FIFO overrun. This two-patch series converts the console to nbcon, then keep FIFO RX active while console output is in progress. Patch 1 adds nbcon threaded and atomic writers. It uses bounded 32-byte M-side commands so higher-priority atomic output can take over without waiting for a complete printk record. Atomic output may cancel normal M-side TX. The driver restarts queued TTY output with irq_work, honors flow control, and prevents deferred work from accessing a shut down or removed port. Patch 2 keeps FIFO RX on the secondary sequencer and drains it while the threaded writer refills console TX. It also defers SysRq delivery from this new receive context until the UART port lock is released. Signed-off-by: Bjorn Andersson <[email protected]> --- Bjorn Andersson (2): serial: qcom-geni: Convert console to nbcon serial: qcom-geni: Keep FIFO RX active during console TX drivers/tty/serial/qcom_geni_serial.c | 272 ++++++++++++++++++++++++++-------- 1 file changed, 212 insertions(+), 60 deletions(-) --- base-commit: 78bc8af4affb9a732504eb22eeac7d1e50883853 change-id: 20260723-qcom-geni-nbcon-55816a833d8c Best regards, -- Bjorn Andersson <[email protected]>