This is v4 of a series to convert the 8250 driver to an NBCON console, providing both threaded and atomic printing implementations. v3 of this series is here [0]. Additional background information about NBCON consoles in general is available in the cover letter of v2 [1]. The changes since v3: - For callbacks ->rs485_stop_tx() and ->rs485_start_tx(), rename argument @in_con to @toggle_ier (inverts meaning). - For univ8250_console_device_lock() and univ8250_console_device_unlock(), rename argument @con to @co. - Do not introduce helpers __serial8250_stop_rx_mask_dr(), __serial8250_stop_rx_int(), __serial8250_start_rx_int(). - Use @frame_time to determine per-character timeout, fallback to 10ms if @frame_time not available. - Use shorter code syntax when setting @console_line_ended. - Introduce helper function fifo_wait_for_lsr() to wait for multiple characters. - For serial8250_console_fifo_write() and serial8250_console_byte_write(), remove unnecessary READ_ONCE() usage. - For serial8250_console_fifo_write() and serial8250_console_byte_write(), use nbcon_can_proceed() rather than repeatedly enter/exit unsafe regions. - Initialize @modem_status_work using init_irq_work() rather than IRQ_WORK_INIT(). - Commit message and comment style cleanups as requested. John Ogness [0] https://lore.kernel.org/lkml/20241025105728.602310-1-john.ogness@xxxxxxxxxxxxx [1] https://lore.kernel.org/lkml/20240913140538.221708-1-john.ogness@xxxxxxxxxxxxx John Ogness (6): serial: 8250: Adjust the timeout for FIFO mode serial: 8250: Use frame rate to determine timeout serial: 8250: Use high-level writing function for FIFO serial: 8250: Provide flag for IER toggling for RS485 serial: 8250: Switch to nbcon console serial: 8250: Revert "drop lockdep annotation from serial8250_clear_IER()" drivers/tty/serial/8250/8250.h | 4 +- drivers/tty/serial/8250/8250_bcm2835aux.c | 4 +- drivers/tty/serial/8250/8250_core.c | 35 +++- drivers/tty/serial/8250/8250_omap.c | 2 +- drivers/tty/serial/8250/8250_port.c | 223 +++++++++++++++++----- include/linux/serial_8250.h | 12 +- 6 files changed, 214 insertions(+), 66 deletions(-) base-commit: 2c1fd53af21b8cb13878b054894d33d3383eb1f3 -- 2.39.5