aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/serial/8250_pci.c20
-rw-r--r--drivers/serial/mpc52xx_uart.c3
-rw-r--r--drivers/serial/serial_core.c6
-rw-r--r--include/linux/serial_core.h3
4 files changed, 17 insertions, 15 deletions
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 864ef859be56..a1d322f8a16c 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -134,7 +134,7 @@ afavlab_setup(struct serial_private *priv, struct pciserial_board *board,
134 * and Keystone have one Diva chip with 3 UARTs. Some later machines have 134 * and Keystone have one Diva chip with 3 UARTs. Some later machines have
135 * one Diva chip, but it has been expanded to 5 UARTs. 135 * one Diva chip, but it has been expanded to 5 UARTs.
136 */ 136 */
137static int __devinit pci_hp_diva_init(struct pci_dev *dev) 137static int pci_hp_diva_init(struct pci_dev *dev)
138{ 138{
139 int rc = 0; 139 int rc = 0;
140 140
@@ -194,7 +194,7 @@ pci_hp_diva_setup(struct serial_private *priv, struct pciserial_board *board,
194/* 194/*
195 * Added for EKF Intel i960 serial boards 195 * Added for EKF Intel i960 serial boards
196 */ 196 */
197static int __devinit pci_inteli960ni_init(struct pci_dev *dev) 197static int pci_inteli960ni_init(struct pci_dev *dev)
198{ 198{
199 unsigned long oldval; 199 unsigned long oldval;
200 200
@@ -216,7 +216,7 @@ static int __devinit pci_inteli960ni_init(struct pci_dev *dev)
216 * seems to be mainly needed on card using the PLX which also use I/O 216 * seems to be mainly needed on card using the PLX which also use I/O
217 * mapped memory. 217 * mapped memory.
218 */ 218 */
219static int __devinit pci_plx9050_init(struct pci_dev *dev) 219static int pci_plx9050_init(struct pci_dev *dev)
220{ 220{
221 u8 irq_config; 221 u8 irq_config;
222 void __iomem *p; 222 void __iomem *p;
@@ -314,7 +314,7 @@ sbs_setup(struct serial_private *priv, struct pciserial_board *board,
314/* global control register offset for SBS PMC-OctalPro */ 314/* global control register offset for SBS PMC-OctalPro */
315#define OCT_REG_CR_OFF 0x500 315#define OCT_REG_CR_OFF 0x500
316 316
317static int __devinit sbs_init(struct pci_dev *dev) 317static int sbs_init(struct pci_dev *dev)
318{ 318{
319 u8 __iomem *p; 319 u8 __iomem *p;
320 320
@@ -493,7 +493,7 @@ static const struct timedia_struct {
493 { 0, NULL } 493 { 0, NULL }
494}; 494};
495 495
496static int __devinit pci_timedia_init(struct pci_dev *dev) 496static int pci_timedia_init(struct pci_dev *dev)
497{ 497{
498 unsigned short *ids; 498 unsigned short *ids;
499 int i, j; 499 int i, j;
@@ -566,13 +566,13 @@ titan_400l_800l_setup(struct serial_private *priv,
566 return setup_port(priv, port, bar, offset, board->reg_shift); 566 return setup_port(priv, port, bar, offset, board->reg_shift);
567} 567}
568 568
569static int __devinit pci_xircom_init(struct pci_dev *dev) 569static int pci_xircom_init(struct pci_dev *dev)
570{ 570{
571 msleep(100); 571 msleep(100);
572 return 0; 572 return 0;
573} 573}
574 574
575static int __devinit pci_netmos_init(struct pci_dev *dev) 575static int pci_netmos_init(struct pci_dev *dev)
576{ 576{
577 /* subdevice 0x00PS means <P> parallel, <S> serial */ 577 /* subdevice 0x00PS means <P> parallel, <S> serial */
578 unsigned int num_serial = dev->subsystem_device & 0xf; 578 unsigned int num_serial = dev->subsystem_device & 0xf;
@@ -622,7 +622,7 @@ pci_default_setup(struct serial_private *priv, struct pciserial_board *board,
622 */ 622 */
623static struct pci_serial_quirk pci_serial_quirks[] = { 623static struct pci_serial_quirk pci_serial_quirks[] = {
624 /* 624 /*
625 * AFAVLAB cards. 625 * AFAVLAB cards - these may be called via parport_serial
626 * It is not clear whether this applies to all products. 626 * It is not clear whether this applies to all products.
627 */ 627 */
628 { 628 {
@@ -754,7 +754,7 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
754 .exit = __devexit_p(sbs_exit), 754 .exit = __devexit_p(sbs_exit),
755 }, 755 },
756 /* 756 /*
757 * SIIG cards. 757 * SIIG cards - these may be called via parport_serial
758 */ 758 */
759 { 759 {
760 .vendor = PCI_VENDOR_ID_SIIG, 760 .vendor = PCI_VENDOR_ID_SIIG,
@@ -811,7 +811,7 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
811 .setup = pci_default_setup, 811 .setup = pci_default_setup,
812 }, 812 },
813 /* 813 /*
814 * Netmos cards 814 * Netmos cards - these may be called via parport_serial
815 */ 815 */
816 { 816 {
817 .vendor = PCI_VENDOR_ID_NETMOS, 817 .vendor = PCI_VENDOR_ID_NETMOS,
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 48eb22d3a63e..7708e5dd3656 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -726,8 +726,7 @@ mpc52xx_uart_probe(struct platform_device *dev)
726 726
727 spin_lock_init(&port->lock); 727 spin_lock_init(&port->lock);
728 port->uartclk = __res.bi_ipbfreq / 2; /* Look at CTLR doc */ 728 port->uartclk = __res.bi_ipbfreq / 2; /* Look at CTLR doc */
729 port->fifosize = 255; /* Should be 512 ! But it can't be */ 729 port->fifosize = 512;
730 /* stored in a unsigned char */
731 port->iotype = UPIO_MEM; 730 port->iotype = UPIO_MEM;
732 port->flags = UPF_BOOT_AUTOCONF | 731 port->flags = UPF_BOOT_AUTOCONF |
733 ( uart_console(port) ? 0 : UPF_IOREMAP ); 732 ( uart_console(port) ? 0 : UPF_IOREMAP );
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index 95831808334c..d5f636fbf29a 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -696,7 +696,8 @@ static int uart_set_info(struct uart_state *state,
696 (new_serial.baud_base != port->uartclk / 16) || 696 (new_serial.baud_base != port->uartclk / 16) ||
697 (close_delay != state->close_delay) || 697 (close_delay != state->close_delay) ||
698 (closing_wait != state->closing_wait) || 698 (closing_wait != state->closing_wait) ||
699 (new_serial.xmit_fifo_size != port->fifosize) || 699 (new_serial.xmit_fifo_size &&
700 new_serial.xmit_fifo_size != port->fifosize) ||
700 (((new_flags ^ old_flags) & ~UPF_USR_MASK) != 0)) 701 (((new_flags ^ old_flags) & ~UPF_USR_MASK) != 0))
701 goto exit; 702 goto exit;
702 port->flags = ((port->flags & ~UPF_USR_MASK) | 703 port->flags = ((port->flags & ~UPF_USR_MASK) |
@@ -801,7 +802,8 @@ static int uart_set_info(struct uart_state *state,
801 port->custom_divisor = new_serial.custom_divisor; 802 port->custom_divisor = new_serial.custom_divisor;
802 state->close_delay = close_delay; 803 state->close_delay = close_delay;
803 state->closing_wait = closing_wait; 804 state->closing_wait = closing_wait;
804 port->fifosize = new_serial.xmit_fifo_size; 805 if (new_serial.xmit_fifo_size)
806 port->fifosize = new_serial.xmit_fifo_size;
805 if (state->info->tty) 807 if (state->info->tty)
806 state->info->tty->low_latency = 808 state->info->tty->low_latency =
807 (port->flags & UPF_LOW_LATENCY) ? 1 : 0; 809 (port->flags & UPF_LOW_LATENCY) ? 1 : 0;
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index fc1104a2cfa9..058cba70818a 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -216,10 +216,11 @@ struct uart_port {
216 unsigned char __iomem *membase; /* read/write[bwl] */ 216 unsigned char __iomem *membase; /* read/write[bwl] */
217 unsigned int irq; /* irq number */ 217 unsigned int irq; /* irq number */
218 unsigned int uartclk; /* base uart clock */ 218 unsigned int uartclk; /* base uart clock */
219 unsigned char fifosize; /* tx fifo size */ 219 unsigned int fifosize; /* tx fifo size */
220 unsigned char x_char; /* xon/xoff char */ 220 unsigned char x_char; /* xon/xoff char */
221 unsigned char regshift; /* reg offset shift */ 221 unsigned char regshift; /* reg offset shift */
222 unsigned char iotype; /* io access style */ 222 unsigned char iotype; /* io access style */
223 unsigned char unused1;
223 224
224#define UPIO_PORT (0) 225#define UPIO_PORT (0)
225#define UPIO_HUB6 (1) 226#define UPIO_HUB6 (1)