Loading drivers/serial/21285.c +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r port->icount.rx++; rxs = *CSR_RXSTAT | RXSTAT_DUMMY_READ; if (rxs & RXSTAT_ANYERR) { if (unlikely(rxs & RXSTAT_ANYERR)) { if (rxs & RXSTAT_PARITY) port->icount.parity++; else if (rxs & RXSTAT_FRAME) Loading drivers/serial/8250_hp300.c +27 −26 Original line number Diff line number Diff line Loading @@ -9,15 +9,15 @@ #include <linux/init.h> #include <linux/string.h> #include <linux/kernel.h> #include <linux/tty.h> #include <linux/serial.h> #include <linux/serialP.h> #include <linux/serial_core.h> #include <linux/delay.h> #include <linux/dio.h> #include <linux/console.h> #include <asm/io.h> #include "8250.h" #if !defined(CONFIG_HPDCA) && !defined(CONFIG_HPAPCI) #warning CONFIG_8250 defined but neither CONFIG_HPDCA nor CONFIG_HPAPCI defined, are you sure? #endif Loading Loading @@ -163,7 +163,7 @@ int __init hp300_setup_serial_console(void) static int __devinit hpdca_init_one(struct dio_dev *d, const struct dio_device_id *ent) { struct serial_struct serial_req; struct uart_port port; int line; #ifdef CONFIG_SERIAL_8250_CONSOLE Loading @@ -172,21 +172,22 @@ static int __devinit hpdca_init_one(struct dio_dev *d, return 0; } #endif memset(&serial_req, 0, sizeof(struct serial_struct)); memset(&port, 0, sizeof(struct uart_port)); /* Memory mapped I/O */ serial_req.io_type = SERIAL_IO_MEM; serial_req.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; serial_req.irq = d->ipl; serial_req.baud_base = HPDCA_BAUD_BASE; serial_req.iomap_base = (d->resource.start + UART_OFFSET); serial_req.iomem_base = (char *)(serial_req.iomap_base + DIO_VIRADDRBASE); serial_req.iomem_reg_shift = 1; line = register_serial(&serial_req); port.iotype = UPIO_MEM; port.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; port.irq = d->ipl; port.uartclk = HPDCA_BAUD_BASE * 16; port.mapbase = (d->resource.start + UART_OFFSET); port.membase = (char *)(port.mapbase + DIO_VIRADDRBASE); port.regshift = 1; port.dev = &d->dev; line = serial8250_register_port(&port); if (line < 0) { printk(KERN_NOTICE "8250_hp300: register_serial() DCA scode %d" " irq %d failed\n", d->scode, serial_req.irq); " irq %d failed\n", d->scode, port.irq); return -ENOMEM; } Loading @@ -209,7 +210,7 @@ static int __init hp300_8250_init(void) #ifdef CONFIG_HPAPCI int line; unsigned long base; struct serial_struct serial_req; struct uart_port uport; struct hp300_port *port; int i; #endif Loading Loading @@ -251,25 +252,25 @@ static int __init hp300_8250_init(void) if (!port) return -ENOMEM; memset(&serial_req, 0, sizeof(struct serial_struct)); memset(&uport, 0, sizeof(struct uart_port)); base = (FRODO_BASE + FRODO_APCI_OFFSET(i)); /* Memory mapped I/O */ serial_req.io_type = SERIAL_IO_MEM; serial_req.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; uport.iotype = UPIO_MEM; uport.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; /* XXX - no interrupt support yet */ serial_req.irq = 0; serial_req.baud_base = HPAPCI_BAUD_BASE; serial_req.iomap_base = base; serial_req.iomem_base = (char *)(serial_req.iomap_base + DIO_VIRADDRBASE); serial_req.iomem_reg_shift = 2; uport.irq = 0; uport.uartclk = HPAPCI_BAUD_BASE * 16; uport.mapbase = base; uport.membase = (char *)(base + DIO_VIRADDRBASE); uport.regshift = 2; line = register_serial(&serial_req); line = serial8250_register_port(&uport); if (line < 0) { printk(KERN_NOTICE "8250_hp300: register_serial() APCI %d" " irq %d failed\n", i, serial_req.irq); " irq %d failed\n", i, uport.irq); kfree(port); continue; } Loading Loading @@ -299,7 +300,7 @@ static void __devexit hpdca_remove_one(struct dio_dev *d) /* Disable board-interrupts */ out_8(d->resource.start + DIO_VIRADDRBASE + DCA_IC, 0); } unregister_serial(line); serial8250_unregister_port(line); } #endif Loading @@ -309,7 +310,7 @@ static void __exit hp300_8250_exit(void) struct hp300_port *port, *to_free; for (port = hp300_ports; port; ) { unregister_serial(port->line); serial8250_unregister_port(port->line); to_free = port; port = port->next; kfree(to_free); Loading drivers/serial/amba-pl010.c +1 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,7 @@ pl010_rx_chars(struct uart_port *port) * out of the main execution path */ rsr = UART_GET_RSR(port) | UART_DUMMY_RSR_RX; if (rsr & UART01x_RSR_ANY) { if (unlikely(rsr & UART01x_RSR_ANY)) { if (rsr & UART01x_RSR_BE) { rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE); port->icount.brk++; Loading drivers/serial/amba-pl011.c +1 −1 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ pl011_rx_chars(struct uart_amba_port *uap) * out of the main execution path */ rsr = readw(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX; if (rsr & UART01x_RSR_ANY) { if (unlikely(rsr & UART01x_RSR_ANY)) { if (rsr & UART01x_RSR_BE) { rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE); uap->port.icount.brk++; Loading drivers/serial/clps711x.c +27 −38 Original line number Diff line number Diff line Loading @@ -116,22 +116,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re * Note that the error handling code is * out of the main execution path */ if (ch & UART_ANY_ERR) goto handle_error; if (uart_handle_sysrq_char(port, ch, regs)) goto ignore_char; error_return: tty_insert_flip_char(tty, ch, flg); ignore_char: status = clps_readl(SYSFLG(port)); } out: tty_flip_buffer_push(tty); return IRQ_HANDLED; handle_error: if (unlikely(ch & UART_ANY_ERR)) { if (ch & UARTDR_PARERR) port->icount.parity++; else if (ch & UARTDR_FRMERR) Loading @@ -139,11 +124,6 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re if (ch & UARTDR_OVERR) port->icount.overrun++; if (ch & port->ignore_status_mask) { if (++ignored > 100) goto out; goto ignore_char; } ch &= port->read_status_mask; if (ch & UARTDR_PARERR) Loading @@ -151,19 +131,28 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re else if (ch & UARTDR_FRMERR) flg = TTY_FRAME; if (ch & UARTDR_OVERR) { #ifdef SUPPORT_SYSRQ port->sysrq = 0; #endif } if (uart_handle_sysrq_char(port, ch, regs)) goto ignore_char; /* * CHECK: does overrun affect the current character? * ASSUMPTION: it does not. */ if ((ch & port->ignore_status_mask & ~RXSTAT_OVERRUN) == 0) tty_insert_flip_char(tty, ch, flg); ch = 0; flg = TTY_OVERRUN; if ((ch & ~port->ignore_status_mask & RXSTAT_OVERRUN) == 0) tty_insert_flip_char(tty, 0, TTY_OVERRUN); ignore_char: status = clps_readl(SYSFLG(port)); } #ifdef SUPPORT_SYSRQ port->sysrq = 0; #endif goto error_return; tty_flip_buffer_push(tty); return IRQ_HANDLED; } static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id, struct pt_regs *regs) Loading Loading
drivers/serial/21285.c +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r port->icount.rx++; rxs = *CSR_RXSTAT | RXSTAT_DUMMY_READ; if (rxs & RXSTAT_ANYERR) { if (unlikely(rxs & RXSTAT_ANYERR)) { if (rxs & RXSTAT_PARITY) port->icount.parity++; else if (rxs & RXSTAT_FRAME) Loading
drivers/serial/8250_hp300.c +27 −26 Original line number Diff line number Diff line Loading @@ -9,15 +9,15 @@ #include <linux/init.h> #include <linux/string.h> #include <linux/kernel.h> #include <linux/tty.h> #include <linux/serial.h> #include <linux/serialP.h> #include <linux/serial_core.h> #include <linux/delay.h> #include <linux/dio.h> #include <linux/console.h> #include <asm/io.h> #include "8250.h" #if !defined(CONFIG_HPDCA) && !defined(CONFIG_HPAPCI) #warning CONFIG_8250 defined but neither CONFIG_HPDCA nor CONFIG_HPAPCI defined, are you sure? #endif Loading Loading @@ -163,7 +163,7 @@ int __init hp300_setup_serial_console(void) static int __devinit hpdca_init_one(struct dio_dev *d, const struct dio_device_id *ent) { struct serial_struct serial_req; struct uart_port port; int line; #ifdef CONFIG_SERIAL_8250_CONSOLE Loading @@ -172,21 +172,22 @@ static int __devinit hpdca_init_one(struct dio_dev *d, return 0; } #endif memset(&serial_req, 0, sizeof(struct serial_struct)); memset(&port, 0, sizeof(struct uart_port)); /* Memory mapped I/O */ serial_req.io_type = SERIAL_IO_MEM; serial_req.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; serial_req.irq = d->ipl; serial_req.baud_base = HPDCA_BAUD_BASE; serial_req.iomap_base = (d->resource.start + UART_OFFSET); serial_req.iomem_base = (char *)(serial_req.iomap_base + DIO_VIRADDRBASE); serial_req.iomem_reg_shift = 1; line = register_serial(&serial_req); port.iotype = UPIO_MEM; port.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; port.irq = d->ipl; port.uartclk = HPDCA_BAUD_BASE * 16; port.mapbase = (d->resource.start + UART_OFFSET); port.membase = (char *)(port.mapbase + DIO_VIRADDRBASE); port.regshift = 1; port.dev = &d->dev; line = serial8250_register_port(&port); if (line < 0) { printk(KERN_NOTICE "8250_hp300: register_serial() DCA scode %d" " irq %d failed\n", d->scode, serial_req.irq); " irq %d failed\n", d->scode, port.irq); return -ENOMEM; } Loading @@ -209,7 +210,7 @@ static int __init hp300_8250_init(void) #ifdef CONFIG_HPAPCI int line; unsigned long base; struct serial_struct serial_req; struct uart_port uport; struct hp300_port *port; int i; #endif Loading Loading @@ -251,25 +252,25 @@ static int __init hp300_8250_init(void) if (!port) return -ENOMEM; memset(&serial_req, 0, sizeof(struct serial_struct)); memset(&uport, 0, sizeof(struct uart_port)); base = (FRODO_BASE + FRODO_APCI_OFFSET(i)); /* Memory mapped I/O */ serial_req.io_type = SERIAL_IO_MEM; serial_req.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; uport.iotype = UPIO_MEM; uport.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; /* XXX - no interrupt support yet */ serial_req.irq = 0; serial_req.baud_base = HPAPCI_BAUD_BASE; serial_req.iomap_base = base; serial_req.iomem_base = (char *)(serial_req.iomap_base + DIO_VIRADDRBASE); serial_req.iomem_reg_shift = 2; uport.irq = 0; uport.uartclk = HPAPCI_BAUD_BASE * 16; uport.mapbase = base; uport.membase = (char *)(base + DIO_VIRADDRBASE); uport.regshift = 2; line = register_serial(&serial_req); line = serial8250_register_port(&uport); if (line < 0) { printk(KERN_NOTICE "8250_hp300: register_serial() APCI %d" " irq %d failed\n", i, serial_req.irq); " irq %d failed\n", i, uport.irq); kfree(port); continue; } Loading Loading @@ -299,7 +300,7 @@ static void __devexit hpdca_remove_one(struct dio_dev *d) /* Disable board-interrupts */ out_8(d->resource.start + DIO_VIRADDRBASE + DCA_IC, 0); } unregister_serial(line); serial8250_unregister_port(line); } #endif Loading @@ -309,7 +310,7 @@ static void __exit hp300_8250_exit(void) struct hp300_port *port, *to_free; for (port = hp300_ports; port; ) { unregister_serial(port->line); serial8250_unregister_port(port->line); to_free = port; port = port->next; kfree(to_free); Loading
drivers/serial/amba-pl010.c +1 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,7 @@ pl010_rx_chars(struct uart_port *port) * out of the main execution path */ rsr = UART_GET_RSR(port) | UART_DUMMY_RSR_RX; if (rsr & UART01x_RSR_ANY) { if (unlikely(rsr & UART01x_RSR_ANY)) { if (rsr & UART01x_RSR_BE) { rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE); port->icount.brk++; Loading
drivers/serial/amba-pl011.c +1 −1 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ pl011_rx_chars(struct uart_amba_port *uap) * out of the main execution path */ rsr = readw(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX; if (rsr & UART01x_RSR_ANY) { if (unlikely(rsr & UART01x_RSR_ANY)) { if (rsr & UART01x_RSR_BE) { rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE); uap->port.icount.brk++; Loading
drivers/serial/clps711x.c +27 −38 Original line number Diff line number Diff line Loading @@ -116,22 +116,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re * Note that the error handling code is * out of the main execution path */ if (ch & UART_ANY_ERR) goto handle_error; if (uart_handle_sysrq_char(port, ch, regs)) goto ignore_char; error_return: tty_insert_flip_char(tty, ch, flg); ignore_char: status = clps_readl(SYSFLG(port)); } out: tty_flip_buffer_push(tty); return IRQ_HANDLED; handle_error: if (unlikely(ch & UART_ANY_ERR)) { if (ch & UARTDR_PARERR) port->icount.parity++; else if (ch & UARTDR_FRMERR) Loading @@ -139,11 +124,6 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re if (ch & UARTDR_OVERR) port->icount.overrun++; if (ch & port->ignore_status_mask) { if (++ignored > 100) goto out; goto ignore_char; } ch &= port->read_status_mask; if (ch & UARTDR_PARERR) Loading @@ -151,19 +131,28 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re else if (ch & UARTDR_FRMERR) flg = TTY_FRAME; if (ch & UARTDR_OVERR) { #ifdef SUPPORT_SYSRQ port->sysrq = 0; #endif } if (uart_handle_sysrq_char(port, ch, regs)) goto ignore_char; /* * CHECK: does overrun affect the current character? * ASSUMPTION: it does not. */ if ((ch & port->ignore_status_mask & ~RXSTAT_OVERRUN) == 0) tty_insert_flip_char(tty, ch, flg); ch = 0; flg = TTY_OVERRUN; if ((ch & ~port->ignore_status_mask & RXSTAT_OVERRUN) == 0) tty_insert_flip_char(tty, 0, TTY_OVERRUN); ignore_char: status = clps_readl(SYSFLG(port)); } #ifdef SUPPORT_SYSRQ port->sysrq = 0; #endif goto error_return; tty_flip_buffer_push(tty); return IRQ_HANDLED; } static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id, struct pt_regs *regs) Loading