linux-kernelorg-stable/drivers/tty/serial/8250
Al Cooper 9cabe26e65 serial: 8250_bcm7271: UART errors after resuming from S2
There is a small window in time during resume where the hardware
flow control signal RTS can be asserted (which allows a sender to
resume sending data to the UART) but the baud rate has not yet
been restored. This will cause corrupted data and FRAMING, OVERRUN
and BREAK errors. This is happening because the MCTRL register is
shadowed in uart_port struct and is later used during resume to set
the MCTRL register during both serial8250_do_startup() and
uart_resume_port(). Unfortunately, serial8250_do_startup()
happens before the UART baud rate is restored. The fix is to clear
the shadowed mctrl value at the end of suspend and restore it at the
end of resume.

Fixes: 41a469482d ("serial: 8250: Add new 8250-core based Broadcom STB driver")
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Link: https://lore.kernel.org/r/20211201201402.47446-1-alcooperx@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-03 14:14:49 +01:00
..
8250.h serial: 8250: Use BIT(x) for UART_{CAP,BUG}_* 2021-05-20 17:14:50 +02:00
8250_accent.c
8250_acorn.c
8250_aspeed_vuart.c serial: 8250: fix handle_irq locking 2021-07-21 12:53:26 +02:00
8250_bcm2835aux.c
8250_bcm7271.c serial: 8250_bcm7271: UART errors after resuming from S2 2021-12-03 14:14:49 +01:00
8250_boca.c
8250_core.c tty/serial: make port of serial8250_register_8250_port const 2021-05-20 16:59:14 +02:00
8250_dma.c
8250_dw.c serial: 8250_dw: drop bogus uartclk optimisation 2021-10-21 10:38:49 +02:00
8250_dwlib.c serial: 8250_lpss: Extract dw8250_do_set_termios() for common use 2021-10-10 15:22:34 +02:00
8250_dwlib.h serial: 8250_lpss: Extract dw8250_do_set_termios() for common use 2021-10-10 15:22:34 +02:00
8250_early.c
8250_em.c
8250_exar.c serial: 8250_exar: Add ->unregister_gpio() callback 2021-07-21 12:48:47 +02:00
8250_exar_st16c554.c
8250_fintek.c
8250_fourport.c
8250_fsl.c serial: 8250_fsl: Move fsl8250_data to ACPI section 2021-09-22 16:59:13 +02:00
8250_gsc.c
8250_hp300.c
8250_hub6.c
8250_ingenic.c serial: 8250_ingenic: Use of_device_get_match_data 2021-08-26 14:51:10 +02:00
8250_ioc3.c
8250_lpc18xx.c
8250_lpss.c serial: 8250_lpss: Enable PSE UART Auto Flow Control 2021-10-10 15:22:35 +02:00
8250_men_mcb.c
8250_mid.c
8250_mtk.c serial: 8250_mtk: fix uart corruption issue when rx power off 2021-07-29 17:06:37 +02:00
8250_of.c serial: 8250: of: Check for CONFIG_SERIAL_8250_BCM7271 2021-05-13 16:22:48 +02:00
8250_omap.c serial: 8250: 8250_omap: Fix RX_LVL register offset 2021-09-14 10:06:37 +02:00
8250_pci.c serial: 8250_pci: rewrite pericom_do_set_divisor() 2021-11-25 18:42:15 +01:00
8250_pnp.c serial: 8250: remove duplicated BRI0A49 and BDP3336 entries 2021-09-22 16:59:13 +02:00
8250_port.c serial: 8250: Fix RTS modem control while in rs485 mode 2021-11-25 18:41:09 +01:00
8250_pxa.c
8250_tegra.c
8250_uniphier.c
Kconfig Merge 5.15-rc6 into tty-next 2021-10-18 09:38:54 +02:00
Makefile serial: 8250: Add new 8250-core based Broadcom STB driver 2021-03-26 15:18:30 +01:00
serial_cs.c serial_cs: Add Option International GSM-Ready 56K/ISDN modem 2021-06-16 09:20:29 +02:00