Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56edff75 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
  ...
parents 0324e745 80d8611d
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -264,10 +264,6 @@ hardware.
	Locking: none.
	Locking: none.
	Interrupts: caller dependent.
	Interrupts: caller dependent.


  set_wake(port,state)
	Enable/disable power management wakeup on serial activity.  Not
	currently implemented.

  type(port)
  type(port)
	Return a pointer to a string constant describing the specified
	Return a pointer to a string constant describing the specified
	port, or return NULL, in which case the string 'unknown' is
	port, or return NULL, in which case the string 'unknown' is
+15 −13
Original line number Original line Diff line number Diff line
@@ -11,27 +11,29 @@ regardless of whatever else it is doing, unless it is completely locked up.
You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
configuring the kernel. When running a kernel with SysRq compiled in,
configuring the kernel. When running a kernel with SysRq compiled in,
/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
the SysRq key. By default the file contains 1 which means that every
the SysRq key. The default value in this file is set by the
possible SysRq request is allowed (in older versions SysRq was disabled
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE config symbol, which itself defaults
by default, and you were required to specifically enable it at run-time
to 1. Here is the list of possible values in /proc/sys/kernel/sysrq:
but this is not the case any more). Here is the list of possible values
in /proc/sys/kernel/sysrq:
   0 - disable sysrq completely
   0 - disable sysrq completely
   1 - enable all functions of sysrq
   1 - enable all functions of sysrq
  >1 - bitmask of allowed sysrq functions (see below for detailed function
  >1 - bitmask of allowed sysrq functions (see below for detailed function
       description):
       description):
          2 - enable control of console logging level
          2 =   0x2 - enable control of console logging level
          4 - enable control of keyboard (SAK, unraw)
          4 =   0x4 - enable control of keyboard (SAK, unraw)
          8 - enable debugging dumps of processes etc.
          8 =   0x8 - enable debugging dumps of processes etc.
         16 - enable sync command
         16 =  0x10 - enable sync command
         32 - enable remount read-only
         32 =  0x20 - enable remount read-only
         64 - enable signalling of processes (term, kill, oom-kill)
         64 =  0x40 - enable signalling of processes (term, kill, oom-kill)
        128 - allow reboot/poweroff
        128 =  0x80 - allow reboot/poweroff
        256 - allow nicing of all RT tasks
        256 = 0x100 - allow nicing of all RT tasks


You can set the value in the file by the following command:
You can set the value in the file by the following command:
    echo "number" >/proc/sys/kernel/sysrq
    echo "number" >/proc/sys/kernel/sysrq


The number may be written here either as decimal or as hexadecimal
with the 0x prefix. CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE must always be
written in hexadecimal.

Note that the value of /proc/sys/kernel/sysrq influences only the invocation
Note that the value of /proc/sys/kernel/sysrq influences only the invocation
via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
allowed (by a user with admin privileges).
allowed (by a user with admin privileges).
+1 −1
Original line number Original line Diff line number Diff line
@@ -349,7 +349,7 @@ bfin_jc_early_write(struct console *co, const char *buf, unsigned int count)
	bfin_jc_straight_buffer_write(buf, count);
	bfin_jc_straight_buffer_write(buf, count);
}
}


static struct __initdata console bfin_jc_early_console = {
static struct console bfin_jc_early_console __initdata = {
	.name   = "early_BFJC",
	.name   = "early_BFJC",
	.write   = bfin_jc_early_write,
	.write   = bfin_jc_early_write,
	.flags   = CON_ANYTIME | CON_PRINTBUFFER,
	.flags   = CON_ANYTIME | CON_PRINTBUFFER,
+21 −0
Original line number Original line Diff line number Diff line
@@ -86,6 +86,21 @@ static int hvc_dcc_get_chars(uint32_t vt, char *buf, int count)
	return i;
	return i;
}
}


static bool hvc_dcc_check(void)
{
	unsigned long time = jiffies + (HZ / 10);

	/* Write a test character to check if it is handled */
	__dcc_putchar('\n');

	while (time_is_after_jiffies(time)) {
		if (!(__dcc_getstatus() & DCC_STATUS_TX))
			return true;
	}

	return false;
}

static const struct hv_ops hvc_dcc_get_put_ops = {
static const struct hv_ops hvc_dcc_get_put_ops = {
	.get_chars = hvc_dcc_get_chars,
	.get_chars = hvc_dcc_get_chars,
	.put_chars = hvc_dcc_put_chars,
	.put_chars = hvc_dcc_put_chars,
@@ -93,6 +108,9 @@ static const struct hv_ops hvc_dcc_get_put_ops = {


static int __init hvc_dcc_console_init(void)
static int __init hvc_dcc_console_init(void)
{
{
	if (!hvc_dcc_check())
		return -ENODEV;

	hvc_instantiate(0, 0, &hvc_dcc_get_put_ops);
	hvc_instantiate(0, 0, &hvc_dcc_get_put_ops);
	return 0;
	return 0;
}
}
@@ -100,6 +118,9 @@ console_initcall(hvc_dcc_console_init);


static int __init hvc_dcc_init(void)
static int __init hvc_dcc_init(void)
{
{
	if (!hvc_dcc_check())
		return -ENODEV;

	hvc_alloc(0, 0, &hvc_dcc_get_put_ops, 128);
	hvc_alloc(0, 0, &hvc_dcc_get_put_ops, 128);
	return 0;
	return 0;
}
}
+4 −1
Original line number Original line Diff line number Diff line
@@ -48,6 +48,7 @@
#include <asm/prom.h>
#include <asm/prom.h>
#include <asm/hvsi.h>
#include <asm/hvsi.h>
#include <asm/udbg.h>
#include <asm/udbg.h>
#include <asm/machdep.h>


#include "hvc_console.h"
#include "hvc_console.h"


@@ -457,6 +458,8 @@ void __init hvc_vio_init_early(void)
	if (hvterm_priv0.proto == HV_PROTOCOL_HVSI)
	if (hvterm_priv0.proto == HV_PROTOCOL_HVSI)
		goto out;
		goto out;
#endif
#endif
	/* Check whether the user has requested a different console. */
	if (!strstr(cmd_line, "console="))
		add_preferred_console("hvc", 0, NULL);
		add_preferred_console("hvc", 0, NULL);
	hvc_instantiate(0, 0, ops);
	hvc_instantiate(0, 0, ops);
out:
out:
Loading