diff options
Diffstat (limited to 'drivers/tty/serial/8250/8250_uniphier.c')
-rw-r--r-- | drivers/tty/serial/8250/8250_uniphier.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/tty/serial/8250/8250_uniphier.c b/drivers/tty/serial/8250/8250_uniphier.c index d11621e2cf1d..245edbb68d4b 100644 --- a/drivers/tty/serial/8250/8250_uniphier.c +++ b/drivers/tty/serial/8250/8250_uniphier.c | |||
@@ -115,12 +115,16 @@ static void uniphier_serial_out(struct uart_port *p, int offset, int value) | |||
115 | */ | 115 | */ |
116 | static int uniphier_serial_dl_read(struct uart_8250_port *up) | 116 | static int uniphier_serial_dl_read(struct uart_8250_port *up) |
117 | { | 117 | { |
118 | return readl(up->port.membase + UNIPHIER_UART_DLR); | 118 | int offset = UNIPHIER_UART_DLR << up->port.regshift; |
119 | |||
120 | return readl(up->port.membase + offset); | ||
119 | } | 121 | } |
120 | 122 | ||
121 | static void uniphier_serial_dl_write(struct uart_8250_port *up, int value) | 123 | static void uniphier_serial_dl_write(struct uart_8250_port *up, int value) |
122 | { | 124 | { |
123 | writel(value, up->port.membase + UNIPHIER_UART_DLR); | 125 | int offset = UNIPHIER_UART_DLR << up->port.regshift; |
126 | |||
127 | writel(value, up->port.membase + offset); | ||
124 | } | 128 | } |
125 | 129 | ||
126 | static int uniphier_of_serial_setup(struct device *dev, struct uart_port *port, | 130 | static int uniphier_of_serial_setup(struct device *dev, struct uart_port *port, |