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

Commit 3b9abc7e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
  TTY: ldisc, wait for ldisc infinitely in hangup
  TTY: ldisc, move wait idle to caller
  TTY: ldisc, allow waiting for ldisc arbitrarily long
  Revert "tty/serial: Prevent drop of DCD on suspend for Tegra UARTs"
  RS485: fix inconsistencies in the meaning of some variables
  pch_uart: Fix DMA resource leak issue
  serial,mfd: Fix CMSPAR setup
  tty/serial: Prevent drop of DCD on suspend for Tegra UARTs
  pch_uart: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor
  pch_uart: Support new device LAPIS Semiconductor ML7831 IOH
  pch_uart: Fix hw-flow control issue
  tty: hvc_dcc: Fix duplicate character inputs
  jsm: Change maintainership
parents 0cda5696 0c73c08e
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -97,15 +97,23 @@

	struct serial_rs485 rs485conf;

	/* Set RS485 mode: */
	/* Enable RS485 mode: */
	rs485conf.flags |= SER_RS485_ENABLED;

	/* Set logical level for RTS pin equal to 1 when sending: */
	rs485conf.flags |= SER_RS485_RTS_ON_SEND;
	/* or, set logical level for RTS pin equal to 0 when sending: */
	rs485conf.flags &= ~(SER_RS485_RTS_ON_SEND);

	/* Set logical level for RTS pin equal to 1 after sending: */
	rs485conf.flags |= SER_RS485_RTS_AFTER_SEND;
	/* or, set logical level for RTS pin equal to 0 after sending: */
	rs485conf.flags &= ~(SER_RS485_RTS_AFTER_SEND);

	/* Set rts delay before send, if needed: */
	rs485conf.flags |= SER_RS485_RTS_BEFORE_SEND;
	rs485conf.delay_rts_before_send = ...;

	/* Set rts delay after send, if needed: */
	rs485conf.flags |= SER_RS485_RTS_AFTER_SEND;
	rs485conf.delay_rts_after_send = ...;

	/* Set this flag if you want to receive data even whilst sending data */
+1 −1
Original line number Diff line number Diff line
@@ -3728,7 +3728,7 @@ F: fs/jbd2/
F:	include/linux/jbd2.h

JSM Neo PCI based serial card
M:	Breno Leitao <leitao@linux.vnet.ibm.com>
M:	Lucas Tavares <lucaskt@linux.vnet.ibm.com>
L:	linux-serial@vger.kernel.org
S:	Maintained
F:	drivers/tty/serial/jsm/
+2 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ static inline char __dcc_getchar(void)

	asm volatile("mrc p14, 0, %0, c0, c5, 0	@ read comms data reg"
		: "=r" (__c));
	isb();

	return __c;
}
@@ -55,6 +56,7 @@ static inline void __dcc_putchar(char c)
	asm volatile("mcr p14, 0, %0, c0, c5, 0	@ write a char"
		: /* no output register */
		: "r" (c));
	isb();
}

static int hvc_dcc_put_chars(uint32_t vt, const char *buf, int count)
+7 −7
Original line number Diff line number Diff line
@@ -1560,7 +1560,7 @@ config SERIAL_IFX6X60
	  Support for the IFX6x60 modem devices on Intel MID platforms.

config SERIAL_PCH_UART
	tristate "Intel EG20T PCH / OKI SEMICONDUCTOR IOH(ML7213/ML7223) UART"
	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) UART"
	depends on PCI
	select SERIAL_CORE
	help
@@ -1568,12 +1568,12 @@ config SERIAL_PCH_UART
	  which is an IOH(Input/Output Hub) for x86 embedded processor.
	  Enabling PCH_DMA, this PCH UART works as DMA mode.

	  This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
	  Output Hub), ML7213 and ML7223.
	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is
	  for MP(Media Phone) use.
	  ML7213/ML7223 is companion chip for Intel Atom E6xx series.
	  ML7213/ML7223 is completely compatible for Intel EG20T PCH.
	  This driver also can be used for LAPIS Semiconductor IOH(Input/
	  Output Hub), ML7213, ML7223 and ML7831.
	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.

config SERIAL_MSM_SMD
	bool "Enable tty device interface for some SMD ports"
+3 −13
Original line number Diff line number Diff line
@@ -228,7 +228,7 @@ void atmel_config_rs485(struct uart_port *port, struct serial_rs485 *rs485conf)
	if (rs485conf->flags & SER_RS485_ENABLED) {
		dev_dbg(port->dev, "Setting UART to RS485\n");
		atmel_port->tx_done_mask = ATMEL_US_TXEMPTY;
		if (rs485conf->flags & SER_RS485_RTS_AFTER_SEND)
		if ((rs485conf->delay_rts_after_send) > 0)
			UART_PUT_TTGR(port, rs485conf->delay_rts_after_send);
		mode |= ATMEL_US_USMODE_RS485;
	} else {
@@ -304,7 +304,7 @@ static void atmel_set_mctrl(struct uart_port *port, u_int mctrl)

	if (atmel_port->rs485.flags & SER_RS485_ENABLED) {
		dev_dbg(port->dev, "Setting UART to RS485\n");
		if (atmel_port->rs485.flags & SER_RS485_RTS_AFTER_SEND)
		if ((atmel_port->rs485.delay_rts_after_send) > 0)
			UART_PUT_TTGR(port,
					atmel_port->rs485.delay_rts_after_send);
		mode |= ATMEL_US_USMODE_RS485;
@@ -1228,7 +1228,7 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios,

	if (atmel_port->rs485.flags & SER_RS485_ENABLED) {
		dev_dbg(port->dev, "Setting UART to RS485\n");
		if (atmel_port->rs485.flags & SER_RS485_RTS_AFTER_SEND)
		if ((atmel_port->rs485.delay_rts_after_send) > 0)
			UART_PUT_TTGR(port,
					atmel_port->rs485.delay_rts_after_send);
		mode |= ATMEL_US_USMODE_RS485;
@@ -1447,16 +1447,6 @@ static void __devinit atmel_of_init_port(struct atmel_uart_port *atmel_port,
		rs485conf->delay_rts_after_send = rs485_delay[1];
		rs485conf->flags = 0;

		if (rs485conf->delay_rts_before_send == 0 &&
		    rs485conf->delay_rts_after_send == 0) {
			rs485conf->flags |= SER_RS485_RTS_ON_SEND;
		} else {
			if (rs485conf->delay_rts_before_send)
				rs485conf->flags |= SER_RS485_RTS_BEFORE_SEND;
			if (rs485conf->delay_rts_after_send)
				rs485conf->flags |= SER_RS485_RTS_AFTER_SEND;
		}

		if (of_get_property(np, "rs485-rx-during-tx", NULL))
			rs485conf->flags |= SER_RS485_RX_DURING_TX;

Loading