diff options
author | Markus Pietrek <Markus.Pietrek@emtrion.de> | 2010-01-14 23:33:20 (GMT) |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-01-14 23:33:20 (GMT) |
commit | 75136d48e85915fd78a072f22897622b5d4c1814 (patch) | |
tree | 4ec35fb2c0e53ddd69dbe80615be35f87caeaa9d | |
parent | ea4407834118405ef419e9b07794ceacadc01bae (diff) | |
download | linux-75136d48e85915fd78a072f22897622b5d4c1814.tar.xz |
serial: sh-sci: using correct fifo size for SCIF and SCIFA ports.
The sh-sci driver used the wrong fifosize for PORT_SCIFA and PORT_SCIF
ports. If an incorrect size is used, the serial core will enforce an
early shutdown on the port, especially with baudrates < 9600.
Signed-off-by: Markus Pietrek <Markus.Pietrek@emtrion.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | drivers/serial/sh-sci.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 37f0de9..42f3333 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c @@ -1052,7 +1052,18 @@ static void __devinit sci_init_single(struct platform_device *dev, sci_port->port.ops = &sci_uart_ops; sci_port->port.iotype = UPIO_MEM; sci_port->port.line = index; - sci_port->port.fifosize = 1; + + switch (p->type) { + case PORT_SCIFA: + sci_port->port.fifosize = 64; + break; + case PORT_SCIF: + sci_port->port.fifosize = 16; + break; + default: + sci_port->port.fifosize = 1; + break; + } if (dev) { sci_port->iclk = p->clk ? clk_get(&dev->dev, p->clk) : NULL; |