diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 16:41:04 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 16:41:04 -0500 |
commit | 21eaab6d19ed43e82ed39c8deb7f192134fb4a0e (patch) | |
tree | d995205afdcb7f47462bcd28067dc0c4ab0b7b02 /arch/ia64/hp | |
parent | 74e1a2a39355b2d3ae8c60c78d8add162c6d7183 (diff) | |
parent | 9e17df37d710f8998e9cb10a548304fe33d4a5c2 (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/Kconfig | 1 | ||||
-rw-r--r-- | arch/ia64/hp/sim/simserial.c | 21 |
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 | ||
9 | config HP_SIMSERIAL | 9 | config HP_SIMSERIAL |
10 | bool "Simulated serial driver support" | 10 | bool "Simulated serial driver support" |
11 | depends on TTY | ||
11 | 12 | ||
12 | config HP_SIMSERIAL_CONSOLE | 13 | config 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 | ||
54 | static struct console *console; | 54 | static struct console *console; |
55 | 55 | ||
56 | static void receive_chars(struct tty_struct *tty) | 56 | static 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) | |||
93 | static irqreturn_t rs_interrupt_single(int irq, void *dev_id) | 93 | static 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) |