diff options
| -rw-r--r-- | drivers/tty/serial/8250/8250_ce4100.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/tty/serial/8250/8250_ce4100.c b/drivers/tty/serial/8250/8250_ce4100.c index 3dd88f372a51..81dfb2adbabd 100644 --- a/drivers/tty/serial/8250/8250_ce4100.c +++ b/drivers/tty/serial/8250/8250_ce4100.c @@ -35,13 +35,8 @@ static u32 ce4100_mem_serial_in(struct uart_port *p, unsigned int offset) { u32 ret, ier, lsr; - if (offset != UART_IIR) - return mem_serial_in(p, offset); - - offset <<= p->regshift; - - ret = readl(p->membase + offset); - if (!(ret & UART_IIR_NO_INT)) + ret = mem_serial_in(p, offset); + if (offset != UART_IIR || !(ret & UART_IIR_NO_INT)) return ret; /* see if the TX interrupt should have really set */ |
