diff options
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/hvc/hvc_console.c | 7 | ||||
-rw-r--r-- | drivers/tty/serial/8250/8250_hp300.c | 20 | ||||
-rw-r--r-- | drivers/tty/serial/Kconfig | 4 | ||||
-rw-r--r-- | drivers/tty/serial/atmel_serial.c | 18 | ||||
-rw-r--r-- | drivers/tty/serial/max310x.c | 1 | ||||
-rw-r--r-- | drivers/tty/serial/omap-serial.c | 12 | ||||
-rw-r--r-- | drivers/tty/serial/sa1100.c | 2 | ||||
-rw-r--r-- | drivers/tty/serial/sccnxp.c | 1 | ||||
-rw-r--r-- | drivers/tty/serial/sh-sci.c | 3 | ||||
-rw-r--r-- | drivers/tty/sysrq.c | 1 | ||||
-rw-r--r-- | drivers/tty/vt/vt.c | 8 |
11 files changed, 28 insertions, 49 deletions
diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c index a5dec1ca1b82..13ee53bd0bf6 100644 --- a/drivers/tty/hvc/hvc_console.c +++ b/drivers/tty/hvc/hvc_console.c | |||
@@ -424,7 +424,6 @@ static void hvc_hangup(struct tty_struct *tty) | |||
424 | { | 424 | { |
425 | struct hvc_struct *hp = tty->driver_data; | 425 | struct hvc_struct *hp = tty->driver_data; |
426 | unsigned long flags; | 426 | unsigned long flags; |
427 | int temp_open_count; | ||
428 | 427 | ||
429 | if (!hp) | 428 | if (!hp) |
430 | return; | 429 | return; |
@@ -444,7 +443,6 @@ static void hvc_hangup(struct tty_struct *tty) | |||
444 | return; | 443 | return; |
445 | } | 444 | } |
446 | 445 | ||
447 | temp_open_count = hp->port.count; | ||
448 | hp->port.count = 0; | 446 | hp->port.count = 0; |
449 | spin_unlock_irqrestore(&hp->port.lock, flags); | 447 | spin_unlock_irqrestore(&hp->port.lock, flags); |
450 | tty_port_tty_set(&hp->port, NULL); | 448 | tty_port_tty_set(&hp->port, NULL); |
@@ -453,11 +451,6 @@ static void hvc_hangup(struct tty_struct *tty) | |||
453 | 451 | ||
454 | if (hp->ops->notifier_hangup) | 452 | if (hp->ops->notifier_hangup) |
455 | hp->ops->notifier_hangup(hp, hp->data); | 453 | hp->ops->notifier_hangup(hp, hp->data); |
456 | |||
457 | while(temp_open_count) { | ||
458 | --temp_open_count; | ||
459 | tty_port_put(&hp->port); | ||
460 | } | ||
461 | } | 454 | } |
462 | 455 | ||
463 | /* | 456 | /* |
diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c index 8f1dd2cc00a8..f3d0edf46644 100644 --- a/drivers/tty/serial/8250/8250_hp300.c +++ b/drivers/tty/serial/8250/8250_hp300.c | |||
@@ -162,7 +162,7 @@ int __init hp300_setup_serial_console(void) | |||
162 | static int __devinit hpdca_init_one(struct dio_dev *d, | 162 | static int __devinit hpdca_init_one(struct dio_dev *d, |
163 | const struct dio_device_id *ent) | 163 | const struct dio_device_id *ent) |
164 | { | 164 | { |
165 | struct uart_port port; | 165 | struct uart_8250_port uart; |
166 | int line; | 166 | int line; |
167 | 167 | ||
168 | #ifdef CONFIG_SERIAL_8250_CONSOLE | 168 | #ifdef CONFIG_SERIAL_8250_CONSOLE |
@@ -174,19 +174,19 @@ static int __devinit hpdca_init_one(struct dio_dev *d, | |||
174 | memset(&uart, 0, sizeof(uart)); | 174 | memset(&uart, 0, sizeof(uart)); |
175 | 175 | ||
176 | /* Memory mapped I/O */ | 176 | /* Memory mapped I/O */ |
177 | port.iotype = UPIO_MEM; | 177 | uart.port.iotype = UPIO_MEM; |
178 | port.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; | 178 | uart.port.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; |
179 | port.irq = d->ipl; | 179 | uart.port.irq = d->ipl; |
180 | port.uartclk = HPDCA_BAUD_BASE * 16; | 180 | uart.port.uartclk = HPDCA_BAUD_BASE * 16; |
181 | port.mapbase = (d->resource.start + UART_OFFSET); | 181 | uart.port.mapbase = (d->resource.start + UART_OFFSET); |
182 | port.membase = (char *)(port.mapbase + DIO_VIRADDRBASE); | 182 | uart.port.membase = (char *)(uart.port.mapbase + DIO_VIRADDRBASE); |
183 | port.regshift = 1; | 183 | uart.port.regshift = 1; |
184 | port.dev = &d->dev; | 184 | uart.port.dev = &d->dev; |
185 | line = serial8250_register_8250_port(&uart); | 185 | line = serial8250_register_8250_port(&uart); |
186 | 186 | ||
187 | if (line < 0) { | 187 | if (line < 0) { |
188 | printk(KERN_NOTICE "8250_hp300: register_serial() DCA scode %d" | 188 | printk(KERN_NOTICE "8250_hp300: register_serial() DCA scode %d" |
189 | " irq %d failed\n", d->scode, port.irq); | 189 | " irq %d failed\n", d->scode, uart.port.irq); |
190 | return -ENOMEM; | 190 | return -ENOMEM; |
191 | } | 191 | } |
192 | 192 | ||
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 233fbaaf2559..2a53be5f010d 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig | |||
@@ -1150,7 +1150,7 @@ config SERIAL_SC26XX_CONSOLE | |||
1150 | Support for Console on SC2681/SC2692 serial ports. | 1150 | Support for Console on SC2681/SC2692 serial ports. |
1151 | 1151 | ||
1152 | config SERIAL_SCCNXP | 1152 | config SERIAL_SCCNXP |
1153 | bool "SCCNXP serial port support" | 1153 | tristate "SCCNXP serial port support" |
1154 | depends on !SERIAL_SC26XX | 1154 | depends on !SERIAL_SC26XX |
1155 | select SERIAL_CORE | 1155 | select SERIAL_CORE |
1156 | default n | 1156 | default n |
@@ -1162,7 +1162,7 @@ config SERIAL_SCCNXP | |||
1162 | 1162 | ||
1163 | config SERIAL_SCCNXP_CONSOLE | 1163 | config SERIAL_SCCNXP_CONSOLE |
1164 | bool "Console on SCCNXP serial port" | 1164 | bool "Console on SCCNXP serial port" |
1165 | depends on SERIAL_SCCNXP | 1165 | depends on SERIAL_SCCNXP=y |
1166 | select SERIAL_CORE_CONSOLE | 1166 | select SERIAL_CORE_CONSOLE |
1167 | help | 1167 | help |
1168 | Support for console on SCCNXP serial ports. | 1168 | Support for console on SCCNXP serial ports. |
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c index 3d7e1ee2fa57..a6134c94a9fc 100644 --- a/drivers/tty/serial/atmel_serial.c +++ b/drivers/tty/serial/atmel_serial.c | |||
@@ -43,7 +43,6 @@ | |||
43 | #include <asm/io.h> | 43 | #include <asm/io.h> |
44 | #include <asm/ioctls.h> | 44 | #include <asm/ioctls.h> |
45 | 45 | ||
46 | #include <asm/mach/serial_at91.h> | ||
47 | #include <mach/board.h> | 46 | #include <mach/board.h> |
48 | 47 | ||
49 | #ifdef CONFIG_ARM | 48 | #ifdef CONFIG_ARM |
@@ -1513,23 +1512,6 @@ static void __devinit atmel_init_port(struct atmel_uart_port *atmel_port, | |||
1513 | } | 1512 | } |
1514 | } | 1513 | } |
1515 | 1514 | ||
1516 | /* | ||
1517 | * Register board-specific modem-control line handlers. | ||
1518 | */ | ||
1519 | void __init atmel_register_uart_fns(struct atmel_port_fns *fns) | ||
1520 | { | ||
1521 | if (fns->enable_ms) | ||
1522 | atmel_pops.enable_ms = fns->enable_ms; | ||
1523 | if (fns->get_mctrl) | ||
1524 | atmel_pops.get_mctrl = fns->get_mctrl; | ||
1525 | if (fns->set_mctrl) | ||
1526 | atmel_pops.set_mctrl = fns->set_mctrl; | ||
1527 | atmel_open_hook = fns->open; | ||
1528 | atmel_close_hook = fns->close; | ||
1529 | atmel_pops.pm = fns->pm; | ||
1530 | atmel_pops.set_wake = fns->set_wake; | ||
1531 | } | ||
1532 | |||
1533 | struct platform_device *atmel_default_console_device; /* the serial console device */ | 1515 | struct platform_device *atmel_default_console_device; /* the serial console device */ |
1534 | 1516 | ||
1535 | #ifdef CONFIG_SERIAL_ATMEL_CONSOLE | 1517 | #ifdef CONFIG_SERIAL_ATMEL_CONSOLE |
diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c index 2bc28a59d385..1ab1d2c66de4 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c | |||
@@ -1239,6 +1239,7 @@ static int __devexit max310x_remove(struct spi_device *spi) | |||
1239 | static const struct spi_device_id max310x_id_table[] = { | 1239 | static const struct spi_device_id max310x_id_table[] = { |
1240 | { "max3107", MAX310X_TYPE_MAX3107 }, | 1240 | { "max3107", MAX310X_TYPE_MAX3107 }, |
1241 | { "max3108", MAX310X_TYPE_MAX3108 }, | 1241 | { "max3108", MAX310X_TYPE_MAX3108 }, |
1242 | { } | ||
1242 | }; | 1243 | }; |
1243 | MODULE_DEVICE_TABLE(spi, max310x_id_table); | 1244 | MODULE_DEVICE_TABLE(spi, max310x_id_table); |
1244 | 1245 | ||
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 6ede6fd92b4c..6d3d26a607b9 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c | |||
@@ -671,19 +671,19 @@ serial_omap_configure_xonxoff | |||
671 | 671 | ||
672 | /* | 672 | /* |
673 | * IXON Flag: | 673 | * IXON Flag: |
674 | * Flow control for OMAP.TX | 674 | * Enable XON/XOFF flow control on output. |
675 | * OMAP.RX should listen for XON/XOFF | 675 | * Transmit XON1, XOFF1 |
676 | */ | 676 | */ |
677 | if (termios->c_iflag & IXON) | 677 | if (termios->c_iflag & IXON) |
678 | up->efr |= OMAP_UART_SW_RX; | 678 | up->efr |= OMAP_UART_SW_TX; |
679 | 679 | ||
680 | /* | 680 | /* |
681 | * IXOFF Flag: | 681 | * IXOFF Flag: |
682 | * Flow control for OMAP.RX | 682 | * Enable XON/XOFF flow control on input. |
683 | * OMAP.TX should send XON/XOFF | 683 | * Receiver compares XON1, XOFF1. |
684 | */ | 684 | */ |
685 | if (termios->c_iflag & IXOFF) | 685 | if (termios->c_iflag & IXOFF) |
686 | up->efr |= OMAP_UART_SW_TX; | 686 | up->efr |= OMAP_UART_SW_RX; |
687 | 687 | ||
688 | serial_out(up, UART_EFR, up->efr | UART_EFR_ECB); | 688 | serial_out(up, UART_EFR, up->efr | UART_EFR_ECB); |
689 | serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A); | 689 | serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A); |
diff --git a/drivers/tty/serial/sa1100.c b/drivers/tty/serial/sa1100.c index 2ca5959ec3fa..ecc1e16be623 100644 --- a/drivers/tty/serial/sa1100.c +++ b/drivers/tty/serial/sa1100.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/console.h> | 30 | #include <linux/console.h> |
31 | #include <linux/sysrq.h> | 31 | #include <linux/sysrq.h> |
32 | #include <linux/platform_data/sa11x0-serial.h> | ||
32 | #include <linux/platform_device.h> | 33 | #include <linux/platform_device.h> |
33 | #include <linux/tty.h> | 34 | #include <linux/tty.h> |
34 | #include <linux/tty_flip.h> | 35 | #include <linux/tty_flip.h> |
@@ -39,7 +40,6 @@ | |||
39 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
40 | #include <mach/hardware.h> | 41 | #include <mach/hardware.h> |
41 | #include <mach/irqs.h> | 42 | #include <mach/irqs.h> |
42 | #include <asm/mach/serial_sa1100.h> | ||
43 | 43 | ||
44 | /* We've been assigned a range on the "Low-density serial ports" major */ | 44 | /* We've been assigned a range on the "Low-density serial ports" major */ |
45 | #define SERIAL_SA1100_MAJOR 204 | 45 | #define SERIAL_SA1100_MAJOR 204 |
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c index b7086d004f5f..e821068cd95b 100644 --- a/drivers/tty/serial/sccnxp.c +++ b/drivers/tty/serial/sccnxp.c | |||
@@ -971,6 +971,7 @@ static const struct platform_device_id sccnxp_id_table[] = { | |||
971 | { "sc28202", SCCNXP_TYPE_SC28202 }, | 971 | { "sc28202", SCCNXP_TYPE_SC28202 }, |
972 | { "sc68681", SCCNXP_TYPE_SC68681 }, | 972 | { "sc68681", SCCNXP_TYPE_SC68681 }, |
973 | { "sc68692", SCCNXP_TYPE_SC68692 }, | 973 | { "sc68692", SCCNXP_TYPE_SC68692 }, |
974 | { }, | ||
974 | }; | 975 | }; |
975 | MODULE_DEVICE_TABLE(platform, sccnxp_id_table); | 976 | MODULE_DEVICE_TABLE(platform, sccnxp_id_table); |
976 | 977 | ||
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 9be296cf7295..6ee59001d61d 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c | |||
@@ -530,7 +530,8 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
530 | if (s->cfg->port_reg <= 0) | 530 | if (s->cfg->port_reg <= 0) |
531 | return 1; | 531 | return 1; |
532 | 532 | ||
533 | return !!__raw_readb(s->cfg->port_reg); | 533 | /* Cast for ARM damage */ |
534 | return !!__raw_readb((void __iomem *)s->cfg->port_reg); | ||
534 | } | 535 | } |
535 | 536 | ||
536 | /* ********************************************************************** * | 537 | /* ********************************************************************** * |
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c index 05728894a88c..16ee6cee07da 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c | |||
@@ -452,6 +452,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = { | |||
452 | NULL, /* v */ | 452 | NULL, /* v */ |
453 | &sysrq_showstate_blocked_op, /* w */ | 453 | &sysrq_showstate_blocked_op, /* w */ |
454 | /* x: May be registered on ppc/powerpc for xmon */ | 454 | /* x: May be registered on ppc/powerpc for xmon */ |
455 | /* x: May be registered on sparc64 for global PMU dump */ | ||
455 | NULL, /* x */ | 456 | NULL, /* x */ |
456 | /* y: May be registered on sparc64 for global register dump */ | 457 | /* y: May be registered on sparc64 for global register dump */ |
457 | NULL, /* y */ | 458 | NULL, /* y */ |
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index f87d7e8964bf..4e0d0c3734b3 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c | |||
@@ -539,25 +539,25 @@ static void insert_char(struct vc_data *vc, unsigned int nr) | |||
539 | { | 539 | { |
540 | unsigned short *p = (unsigned short *) vc->vc_pos; | 540 | unsigned short *p = (unsigned short *) vc->vc_pos; |
541 | 541 | ||
542 | scr_memmovew(p + nr, p, vc->vc_cols - vc->vc_x); | 542 | scr_memmovew(p + nr, p, (vc->vc_cols - vc->vc_x) * 2); |
543 | scr_memsetw(p, vc->vc_video_erase_char, nr * 2); | 543 | scr_memsetw(p, vc->vc_video_erase_char, nr * 2); |
544 | vc->vc_need_wrap = 0; | 544 | vc->vc_need_wrap = 0; |
545 | if (DO_UPDATE(vc)) | 545 | if (DO_UPDATE(vc)) |
546 | do_update_region(vc, (unsigned long) p, | 546 | do_update_region(vc, (unsigned long) p, |
547 | (vc->vc_cols - vc->vc_x) / 2 + 1); | 547 | vc->vc_cols - vc->vc_x); |
548 | } | 548 | } |
549 | 549 | ||
550 | static void delete_char(struct vc_data *vc, unsigned int nr) | 550 | static void delete_char(struct vc_data *vc, unsigned int nr) |
551 | { | 551 | { |
552 | unsigned short *p = (unsigned short *) vc->vc_pos; | 552 | unsigned short *p = (unsigned short *) vc->vc_pos; |
553 | 553 | ||
554 | scr_memcpyw(p, p + nr, vc->vc_cols - vc->vc_x - nr); | 554 | scr_memcpyw(p, p + nr, (vc->vc_cols - vc->vc_x - nr) * 2); |
555 | scr_memsetw(p + vc->vc_cols - vc->vc_x - nr, vc->vc_video_erase_char, | 555 | scr_memsetw(p + vc->vc_cols - vc->vc_x - nr, vc->vc_video_erase_char, |
556 | nr * 2); | 556 | nr * 2); |
557 | vc->vc_need_wrap = 0; | 557 | vc->vc_need_wrap = 0; |
558 | if (DO_UPDATE(vc)) | 558 | if (DO_UPDATE(vc)) |
559 | do_update_region(vc, (unsigned long) p, | 559 | do_update_region(vc, (unsigned long) p, |
560 | (vc->vc_cols - vc->vc_x) / 2); | 560 | vc->vc_cols - vc->vc_x); |
561 | } | 561 | } |
562 | 562 | ||
563 | static int softcursor_original; | 563 | static int softcursor_original; |