2021-09-03 05:07:47

by Nishanth Menon

[permalink] [raw]
Subject: [PATCH] serial: 8250: 8250_omap: Fix RX_LVL register offset

Commit b67e830d38fa ("serial: 8250: 8250_omap: Fix possible interrupt
storm on K3 SoCs") introduced fixup including a register read to
RX_LVL, however, we should be using word offset than byte offset
since our registers are on 4 byte boundary (port.regshift = 2) for
8250_omap.

Fixes: b67e830d38fa ("serial: 8250: 8250_omap: Fix possible interrupt storm on K3 SoCs")
Cc: Jan Kiszka <[email protected]>
Cc: Vignesh Raghavendra <[email protected]>
Signed-off-by: Nishanth Menon <[email protected]>
---

Issue discovered on simulation platform where invalid address read is forced
to generate aborts than default behavior of read of invalid address
returning 0x0 (only writes to invalid address would abort).

Test logs: https://gist.github.com/nmenon/46b1adc2be0a2e771fb848e1c799475a (am654, j721e, j7200)

There is a minor checkpatch error requesting < 75 character commit
description, but I felt breaking the Fixes line up is probably not good.

drivers/tty/serial/8250/8250_omap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index 891fd8345e25..73e5f1dbd075 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -106,7 +106,7 @@
#define UART_OMAP_EFR2_TIMEOUT_BEHAVE BIT(6)

/* RX FIFO occupancy indicator */
-#define UART_OMAP_RX_LVL 0x64
+#define UART_OMAP_RX_LVL 0x19

struct omap8250_priv {
int line;
--
2.32.0