This series moves Moxa PCIe multiport serial board support out of
8250_pci into a dedicated 8250_mxpcie driver, and then extends that
driver to make use of MUEx50-specific UART features.
The split keeps the Moxa-specific logic out of the generic PCI 8250
driver and makes the follow-up changes easier to review. The new driver
continues to use the 8250 core, but adds support for MUEx50 features
such as programmable FIFO trigger levels, automatic hardware and
software flow control, interface mode switching, RS485 break handling,
and FIFO window based RX/TX paths.
The 8250 core changes in this series are limited to wiring optional
low-level driver callbacks for break control and rx_trig_bytes
handling. The hardware-specific behavior remains in the Moxa driver.
The patches are organized as follows:
- split Moxa PCIe board support out of 8250_pci
- add the MUEx50 port type
- add MUEx50-specific driver support and optimizations
- extend the 8250 layer where MUEx50 requires driver-specific handling
Crescent Hsieh (15):
serial: 8250: split Moxa PCIe serial board support out of 8250_pci
serial: 8250: add Moxa MUEx50 UART port type
serial: 8250_mxpcie: enable enhanced mode and program FIFO trigger
levels
serial: 8250_mxpcie: enable automatic RTS/CTS flow control
serial: 8250_mxpcie: offload XON/XOFF flow control to MUEx50 hardware
serial: 8250_mxpcie: add custom handle_irq callback
serial: 8250_mxpcie: speed up RX using memory-mapped FIFO window
serial: 8250_mxpcie: speed up TX using memory-mapped FIFO window
serial: 8250_mxpcie: introduce per-port private data structure
serial: 8250_mxpcie: defer uart_write_wakeup() to workqueue
serial: 8250_mxpcie: support serial interface mode switching
serial: 8250: allow low-level drivers to override break control
serial: 8250_mxpcie: add break support for RS485 using MUEx50 features
serial: 8250: allow UART drivers to override rx_trig_bytes handling
serial: 8250_mxpcie: implement rx_trig_bytes callbacks via MUEx50 RTL
drivers/tty/serial/8250/8250_core.c | 6 +
drivers/tty/serial/8250/8250_mxpcie.c | 691 ++++++++++++++++++++++++++
drivers/tty/serial/8250/8250_pci.c | 208 +-------
drivers/tty/serial/8250/8250_port.c | 33 +-
drivers/tty/serial/8250/Kconfig | 11 +
drivers/tty/serial/8250/Makefile | 1 +
include/linux/serial_8250.h | 1 +
include/linux/serial_core.h | 3 +
include/uapi/linux/serial_core.h | 3 +
9 files changed, 749 insertions(+), 208 deletions(-)
create mode 100644 drivers/tty/serial/8250/8250_mxpcie.c
--
2.43.0