diff options
-rw-r--r-- | drivers/serial/mpc52xx_uart.c | 3 | ||||
-rw-r--r-- | drivers/serial/serial_core.c | 6 | ||||
-rw-r--r-- | include/linux/serial_core.h | 3 |
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) |