diff options
author | Markus Pietrek <Markus.Pietrek@emtrion.de> | 2010-01-14 18:33:20 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-01-14 18:33:20 -0500 |
commit | 75136d48e85915fd78a072f22897622b5d4c1814 (patch) | |
tree | 4ec35fb2c0e53ddd69dbe80615be35f87caeaa9d /drivers/serial/sh-sci.c | |
parent | ea4407834118405ef419e9b07794ceacadc01bae (diff) |
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>
Diffstat (limited to 'drivers/serial/sh-sci.c')
-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 37f0de9dd9ce..42f3333c4ad0 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, | |||
1052 | sci_port->port.ops = &sci_uart_ops; | 1052 | sci_port->port.ops = &sci_uart_ops; |
1053 | sci_port->port.iotype = UPIO_MEM; | 1053 | sci_port->port.iotype = UPIO_MEM; |
1054 | sci_port->port.line = index; | 1054 | sci_port->port.line = index; |
1055 | sci_port->port.fifosize = 1; | 1055 | |
1056 | switch (p->type) { | ||
1057 | case PORT_SCIFA: | ||
1058 | sci_port->port.fifosize = 64; | ||
1059 | break; | ||
1060 | case PORT_SCIF: | ||
1061 | sci_port->port.fifosize = 16; | ||
1062 | break; | ||
1063 | default: | ||
1064 | sci_port->port.fifosize = 1; | ||
1065 | break; | ||
1066 | } | ||
1056 | 1067 | ||
1057 | if (dev) { | 1068 | if (dev) { |
1058 | sci_port->iclk = p->clk ? clk_get(&dev->dev, p->clk) : NULL; | 1069 | sci_port->iclk = p->clk ? clk_get(&dev->dev, p->clk) : NULL; |