]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
serial: 8250: 8250_omap.c: Add support for handling UART error conditions
authorMoteen Shah <m-shah@ti.com>
Mon, 12 Jan 2026 08:18:28 +0000 (13:48 +0530)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:20:41 +0000 (07:20 -0500)
commitc59cd1032032db14942d1f3d96c199496bdbccda
treecd9ec5a072bf28a389593e75173bb7af271d21c2
parent017295b17bf1f477246c95bd253a7ef0cb4684c9
serial: 8250: 8250_omap.c: Add support for handling UART error conditions

[ Upstream commit 623b07b370e9963122d167e04fdc1dc713ebfbaf ]

The DMA IRQ handler does not accounts for the overrun(OE) or any other
errors being reported by the IP before triggering a DMA transaction which
leads to the interrupts not being handled resulting into an IRQ storm.

The way to handle OE is to:
1. Reset the RX FIFO.
2. Read the UART_RESUME register, which clears the internal flag

Earlier, the driver issued DMA transations even in case of OE which shouldn't
be done according to the OE handling mechanism mentioned above, as we are
resetting the FIFO's, refer section: "12.1.6.4.8.1.3.6 Overrun During
Receive" [0].

[0] https://www.ti.com/lit/pdf/spruiu1

Signed-off-by: Moteen Shah <m-shah@ti.com>
Link: https://patch.msgid.link/20260112081829.63049-2-m-shah@ti.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/tty/serial/8250/8250_omap.c