diff options
| -rw-r--r-- | drivers/serial/8250_pci.c | 20 | ||||
| -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 |
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 | */ |
| 137 | static int __devinit pci_hp_diva_init(struct pci_dev *dev) | 137 | static 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 | */ |
| 197 | static int __devinit pci_inteli960ni_init(struct pci_dev *dev) | 197 | static 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 | */ |
| 219 | static int __devinit pci_plx9050_init(struct pci_dev *dev) | 219 | static 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 | ||
| 317 | static int __devinit sbs_init(struct pci_dev *dev) | 317 | static 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 | ||
| 496 | static int __devinit pci_timedia_init(struct pci_dev *dev) | 496 | static 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 | ||
| 569 | static int __devinit pci_xircom_init(struct pci_dev *dev) | 569 | static 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 | ||
| 575 | static int __devinit pci_netmos_init(struct pci_dev *dev) | 575 | static 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 | */ |
| 623 | static struct pci_serial_quirk pci_serial_quirks[] = { | 623 | static 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) |
