Commit 08ec212c authored by Maxime Bizon's avatar Maxime Bizon Committed by Greg Kroah-Hartman

x86: ce4100: allow second UART usage

The current CE4100 and 8250_pci code have both a limitation preventing the
registration and usage of CE4100's second UART. This patch changes the
platform code fixing up the UART port to work on a relative UART port
base address, as well as the 8250_pci code to make it register 2 UART ports
for CE4100 and pass the port index down to all consumers.
Signed-off-by: default avatarFlorian Fainelli <ffainelli@freebox.fr>
Acked-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7a0c4eda
...@@ -92,8 +92,11 @@ static void ce4100_serial_fixup(int port, struct uart_port *up, ...@@ -92,8 +92,11 @@ static void ce4100_serial_fixup(int port, struct uart_port *up,
up->membase = up->membase =
(void __iomem *)__fix_to_virt(FIX_EARLYCON_MEM_BASE); (void __iomem *)__fix_to_virt(FIX_EARLYCON_MEM_BASE);
up->membase += up->mapbase & ~PAGE_MASK; up->membase += up->mapbase & ~PAGE_MASK;
up->mapbase += port * 0x100;
up->membase += port * 0x100;
up->iotype = UPIO_MEM32; up->iotype = UPIO_MEM32;
up->regshift = 2; up->regshift = 2;
up->irq = 4;
} }
#endif #endif
up->iobase = 0; up->iobase = 0;
......
...@@ -1068,7 +1068,7 @@ ce4100_serial_setup(struct serial_private *priv, ...@@ -1068,7 +1068,7 @@ ce4100_serial_setup(struct serial_private *priv,
{ {
int ret; int ret;
ret = setup_port(priv, port, 0, 0, board->reg_shift); ret = setup_port(priv, port, idx, 0, board->reg_shift);
port->port.iotype = UPIO_MEM32; port->port.iotype = UPIO_MEM32;
port->port.type = PORT_XSCALE; port->port.type = PORT_XSCALE;
port->port.flags = (port->port.flags | UPF_FIXED_PORT | UPF_FIXED_TYPE); port->port.flags = (port->port.flags | UPF_FIXED_PORT | UPF_FIXED_TYPE);
...@@ -2658,8 +2658,8 @@ static struct pciserial_board pci_boards[] __devinitdata = { ...@@ -2658,8 +2658,8 @@ static struct pciserial_board pci_boards[] __devinitdata = {
.first_offset = 0x1000, .first_offset = 0x1000,
}, },
[pbn_ce4100_1_115200] = { [pbn_ce4100_1_115200] = {
.flags = FL_BASE0, .flags = FL_BASE_BARS,
.num_ports = 1, .num_ports = 2,
.base_baud = 921600, .base_baud = 921600,
.reg_shift = 2, .reg_shift = 2,
}, },
......
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