This series introduces DEFINE_UART_PORT_TX_HELPER + DEFINE_UART_PORT_TX_HELPER_LIMITED TX helpers. See PATCH 1/3 for the details. Comments welcome. Then it switches drivers to use them. First, to DEFINE_UART_PORT_TX_HELPER() in 2/3 and then DEFINE_UART_PORT_TX_HELPER_LIMITED() in 3/3. The diffstat of patches 2+3 is as follows: 26 files changed, 191 insertions(+), 823 deletions(-) which appears to be nice. Cc: Tobias Klauser <tklauser@xxxxxxxxxx> Cc: Richard Genoud <richard.genoud@xxxxxxxxx> Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx> Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> Cc: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> Cc: Vladimir Zapolskiy <vz@xxxxxxxxx> Cc: Liviu Dudau <liviu.dudau@xxxxxxx> Cc: Sudeep Holla <sudeep.holla@xxxxxxx> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> Cc: Shawn Guo <shawnguo@xxxxxxxxxx> Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> Cc: Fabio Estevam <festevam@xxxxxxxxx> Cc: NXP Linux Team <linux-imx@xxxxxxx> Cc: "Andreas Färber" <afaerber@xxxxxxx> Cc: Manivannan Sadhasivam <mani@xxxxxxxxxx> Cc: Russell King <linux@xxxxxxxxxxxxxxx> Cc: Florian Fainelli <f.fainelli@xxxxxxxxx> Cc: bcm-kernel-feedback-list@xxxxxxxxxxxx Cc: "Pali Rohár" <pali@xxxxxxxxxx> Cc: Kevin Cernekee <cernekee@xxxxxxxxx> Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx> Cc: Paul Walmsley <paul.walmsley@xxxxxxxxxx> Cc: Orson Zhai <orsonzhai@xxxxxxxxx> Cc: Baolin Wang <baolin.wang7@xxxxxxxxx> Cc: Chunyan Zhang <zhang.lyra@xxxxxxxxx> Cc: Patrice Chotard <patrice.chotard@xxxxxxxxxxx> Cc: linux-riscv@xxxxxxxxxxxxxxxxxxx Jiri Slaby (3): tty: serial: introduce transmit helper generators tty: serial: use DEFINE_UART_PORT_TX_HELPER() tty: serial: use DEFINE_UART_PORT_TX_HELPER_LIMITED() Documentation/driver-api/serial/driver.rst | 3 + drivers/tty/serial/21285.c | 33 ++------- drivers/tty/serial/altera_jtaguart.c | 42 +++-------- drivers/tty/serial/altera_uart.c | 37 ++-------- drivers/tty/serial/amba-pl010.c | 37 ++-------- drivers/tty/serial/apbuart.c | 36 ++------- drivers/tty/serial/atmel_serial.c | 29 ++------ drivers/tty/serial/bcm63xx_uart.c | 47 +++--------- drivers/tty/serial/fsl_lpuart.c | 38 +++------- drivers/tty/serial/lantiq.c | 44 +++-------- drivers/tty/serial/lpc32xx_hs.c | 38 ++-------- drivers/tty/serial/mcf.c | 27 ++----- drivers/tty/serial/mpc52xx_uart.c | 44 +---------- drivers/tty/serial/mps2-uart.c | 29 +------- drivers/tty/serial/mux.c | 46 ++++-------- drivers/tty/serial/mvebu-uart.c | 40 ++-------- drivers/tty/serial/mxs-auart.c | 31 ++------ drivers/tty/serial/omap-serial.c | 47 +++--------- drivers/tty/serial/owl-uart.c | 35 +-------- drivers/tty/serial/pxa.c | 39 +++------- drivers/tty/serial/rp2.c | 36 ++------- drivers/tty/serial/sa1100.c | 49 +++++------- drivers/tty/serial/serial_txx9.c | 37 ++-------- drivers/tty/serial/sifive.c | 45 ++--------- drivers/tty/serial/sprd_serial.c | 38 ++-------- drivers/tty/serial/st-asc.c | 50 ++----------- drivers/tty/serial/vt8500_serial.c | 40 ++-------- include/linux/serial_core.h | 86 ++++++++++++++++++++++ 28 files changed, 280 insertions(+), 823 deletions(-) -- 2.37.2