original_kernel/drivers/tty/serial/8250
Ilpo Järvinen f58c252e30 serial: 8250: fix XOFF/XON sending when DMA is used
When 8250 UART is using DMA, x_char (XON/XOFF) is never sent
to the wire. After this change, x_char is injected correctly.

Create uart_xchar_out() helper for sending the x_char out and
accounting related to it. It seems that almost every driver
does these same steps with x_char. Except for 8250, however,
almost all currently lack .serial_out so they cannot immediately
take advantage of this new helper.

The downside of this patch is that it might reintroduce
the problems some devices faced with mixed DMA/non-DMA transfer
which caused revert f967fc8f16 (Revert "serial: 8250_dma:
don't bother DMA with small transfers"). However, the impact
should be limited to cases with XON/XOFF (that didn't work
with DMA capable devices to begin with so this problem is not
very likely to cause a major issue, if any at all).

Fixes: 9ee4b83e51 ("serial: 8250: Add support for dmaengine")
Reported-by: Gilles Buloz <gilles.buloz@kontron.com>
Tested-by: Gilles Buloz <gilles.buloz@kontron.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20220314091432.4288-2-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-18 13:30:54 +01:00
..
8250.h
8250_accent.c
8250_acorn.c
8250_alpha.c
8250_aspeed_vuart.c
8250_bcm2835aux.c
8250_bcm7271.c
8250_boca.c
8250_core.c
8250_dma.c
8250_dw.c
8250_dwlib.c
8250_dwlib.h
8250_early.c
8250_em.c
8250_exar.c
8250_exar_st16c554.c
8250_fintek.c
8250_fourport.c
8250_fsl.c
8250_gsc.c
8250_hp300.c
8250_hub6.c
8250_ingenic.c
8250_ioc3.c
8250_lpc18xx.c
8250_lpss.c
8250_men_mcb.c
8250_mid.c
8250_mtk.c
8250_of.c
8250_omap.c
8250_pci.c
8250_pericom.c
8250_pnp.c
8250_port.c
8250_pxa.c
8250_tegra.c
8250_uniphier.c
Kconfig
Makefile
serial_cs.c