Skip to content

Commit

Permalink
serial: 8250_early: Use port->regshift
Browse files Browse the repository at this point in the history
earlycon initializes struct uart_port::regshift to the correct
value for UPIO_MEM32 already. Use the port field rather than
hard-coded value.

This enables broader support for various i/o access methods in
8250 earlycon (eg., omap8250 earlycon).

Acked-by: Rob Herring <[email protected]>
Signed-off-by: Peter Hurley <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
peterhurley authored and gregkh committed Feb 7, 2016
1 parent b969398 commit dc6b576
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions drivers/tty/serial/8250/8250_early.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,17 @@

static unsigned int __init serial8250_early_in(struct uart_port *port, int offset)
{
offset <<= port->regshift;

switch (port->iotype) {
case UPIO_MEM:
return readb(port->membase + offset);
case UPIO_MEM16:
return readw(port->membase + (offset << 1));
return readw(port->membase + offset);
case UPIO_MEM32:
return readl(port->membase + (offset << 2));
return readl(port->membase + offset);
case UPIO_MEM32BE:
return ioread32be(port->membase + (offset << 2));
return ioread32be(port->membase + offset);
case UPIO_PORT:
return inb(port->iobase + offset);
default:
Expand All @@ -57,18 +59,20 @@ static unsigned int __init serial8250_early_in(struct uart_port *port, int offse

static void __init serial8250_early_out(struct uart_port *port, int offset, int value)
{
offset <<= port->regshift;

switch (port->iotype) {
case UPIO_MEM:
writeb(value, port->membase + offset);
break;
case UPIO_MEM16:
writew(value, port->membase + (offset << 1));
writew(value, port->membase + offset);
break;
case UPIO_MEM32:
writel(value, port->membase + (offset << 2));
writel(value, port->membase + offset);
break;
case UPIO_MEM32BE:
iowrite32be(value, port->membase + (offset << 2));
iowrite32be(value, port->membase + offset);
break;
case UPIO_PORT:
outb(value, port->iobase + offset);
Expand Down

0 comments on commit dc6b576

Please sign in to comment.