aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-11-06 22:17:06 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-06 22:17:06 -0500
commit56edff7529d0baa6d7b38b58f46631c7b9f4136e (patch)
tree37729cd0a56ad31601fb573ccf3f5a2d7bee52e8
parent0324e74534241f3f00910ec04ef67de1fe1542f4 (diff)
parent80d8611dd07603736d14e4a942546bdc84dd5477 (diff)
Merge tag 'tty-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver updates from Greg KH: "Here's the big tty/serial driver update for 3.13-rc1. There's some more minor n_tty work here, but nothing like previous kernel releases. Also some new driver ids, driver updates for new hardware, and other small things. All of this has been in linux-next for a while with no issues" * tag 'tty-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (84 commits) serial: omap: fix missing comma serial: sh-sci: Enable the driver on all ARM platforms serial: mfd: Staticize local symbols serial: omap: fix a few checkpatch warnings serial: omap: improve RS-485 performance mrst_max3110: fix unbalanced IRQ issue during resume serial: omap: Add support for optional wake-up serial: sirf: remove duplicate defines tty: xuartps: Fix build error when COMMON_CLK is not set tty: xuartps: Fix build error due to missing forward declaration tty: xuartps: Fix "may be used uninitialized" build warning serial: 8250_pci: add Pericom PCIe Serial board Support (12d8:7952/4/8) - Chip PI7C9X7952/4/8 tty: xuartps: Update copyright information tty: xuartps: Implement suspend/resume callbacks tty: xuartps: Dynamically adjust to input frequency changes tty: xuartps: Updating set_baud_rate() tty: xuartps: Force enable the UART in xuartps_console_write tty: xuartps: support 64 byte FIFO size tty: xuartps: Add polled mode support for xuartps tty: xuartps: Implement BREAK detection, add SYSRQ support ...
-rw-r--r--Documentation/serial/driver4
-rw-r--r--Documentation/sysrq.txt28
-rw-r--r--drivers/tty/bfin_jtag_comm.c2
-rw-r--r--drivers/tty/hvc/hvc_dcc.c21
-rw-r--r--drivers/tty/hvc/hvc_vio.c5
-rw-r--r--drivers/tty/n_tty.c13
-rw-r--r--drivers/tty/nozomi.c6
-rw-r--r--drivers/tty/serial/8250/8250_core.c2
-rw-r--r--drivers/tty/serial/8250/8250_dw.c76
-rw-r--r--drivers/tty/serial/8250/8250_em.c6
-rw-r--r--drivers/tty/serial/8250/8250_pci.c347
-rw-r--r--drivers/tty/serial/Kconfig3
-rw-r--r--drivers/tty/serial/amba-pl010.c3
-rw-r--r--drivers/tty/serial/amba-pl011.c3
-rw-r--r--drivers/tty/serial/arc_uart.c2
-rw-r--r--drivers/tty/serial/atmel_serial.c19
-rw-r--r--drivers/tty/serial/bfin_sport_uart.c11
-rw-r--r--drivers/tty/serial/bfin_uart.c21
-rw-r--r--drivers/tty/serial/clps711x.c2
-rw-r--r--drivers/tty/serial/ifx6x60.c2
-rw-r--r--drivers/tty/serial/imx.c82
-rw-r--r--drivers/tty/serial/ip22zilog.c2
-rw-r--r--drivers/tty/serial/max310x.c2
-rw-r--r--drivers/tty/serial/mfd.c13
-rw-r--r--drivers/tty/serial/mpc52xx_uart.c5
-rw-r--r--drivers/tty/serial/mpsc.c2
-rw-r--r--drivers/tty/serial/mrst_max3110.c45
-rw-r--r--drivers/tty/serial/mxs-auart.c9
-rw-r--r--drivers/tty/serial/omap-serial.c141
-rw-r--r--drivers/tty/serial/pch_uart.c3
-rw-r--r--drivers/tty/serial/pmac_zilog.c2
-rw-r--r--drivers/tty/serial/sa1100.c5
-rw-r--r--drivers/tty/serial/samsung.c22
-rw-r--r--drivers/tty/serial/samsung.h2
-rw-r--r--drivers/tty/serial/sccnxp.c1
-rw-r--r--drivers/tty/serial/serial-tegra.c2
-rw-r--r--drivers/tty/serial/serial_txx9.c2
-rw-r--r--drivers/tty/serial/sirfsoc_uart.c11
-rw-r--r--drivers/tty/serial/sirfsoc_uart.h12
-rw-r--r--drivers/tty/serial/sunsab.c2
-rw-r--r--drivers/tty/serial/sunsu.c2
-rw-r--r--drivers/tty/serial/sunzilog.c6
-rw-r--r--drivers/tty/serial/ucc_uart.c2
-rw-r--r--drivers/tty/serial/xilinx_uartps.c551
-rw-r--r--drivers/tty/sysrq.c2
-rw-r--r--drivers/tty/tty_port.c10
-rw-r--r--drivers/tty/vt/vt.c33
-rw-r--r--include/linux/atmel_serial.h1
-rw-r--r--include/linux/serial_core.h1
-rw-r--r--include/linux/sysrq.h3
-rw-r--r--include/linux/tty.h1
-rw-r--r--kernel/sysctl.c2
-rw-r--r--lib/Kconfig.debug9
53 files changed, 1200 insertions, 364 deletions
diff --git a/Documentation/serial/driver b/Documentation/serial/driver
index 067c47d46917..c3a7689a90e6 100644
--- a/Documentation/serial/driver
+++ b/Documentation/serial/driver
@@ -264,10 +264,6 @@ hardware.
264 Locking: none. 264 Locking: none.
265 Interrupts: caller dependent. 265 Interrupts: caller dependent.
266 266
267 set_wake(port,state)
268 Enable/disable power management wakeup on serial activity. Not
269 currently implemented.
270
271 type(port) 267 type(port)
272 Return a pointer to a string constant describing the specified 268 Return a pointer to a string constant describing the specified
273 port, or return NULL, in which case the string 'unknown' is 269 port, or return NULL, in which case the string 'unknown' is
diff --git a/Documentation/sysrq.txt b/Documentation/sysrq.txt
index 8cb4d7842a5f..0e307c94809a 100644
--- a/Documentation/sysrq.txt
+++ b/Documentation/sysrq.txt
@@ -11,27 +11,29 @@ regardless of whatever else it is doing, unless it is completely locked up.
11You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when 11You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
12configuring the kernel. When running a kernel with SysRq compiled in, 12configuring the kernel. When running a kernel with SysRq compiled in,
13/proc/sys/kernel/sysrq controls the functions allowed to be invoked via 13/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
14the SysRq key. By default the file contains 1 which means that every 14the SysRq key. The default value in this file is set by the
15possible SysRq request is allowed (in older versions SysRq was disabled 15CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE config symbol, which itself defaults
16by default, and you were required to specifically enable it at run-time 16to 1. Here is the list of possible values in /proc/sys/kernel/sysrq:
17but this is not the case any more). Here is the list of possible values
18in /proc/sys/kernel/sysrq:
19 0 - disable sysrq completely 17 0 - disable sysrq completely
20 1 - enable all functions of sysrq 18 1 - enable all functions of sysrq
21 >1 - bitmask of allowed sysrq functions (see below for detailed function 19 >1 - bitmask of allowed sysrq functions (see below for detailed function
22 description): 20 description):
23 2 - enable control of console logging level 21 2 = 0x2 - enable control of console logging level
24 4 - enable control of keyboard (SAK, unraw) 22 4 = 0x4 - enable control of keyboard (SAK, unraw)
25 8 - enable debugging dumps of processes etc. 23 8 = 0x8 - enable debugging dumps of processes etc.
26 16 - enable sync command 24 16 = 0x10 - enable sync command
27 32 - enable remount read-only 25 32 = 0x20 - enable remount read-only
28 64 - enable signalling of processes (term, kill, oom-kill) 26 64 = 0x40 - enable signalling of processes (term, kill, oom-kill)
29 128 - allow reboot/poweroff 27 128 = 0x80 - allow reboot/poweroff
30 256 - allow nicing of all RT tasks 28 256 = 0x100 - allow nicing of all RT tasks
31 29
32You can set the value in the file by the following command: 30You can set the value in the file by the following command:
33 echo "number" >/proc/sys/kernel/sysrq 31 echo "number" >/proc/sys/kernel/sysrq
34 32
33The number may be written here either as decimal or as hexadecimal
34with the 0x prefix. CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE must always be
35written in hexadecimal.
36
35Note that the value of /proc/sys/kernel/sysrq influences only the invocation 37Note that the value of /proc/sys/kernel/sysrq influences only the invocation
36via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always 38via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
37allowed (by a user with admin privileges). 39allowed (by a user with admin privileges).
diff --git a/drivers/tty/bfin_jtag_comm.c b/drivers/tty/bfin_jtag_comm.c
index a93a424873fa..8096fcbe2dc1 100644
--- a/drivers/tty/bfin_jtag_comm.c
+++ b/drivers/tty/bfin_jtag_comm.c
@@ -349,7 +349,7 @@ bfin_jc_early_write(struct console *co, const char *buf, unsigned int count)
349 bfin_jc_straight_buffer_write(buf, count); 349 bfin_jc_straight_buffer_write(buf, count);
350} 350}
351 351
352static struct __initdata console bfin_jc_early_console = { 352static struct console bfin_jc_early_console __initdata = {
353 .name = "early_BFJC", 353 .name = "early_BFJC",
354 .write = bfin_jc_early_write, 354 .write = bfin_jc_early_write,
355 .flags = CON_ANYTIME | CON_PRINTBUFFER, 355 .flags = CON_ANYTIME | CON_PRINTBUFFER,
diff --git a/drivers/tty/hvc/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c
index 44fbebab5075..3502a7bbb69e 100644
--- a/drivers/tty/hvc/hvc_dcc.c
+++ b/drivers/tty/hvc/hvc_dcc.c
@@ -86,6 +86,21 @@ static int hvc_dcc_get_chars(uint32_t vt, char *buf, int count)
86 return i; 86 return i;
87} 87}
88 88
89static bool hvc_dcc_check(void)
90{
91 unsigned long time = jiffies + (HZ / 10);
92
93 /* Write a test character to check if it is handled */
94 __dcc_putchar('\n');
95
96 while (time_is_after_jiffies(time)) {
97 if (!(__dcc_getstatus() & DCC_STATUS_TX))
98 return true;
99 }
100
101 return false;
102}
103
89static const struct hv_ops hvc_dcc_get_put_ops = { 104static const struct hv_ops hvc_dcc_get_put_ops = {
90 .get_chars = hvc_dcc_get_chars, 105 .get_chars = hvc_dcc_get_chars,
91 .put_chars = hvc_dcc_put_chars, 106 .put_chars = hvc_dcc_put_chars,
@@ -93,6 +10