aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/serial/mpc52xx_uart.c3
-rw-r--r--drivers/serial/serial_core.c6
-rw-r--r--include/linux/serial_core.h3
3 files changed, 7 insertions, 5 deletions
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 6459edc7f5c5..1b2cdc91c228 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -728,8 +728,7 @@ mpc52xx_uart_probe(struct platform_device *dev)
728 728
729 spin_lock_init(&port->lock); 729 spin_lock_init(&port->lock);
730 port->uartclk = __res.bi_ipbfreq / 2; /* Look at CTLR doc */ 730 port->uartclk = __res.bi_ipbfreq / 2; /* Look at CTLR doc */
731 port->fifosize = 255; /* Should be 512 ! But it can't be */ 731 port->fifosize = 512;
732 /* stored in a unsigned char */
733 port->iotype = UPIO_MEM; 732 port->iotype = UPIO_MEM;
734 port->flags = UPF_BOOT_AUTOCONF | 733 port->flags = UPF_BOOT_AUTOCONF |
735 ( uart_console(port) ? 0 : UPF_IOREMAP ); 734 ( uart_console(port) ? 0 : UPF_IOREMAP );
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index 17839e753e4c..3805f467b2f5 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -691,7 +691,8 @@ static int uart_set_info(struct uart_state *state,
691 (new_serial.baud_base != port->uartclk / 16) || 691 (new_serial.baud_base != port->uartclk / 16) ||
692 (close_delay != state->close_delay) || 692 (close_delay != state->close_delay) ||
693 (closing_wait != state->closing_wait) || 693 (closing_wait != state->closing_wait) ||
694 (new_serial.xmit_fifo_size != port->fifosize) || 694 (new_serial.xmit_fifo_size &&
695 new_serial.xmit_fifo_size != port->fifosize) ||
695 (((new_flags ^ old_flags) & ~UPF_USR_MASK) != 0)) 696 (((new_flags ^ old_flags) & ~UPF_USR_MASK) != 0))
696 goto exit; 697 goto exit;
697 port->flags = ((port->flags & ~UPF_USR_MASK) | 698 port->flags = ((port->flags & ~UPF_USR_MASK) |
@@ -796,7 +797,8 @@ static int uart_set_info(struct uart_state *state,
796 port->custom_divisor = new_serial.custom_divisor; 797 port->custom_divisor = new_serial.custom_divisor;
797 state->close_delay = close_delay; 798 state->close_delay = close_delay;
798 state->closing_wait = closing_wait; 799 state->closing_wait = closing_wait;
799 port->fifosize = new_serial.xmit_fifo_size; 800 if (new_serial.xmit_fifo_size)
801 port->fifosize = new_serial.xmit_fifo_size;
800 if (state->info->tty) 802 if (state->info->tty)
801 state->info->tty->low_latency = 803 state->info->tty->low_latency =
802 (port->flags & UPF_LOW_LATENCY) ? 1 : 0; 804 (port->flags & UPF_LOW_LATENCY) ? 1 : 0;
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index bd14858121ea..966e2e8a1740 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -214,10 +214,11 @@ struct uart_port {
214 unsigned char __iomem *membase; /* read/write[bwl] */ 214 unsigned char __iomem *membase; /* read/write[bwl] */
215 unsigned int irq; /* irq number */ 215 unsigned int irq; /* irq number */
216 unsigned int uartclk; /* base uart clock */ 216 unsigned int uartclk; /* base uart clock */
217 unsigned char fifosize; /* tx fifo size */ 217 unsigned int fifosize; /* tx fifo size */
218 unsigned char x_char; /* xon/xoff char */ 218 unsigned char x_char; /* xon/xoff char */
219 unsigned char regshift; /* reg offset shift */ 219 unsigned char regshift; /* reg offset shift */
220 unsigned char iotype; /* io access style */ 220 unsigned char iotype; /* io access style */
221 unsigned char unused1;
221 222
222#define UPIO_PORT (0) 223#define UPIO_PORT (0)
223#define UPIO_HUB6 (1) 224#define UPIO_HUB6 (1)