aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/hp
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 16:41:04 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 16:41:04 -0500
commit21eaab6d19ed43e82ed39c8deb7f192134fb4a0e (patch)
treed995205afdcb7f47462bcd28067dc0c4ab0b7b02 /arch/ia64/hp
parent74e1a2a39355b2d3ae8c60c78d8add162c6d7183 (diff)
parent9e17df37d710f8998e9cb10a548304fe33d4a5c2 (diff)
Merge tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial patches from Greg Kroah-Hartman: "Here's the big tty/serial driver patches for 3.9-rc1. More tty port rework and fixes from Jiri here, as well as lots of individual serial driver updates and fixes. All of these have been in the linux-next tree for a while." * tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits) tty: mxser: improve error handling in mxser_probe() and mxser_module_init() serial: imx: fix uninitialized variable warning serial: tegra: assume CONFIG_OF TTY: do not update atime/mtime on read/write lguest: select CONFIG_TTY to build properly. ARM defconfigs: add missing inclusions of linux/platform_device.h fb/exynos: include platform_device.h ARM: sa1100/assabet: include platform_device.h directly serial: imx: Fix recursive locking bug pps: Fix build breakage from decoupling pps from tty tty: Remove ancient hardpps() pps: Additional cleanups in uart_handle_dcd_change pps: Move timestamp read into PPS code proper pps: Don't crash the machine when exiting will do pps: Fix a use-after free bug when unregistering a source. pps: Use pps_lookup_dev to reduce ldisc coupling pps: Add pps_lookup_dev() function tty: serial: uartlite: Support uartlite on big and little endian systems tty: serial: uartlite: Fix sparse and checkpatch warnings serial/arc-uart: Miscll DT related updates (Grant's review comments) ... Fix up trivial conflicts, mostly just due to the TTY config option clashing with the EXPERIMENTAL removal.
Diffstat (limited to 'arch/ia64/hp')
-rw-r--r--arch/ia64/hp/sim/Kconfig1
-rw-r--r--arch/ia64/hp/sim/simserial.c21
2 files changed, 7 insertions, 15 deletions
diff --git a/arch/ia64/hp/sim/Kconfig b/arch/ia64/hp/sim/Kconfig
index 8d513a8c5266..d84707d55203 100644
--- a/arch/ia64/hp/sim/Kconfig
+++ b/arch/ia64/hp/sim/Kconfig
@@ -8,6 +8,7 @@ config HP_SIMETH
8 8
9config HP_SIMSERIAL 9config HP_SIMSERIAL
10 bool "Simulated serial driver support" 10 bool "Simulated serial driver support"
11 depends on TTY
11 12
12config HP_SIMSERIAL_CONSOLE 13config HP_SIMSERIAL_CONSOLE
13 bool "Console for HP simulator" 14 bool "Console for HP simulator"
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c
index fc3924d18c1f..da2f319fb71d 100644
--- a/arch/ia64/hp/sim/simserial.c
+++ b/arch/ia64/hp/sim/simserial.c
@@ -53,7 +53,7 @@ struct tty_driver *hp_simserial_driver;
53 53
54static struct console *console; 54static struct console *console;
55 55
56static void receive_chars(struct tty_struct *tty) 56static void receive_chars(struct tty_port *port)
57{ 57{
58 unsigned char ch; 58 unsigned char ch;
59 static unsigned char seen_esc = 0; 59 static unsigned char seen_esc = 0;
@@ -81,10 +81,10 @@ static void receive_chars(struct tty_struct *tty)
81 } 81 }
82 seen_esc = 0; 82 seen_esc = 0;
83 83
84 if (tty_insert_flip_char(tty, ch, TTY_NORMAL) == 0) 84 if (tty_insert_flip_char(port, ch, TTY_NORMAL) == 0)
85 break; 85 break;
86 } 86 }
87 tty_flip_buffer_push(tty); 87 tty_flip_buffer_push(port);
88} 88}
89 89
90/* 90/*
@@ -93,18 +93,9 @@ static void receive_chars(struct tty_struct *tty)
93static irqreturn_t rs_interrupt_single(int irq, void *dev_id) 93static irqreturn_t rs_interrupt_single(int irq, void *dev_id)
94{ 94{
95 struct serial_state *info = dev_id; 95 struct serial_state *info = dev_id;
96 struct tty_struct *tty = tty_port_tty_get(&info->port);
97 96
98 if (!tty) { 97 receive_chars(&info->port);
99 printk(KERN_INFO "%s: tty=0 problem\n", __func__); 98
100 return IRQ_NONE;
101 }
102 /*
103 * pretty simple in our case, because we only get interrupts
104 * on inbound traffic
105 */
106 receive_chars(tty);
107 tty_kref_put(tty);
108 return IRQ_HANDLED; 99 return IRQ_HANDLED;
109} 100}
110 101
@@ -435,7 +426,7 @@ static int rs_open(struct tty_struct *tty, struct file * filp)
435 struct tty_port *port = &info->port; 426 struct tty_port *port = &info->port;
436 427
437 tty->driver_data = info; 428 tty->driver_data = info;
438 tty->low_latency = (port->flags & ASYNC_LOW_LATENCY) ? 1 : 0; 429 port->low_latency = (port->flags & ASYNC_LOW_LATENCY) ? 1 : 0;
439 430
440 /* 431 /*
441 * figure out which console to use (should be one already) 432 * figure out which console to use (should be one already)