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

Commit 21eaab6d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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.
parents 74e1a2a3 9e17df37
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
NVIDIA Tegra20/Tegra30 high speed (DMA based) UART controller driver.

Required properties:
- compatible : should be "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
- reg: Should contain UART controller registers location and length.
- interrupts: Should contain UART controller interrupts.
- nvidia,dma-request-selector : The Tegra DMA controller's phandle and
  request selector for this UART controller.

Optional properties:
- nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable
		only if all 8 lines of UART controller are pinmuxed.

Example:

serial@70006000 {
	compatible = "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart";
	reg = <0x70006000 0x40>;
	reg-shift = <2>;
	interrupts = <0 36 0x04>;
	nvidia,dma-request-selector = <&apbdma 8>;
	nvidia,enable-modem-interrupt;
	status = "disabled";
};
+26 −0
Original line number Diff line number Diff line
* Synopsys ARC UART : Non standard UART used in some of the ARC FPGA boards

Required properties:
- compatible		: "snps,arc-uart"
- reg			: offset and length of the register set for the device.
- interrupts		: device interrupt
- clock-frequency	: the input clock frequency for the UART
- current-speed		: baud rate for UART

e.g.

arcuart0: serial@c0fc1000 {
	compatible = "snps,arc-uart";
	reg = <0xc0fc1000 0x100>;
	interrupts = <5>;
	clock-frequency = <80000000>;
	current-speed = <115200>;
	status = "okay";
};

Note: Each port should have an alias correctly numbered in "aliases" node.

e.g.
aliases {
	serial0 = &arcuart0;
};
+6 −0
Original line number Diff line number Diff line
@@ -5,10 +5,16 @@ Required properties:
- reg : Address and length of the register set
- interrupts : Should contain uart interrupt

Optional properties:
- location : Decides the location of the USART I/O pins.
  Allowed range : [0 .. 5]
  Default: 0

Example:

uart@0x4000c400 {
	compatible = "efm32,uart";
	reg = <0x4000c400 0x400>;
	interrupts = <15>;
	location = <0>;
};
+41 −3
Original line number Diff line number Diff line
@@ -133,6 +133,16 @@ hardware.
	Interrupts: locally disabled.
	This call must not sleep

  send_xchar(port,ch)
	Transmit a high priority character, even if the port is stopped.
	This is used to implement XON/XOFF flow control and tcflow().  If
	the serial driver does not implement this function, the tty core
	will append the character to the circular buffer and then call
	start_tx() / stop_tx() to flush the data out.

	Locking: none.
	Interrupts: caller dependent.

  stop_rx(port)
	Stop receiving characters; the port is in the process of
	being closed.
@@ -242,9 +252,8 @@ hardware.

  pm(port,state,oldstate)
	Perform any power management related activities on the specified
	port.  State indicates the new state (defined by ACPI D0-D3),
	oldstate indicates the previous state.  Essentially, D0 means
	fully on, D3 means powered down.
	port.  State indicates the new state (defined by
	enum uart_pm_state), oldstate indicates the previous state.

	This function should not be used to grab any resources.

@@ -255,6 +264,10 @@ hardware.
	Locking: none.
	Interrupts: caller dependent.

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

  type(port)
	Return a pointer to a string constant describing the specified
	port, or return NULL, in which case the string 'unknown' is
@@ -307,6 +320,31 @@ hardware.
	Locking: none.
	Interrupts: caller dependent.

  poll_init(port)
	Called by kgdb to perform the minimal hardware initialization needed
	to support poll_put_char() and poll_get_char().  Unlike ->startup()
	this should not request interrupts.

	Locking: tty_mutex and tty_port->mutex taken.
	Interrupts: n/a.

  poll_put_char(port,ch)
	Called by kgdb to write a single character directly to the serial
	port.  It can and should block until there is space in the TX FIFO.

	Locking: none.
	Interrupts: caller dependent.
	This call must not sleep

  poll_get_char(port)
	Called by kgdb to read a single character directly from the serial
	port.  If data is available, it should be returned; otherwise
	the function should return NO_POLL_CHAR immediately.

	Locking: none.
	Interrupts: caller dependent.
	This call must not sleep

Other functions
---------------

+2 −0
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ choice

config ALPHA_GENERIC
	bool "Generic"
	depends on TTY
	help
	  A generic kernel will run on all supported Alpha hardware.

@@ -490,6 +491,7 @@ config VGA_HOSE

config ALPHA_SRM
	bool "Use SRM as bootloader" if ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS || ALPHA_NONAME
	depends on TTY
	default y if ALPHA_JENSEN || ALPHA_MIKASA || ALPHA_SABLE || ALPHA_LYNX || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL
	---help---
	  There are two different types of booting firmware on Alphas: SRM,
Loading