[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 12 Dec 2015 19:18:27 +0200
From: Noam Camus <noamc@...hip.com>
To: <linux-serial@...r.kernel.org>
CC: <linux-kernel@...r.kernel.org>, <gregkh@...uxfoundation.org>,
<heikki.krogerus@...ux.intel.com>,
<andriy.shevchenko@...ux.intel.com>, <vgupta@...opsys.com>,
<Alexey.Brodkin@...opsys.com>, <jslaby@...e.com>,
<peter@...leysoftware.com>, Noam Camus <noamc@...hip.com>
Subject: [PATCH v9 3/3] serial: 8250_dw: Do not use readl/writel before checking port iotype
From: Noam Camus <noamc@...hip.com>
Direct call to readl()/writel() is checked against iotype
and in case of UPIO_MEM32BE we use ioread32be()/iowrite32be()
instead of them.
Signed-off-by: Noam Camus <noamc@...hip.com>
---
drivers/tty/serial/8250/8250_dw.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 92c4a9b..30810ac 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -114,6 +114,8 @@ static void dw8250_check_lcr(struct uart_port *p, int value)
#else
if (p->iotype == UPIO_MEM32)
writel(value, offset);
+ else if (p->iotype == UPIO_MEM32BE)
+ iowrite32be(value, offset);
else
writeb(value, offset);
#endif
@@ -327,14 +329,20 @@ static void dw8250_setup_port(struct uart_port *p)
* If the Component Version Register returns zero, we know that
* ADDITIONAL_FEATURES are not enabled. No need to go any further.
*/
- reg = readl(p->membase + DW_UART_UCV);
+ if (p->iotype == UPIO_MEM32BE)
+ reg = ioread32be(p->membase + DW_UART_UCV);
+ else
+ reg = readl(p->membase + DW_UART_UCV);
if (!reg)
return;
dev_dbg(p->dev, "Designware UART version %c.%c%c\n",
(reg >> 24) & 0xff, (reg >> 16) & 0xff, (reg >> 8) & 0xff);
- reg = readl(p->membase + DW_UART_CPR);
+ if (p->iotype == UPIO_MEM32BE)
+ reg = ioread32be(p->membase + DW_UART_CPR);
+ else
+ reg = readl(p->membase + DW_UART_CPR);
if (!reg)
return;
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists