Commit e077b50c authored by Grant Likely's avatar Grant Likely Committed by Josh Boyer

[POWERPC] Uartlite: Revert register io access changes

Reverts commit a15da8ef

This driver is used by devices other than the xilinx opb-uartlite which
depend on bytewise access to the registers.  The change to 32 bit access
does not work on these devices.
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
Acked-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: default avatarJosh Boyer <jwboyer@linux.vnet.ibm.com>
parent be1b4d34
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
.num_resources = 2, \ .num_resources = 2, \
.resource = (struct resource[]) { \ .resource = (struct resource[]) { \
{ \ { \
.start = XPAR_UARTLITE_##num##_BASEADDR, \ .start = XPAR_UARTLITE_##num##_BASEADDR + 3, \
.end = XPAR_UARTLITE_##num##_HIGHADDR, \ .end = XPAR_UARTLITE_##num##_HIGHADDR, \
.flags = IORESOURCE_MEM, \ .flags = IORESOURCE_MEM, \
}, \ }, \
......
...@@ -75,7 +75,7 @@ static int ulite_receive(struct uart_port *port, int stat) ...@@ -75,7 +75,7 @@ static int ulite_receive(struct uart_port *port, int stat)
/* stats */ /* stats */
if (stat & ULITE_STATUS_RXVALID) { if (stat & ULITE_STATUS_RXVALID) {
port->icount.rx++; port->icount.rx++;
ch = in_be32((void*)port->membase + ULITE_RX); ch = readb(port->membase + ULITE_RX);
if (stat & ULITE_STATUS_PARITY) if (stat & ULITE_STATUS_PARITY)
port->icount.parity++; port->icount.parity++;
...@@ -120,7 +120,7 @@ static int ulite_transmit(struct uart_port *port, int stat) ...@@ -120,7 +120,7 @@ static int ulite_transmit(struct uart_port *port, int stat)
return 0; return 0;
if (port->x_char) { if (port->x_char) {
out_be32((void*)port->membase + ULITE_TX, port->x_char); writeb(port->x_char, port->membase + ULITE_TX);
port->x_char = 0; port->x_char = 0;
port->icount.tx++; port->icount.tx++;
return 1; return 1;
...@@ -129,7 +129,7 @@ static int ulite_transmit(struct uart_port *port, int stat) ...@@ -129,7 +129,7 @@ static int ulite_transmit(struct uart_port *port, int stat)
if (uart_circ_empty(xmit) || uart_tx_stopped(port)) if (uart_circ_empty(xmit) || uart_tx_stopped(port))
return 0; return 0;
out_be32((void*)port->membase + ULITE_TX, xmit->buf[xmit->tail]); writeb(xmit->buf[xmit->tail], port->membase + ULITE_TX);
xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE-1); xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE-1);
port->icount.tx++; port->icount.tx++;
...@@ -146,7 +146,7 @@ static irqreturn_t ulite_isr(int irq, void *dev_id) ...@@ -146,7 +146,7 @@ static irqreturn_t ulite_isr(int irq, void *dev_id)
int busy; int busy;
do { do {
int stat = in_be32((void*)port->membase + ULITE_STATUS); int stat = readb(port->membase + ULITE_STATUS);
busy = ulite_receive(port, stat); busy = ulite_receive(port, stat);
busy |= ulite_transmit(port, stat); busy |= ulite_transmit(port, stat);
} while (busy); } while (busy);
...@@ -162,7 +162,7 @@ static unsigned int ulite_tx_empty(struct uart_port *port) ...@@ -162,7 +162,7 @@ static unsigned int ulite_tx_empty(struct uart_port *port)
unsigned int ret; unsigned int ret;
spin_lock_irqsave(&port->lock, flags); spin_lock_irqsave(&port->lock, flags);
ret = in_be32((void*)port->membase + ULITE_STATUS); ret = readb(port->membase + ULITE_STATUS);
spin_unlock_irqrestore(&port->lock, flags); spin_unlock_irqrestore(&port->lock, flags);
return ret & ULITE_STATUS_TXEMPTY ? TIOCSER_TEMT : 0; return ret & ULITE_STATUS_TXEMPTY ? TIOCSER_TEMT : 0;
...@@ -185,7 +185,7 @@ static void ulite_stop_tx(struct uart_port *port) ...@@ -185,7 +185,7 @@ static void ulite_stop_tx(struct uart_port *port)
static void ulite_start_tx(struct uart_port *port) static void ulite_start_tx(struct uart_port *port)
{ {
ulite_transmit(port, in_be32((void*)port->membase + ULITE_STATUS)); ulite_transmit(port, readb(port->membase + ULITE_STATUS));
} }
static void ulite_stop_rx(struct uart_port *port) static void ulite_stop_rx(struct uart_port *port)
...@@ -214,17 +214,17 @@ static int ulite_startup(struct uart_port *port) ...@@ -214,17 +214,17 @@ static int ulite_startup(struct uart_port *port)
if (ret) if (ret)
return ret; return ret;
out_be32((void*)port->membase + ULITE_CONTROL, writeb(ULITE_CONTROL_RST_RX | ULITE_CONTROL_RST_TX,
ULITE_CONTROL_RST_RX | ULITE_CONTROL_RST_TX); port->membase + ULITE_CONTROL);
out_be32((void*)port->membase + ULITE_CONTROL, ULITE_CONTROL_IE); writeb(ULITE_CONTROL_IE, port->membase + ULITE_CONTROL);
return 0; return 0;
} }
static void ulite_shutdown(struct uart_port *port) static void ulite_shutdown(struct uart_port *port)
{ {
out_be32((void*)port->membase + ULITE_CONTROL, 0); writeb(0, port->membase + ULITE_CONTROL);
in_be32((void*)port->membase + ULITE_CONTROL); /* dummy */ readb(port->membase + ULITE_CONTROL); /* dummy */
free_irq(port->irq, port); free_irq(port->irq, port);
} }
...@@ -332,7 +332,7 @@ static void ulite_console_wait_tx(struct uart_port *port) ...@@ -332,7 +332,7 @@ static void ulite_console_wait_tx(struct uart_port *port)
/* wait up to 10ms for the character(s) to be sent */ /* wait up to 10ms for the character(s) to be sent */
for (i = 0; i < 10000; i++) { for (i = 0; i < 10000; i++) {
if (in_be32((void*)port->membase + ULITE_STATUS) & ULITE_STATUS_TXEMPTY) if (readb(port->membase + ULITE_STATUS) & ULITE_STATUS_TXEMPTY)
break; break;
udelay(1); udelay(1);
} }
...@@ -341,7 +341,7 @@ static void ulite_console_wait_tx(struct uart_port *port) ...@@ -341,7 +341,7 @@ static void ulite_console_wait_tx(struct uart_port *port)
static void ulite_console_putchar(struct uart_port *port, int ch) static void ulite_console_putchar(struct uart_port *port, int ch)
{ {
ulite_console_wait_tx(port); ulite_console_wait_tx(port);
out_be32((void*)port->membase + ULITE_TX, ch); writeb(ch, port->membase + ULITE_TX);
} }
static void ulite_console_write(struct console *co, const char *s, static void ulite_console_write(struct console *co, const char *s,
...@@ -358,8 +358,8 @@ static void ulite_console_write(struct console *co, const char *s, ...@@ -358,8 +358,8 @@ static void ulite_console_write(struct console *co, const char *s,
spin_lock_irqsave(&port->lock, flags); spin_lock_irqsave(&port->lock, flags);
/* save and disable interrupt */ /* save and disable interrupt */
ier = in_be32((void*)port->membase + ULITE_STATUS) & ULITE_STATUS_IE; ier = readb(port->membase + ULITE_STATUS) & ULITE_STATUS_IE;
out_be32((void*)port->membase + ULITE_CONTROL, 0); writeb(0, port->membase + ULITE_CONTROL);
uart_console_write(port, s, count, ulite_console_putchar); uart_console_write(port, s, count, ulite_console_putchar);
...@@ -367,7 +367,7 @@ static void ulite_console_write(struct console *co, const char *s, ...@@ -367,7 +367,7 @@ static void ulite_console_write(struct console *co, const char *s,
/* restore interrupt state */ /* restore interrupt state */
if (ier) if (ier)
out_be32((void*)port->membase + ULITE_CONTROL, ULITE_CONTROL_IE); writeb(ULITE_CONTROL_IE, port->membase + ULITE_CONTROL);
if (locked) if (locked)
spin_unlock_irqrestore(&port->lock, flags); spin_unlock_irqrestore(&port->lock, flags);
...@@ -598,7 +598,7 @@ ulite_of_probe(struct of_device *op, const struct of_device_id *match) ...@@ -598,7 +598,7 @@ ulite_of_probe(struct of_device *op, const struct of_device_id *match)
rc = of_address_to_resource(op->node, 0, &res); rc = of_address_to_resource(op->node, 0, &res);
if (rc) { if (rc) {
dev_err(&op->dev, "invalide address\n"); dev_err(&op->dev, "invalid address\n");
return rc; return rc;
} }
...@@ -606,7 +606,7 @@ ulite_of_probe(struct of_device *op, const struct of_device_id *match) ...@@ -606,7 +606,7 @@ ulite_of_probe(struct of_device *op, const struct of_device_id *match)
id = of_get_property(op->node, "port-number", NULL); id = of_get_property(op->node, "port-number", NULL);
return ulite_assign(&op->dev, id ? *id : -1, res.start, irq); return ulite_assign(&op->dev, id ? *id : -1, res.start+3, irq);
} }
static int __devexit ulite_of_remove(struct of_device *op) static int __devexit ulite_of_remove(struct of_device *op)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment