You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'tty-4.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial updates from Greg KH:
"Here is the large tty/serial patchset for 4.13-rc1.
A lot of tty and serial driver updates are in here, along with some
fixups for some __get/put_user usages that were reported. Nothing
huge, just lots of development by a number of different developers,
full details in the shortlog.
All of these have been in linux-next for a while"
* tag 'tty-4.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (71 commits)
tty: serial: lpuart: add a more accurate baud rate calculation method
tty: serial: lpuart: add earlycon support for imx7ulp
tty: serial: lpuart: add imx7ulp support
dt-bindings: serial: fsl-lpuart: add i.MX7ULP support
tty: serial: lpuart: add little endian 32 bit register support
tty: serial: lpuart: refactor lpuart32_{read|write} prototype
tty: serial: lpuart: introduce lpuart_soc_data to represent SoC property
serial: imx-serial - move DMA buffer configuration to DT
serial: imx: Enable RTSD only when needed
serial: imx: Remove unused members from imx_port struct
serial: 8250: 8250_omap: Fix race b/w dma completion and RX timeout
serial: 8250: Fix THRE flag usage for CAP_MINI
tty/serial: meson_uart: update to stable bindings
dt-bindings: serial: Add bindings for the Amlogic Meson UARTs
serial: Delete dead code for CIR serial ports
serial: sirf: make of_device_ids const
serial/mpsc: switch to dma_alloc_attrs
tty: serial: Add Actions Semi Owl UART earlycon
dt-bindings: serial: Document Actions Semi Owl UARTs
tty/serial: atmel: make the driver DT only
...
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
What: /sys/bus/platform/drivers/aspeed-vuart/*/lpc_address
|
||||
Date: April 2017
|
||||
Contact: Jeremy Kerr <jk@ozlabs.org>
|
||||
Description: Configures which IO port the host side of the UART
|
||||
will appear on the host <-> BMC LPC bus.
|
||||
Users: OpenBMC. Proposed changes should be mailed to
|
||||
openbmc@lists.ozlabs.org
|
||||
|
||||
What: /sys/bus/platform/drivers/aspeed-vuart*/sirq
|
||||
Date: April 2017
|
||||
Contact: Jeremy Kerr <jk@ozlabs.org>
|
||||
Description: Configures which interrupt number the host side of
|
||||
the UART will appear on the host <-> BMC LPC bus.
|
||||
Users: OpenBMC. Proposed changes should be mailed to
|
||||
openbmc@lists.ozlabs.org
|
||||
@@ -954,6 +954,12 @@
|
||||
must already be setup and configured. Options are not
|
||||
yet supported.
|
||||
|
||||
owl,<addr>
|
||||
Start an early, polled-mode console on a serial port
|
||||
of an Actions Semi SoC, such as S500 or S900, at the
|
||||
specified address. The serial port must already be
|
||||
setup and configured. Options are not yet supported.
|
||||
|
||||
smh Use ARM semihosting calls for early console.
|
||||
|
||||
s3c2410,<addr>
|
||||
|
||||
@@ -20,6 +20,8 @@ Required properties:
|
||||
- "fsl,16550-FIFO64"
|
||||
- "fsl,ns16550"
|
||||
- "ti,da830-uart"
|
||||
- "aspeed,ast2400-vuart"
|
||||
- "aspeed,ast2500-vuart"
|
||||
- "serial" if the port type is unknown.
|
||||
- reg : offset and length of the register set for the device.
|
||||
- interrupts : should contain uart interrupt.
|
||||
@@ -45,6 +47,7 @@ Optional properties:
|
||||
property.
|
||||
- tx-threshold: Specify the TX FIFO low water indication for parts with
|
||||
programmable TX FIFO thresholds.
|
||||
- resets : phandle + reset specifier pairs
|
||||
|
||||
Note:
|
||||
* fsl,ns16550:
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
Actions Semi Owl UART
|
||||
|
||||
Required properties:
|
||||
- compatible : "actions,s500-uart", "actions,owl-uart" for S500
|
||||
"actions,s900-uart", "actions,owl-uart" for S900
|
||||
- reg : Offset and length of the register set for the device.
|
||||
- interrupts : Should contain UART interrupt.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
uart3: serial@b0126000 {
|
||||
compatible = "actions,s500-uart", "actions,owl-uart";
|
||||
reg = <0xb0126000 0x1000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
@@ -0,0 +1,38 @@
|
||||
Amlogic Meson SoC UART Serial Interface
|
||||
=======================================
|
||||
|
||||
The Amlogic Meson SoC UART Serial Interface is present on a large range
|
||||
of SoCs, and can be present either in the "Always-On" power domain or the
|
||||
"Everything-Else" power domain.
|
||||
|
||||
The particularity of the "Always-On" Serial Interface is that the hardware
|
||||
is active since power-on and does not need any clock gating and is usable
|
||||
as very early serial console.
|
||||
|
||||
Required properties:
|
||||
- compatible : compatible: value should be different for each SoC family as :
|
||||
- Meson6 : "amlogic,meson6-uart"
|
||||
- Meson8 : "amlogic,meson8-uart"
|
||||
- Meson8b : "amlogic,meson8b-uart"
|
||||
- GX (GXBB, GXL, GXM) : "amlogic,meson-gx-uart"
|
||||
eventually followed by : "amlogic,meson-ao-uart" if this UART interface
|
||||
is in the "Always-On" power domain.
|
||||
- reg : offset and length of the register set for the device.
|
||||
- interrupts : identifier to the device interrupt
|
||||
- clocks : a list of phandle + clock-specifier pairs, one for each
|
||||
entry in clock names.
|
||||
- clocks-names :
|
||||
* "xtal" for external xtal clock identifier
|
||||
* "pclk" for the bus core clock, either the clk81 clock or the gate clock
|
||||
* "baud" for the source of the baudrate generator, can be either the xtal
|
||||
or the pclk.
|
||||
|
||||
e.g.
|
||||
uart_A: serial@84c0 {
|
||||
compatible = "amlogic,meson-gx-uart";
|
||||
reg = <0x0 0x84c0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
|
||||
/* Use xtal as baud rate clock source */
|
||||
clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
@@ -9,6 +9,7 @@ Optional properties:
|
||||
- fsl,irda-mode : Indicate the uart supports irda mode
|
||||
- fsl,dte-mode : Indicate the uart works in DTE mode. The uart works
|
||||
in DCE mode by default.
|
||||
- fsl,dma-size : Indicate the size of the DMA buffer and its periods
|
||||
|
||||
Please check Documentation/devicetree/bindings/serial/serial.txt
|
||||
for the complete list of generic properties.
|
||||
@@ -28,4 +29,5 @@ uart1: serial@73fbc000 {
|
||||
interrupts = <31>;
|
||||
uart-has-rtscts;
|
||||
fsl,dte-mode;
|
||||
fsl,dma-size = <1024 4>;
|
||||
};
|
||||
|
||||
@@ -6,6 +6,8 @@ Required properties:
|
||||
on Vybrid vf610 SoC with 8-bit register organization
|
||||
- "fsl,ls1021a-lpuart" for lpuart compatible with the one integrated
|
||||
on LS1021A SoC with 32-bit big-endian register organization
|
||||
- "fsl,imx7ulp-lpuart" for lpuart compatible with the one integrated
|
||||
on i.MX7ULP SoC with 32-bit little-endian register organization
|
||||
- reg : Address and length of the register set for the device
|
||||
- interrupts : Should contain uart interrupt
|
||||
- clocks : phandle + clock specifier pairs, one for each entry in clock-names
|
||||
|
||||
@@ -77,6 +77,13 @@ for example, it's possible :
|
||||
|
||||
6- first close all virtual ports before closing the physical port.
|
||||
|
||||
Note that after closing the physical port the modem is still in multiplexing
|
||||
mode. This may prevent a successful re-opening of the port later. To avoid
|
||||
this situation either reset the modem if your hardware allows that or send
|
||||
a disconnect command frame manually before initializing the multiplexing mode
|
||||
for the second time. The byte sequence for the disconnect command frame is:
|
||||
0xf9, 0x03, 0xef, 0x03, 0xc3, 0x16, 0xf9.
|
||||
|
||||
Additional Documentation
|
||||
------------------------
|
||||
More practical details on the protocol and how it's supported by industrial
|
||||
|
||||
+1
-1
@@ -8446,7 +8446,7 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git
|
||||
S: Supported
|
||||
F: arch/microblaze/
|
||||
|
||||
MICROCHIP / ATMEL AT91 / AT32 SERIAL DRIVER
|
||||
MICROCHIP / ATMEL AT91 SERIAL DRIVER
|
||||
M: Richard Genoud <richard.genoud@gmail.com>
|
||||
S: Maintained
|
||||
F: drivers/tty/serial/atmel_serial.c
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */
|
||||
#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */
|
||||
#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */
|
||||
#define TIOCGPTPEER _IOR('T', 0x41, int) /* Safely open the slave */
|
||||
|
||||
#define TIOCSERCONFIG 0x5453
|
||||
#define TIOCSERGWILD 0x5454
|
||||
|
||||
@@ -387,19 +387,6 @@ static int activate(struct tty_port *port, struct tty_struct *tty)
|
||||
}
|
||||
|
||||
state->xmit.head = state->xmit.tail = 0;
|
||||
|
||||
/*
|
||||
* Set up the tty->alt_speed kludge
|
||||
*/
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI)
|
||||
tty->alt_speed = 57600;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI)
|
||||
tty->alt_speed = 115200;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_SHI)
|
||||
tty->alt_speed = 230400;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_WARP)
|
||||
tty->alt_speed = 460800;
|
||||
|
||||
errout:
|
||||
local_irq_restore(flags);
|
||||
return retval;
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */
|
||||
#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */
|
||||
#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */
|
||||
#define TIOCGPTPEER _IOR('T', 0x41, int) /* Safely open the slave */
|
||||
|
||||
/* I hope the range from 0x5480 on is free ... */
|
||||
#define TIOCSCTTY 0x5480 /* become controlling tty */
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */
|
||||
#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */
|
||||
#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */
|
||||
#define TIOCGPTPEER _IOR('T', 0x41, int) /* Safely open the slave */
|
||||
|
||||
#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
|
||||
#define FIOCLEX 0x5451
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */
|
||||
#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */
|
||||
#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */
|
||||
#define TIOCGPTPEER _IOR('T', 0x41, int) /* Safely open the slave */
|
||||
|
||||
#define TIOCSERCONFIG 0x5453
|
||||
#define TIOCSERGWILD 0x5454
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */
|
||||
#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */
|
||||
#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */
|
||||
#define TIOCGPTPEER _IOR('T', 0x41, int) /* Safely open the slave */
|
||||
|
||||
#define TIOCSERCONFIG _IO('T', 83) /* 0x5453 */
|
||||
#define TIOCSERGWILD _IOR('T', 84, int) /* 0x5454 */
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#define TIOCGRS485 _IOR('T', 0x41, struct serial_rs485)
|
||||
#define TIOCSRS485 _IOWR('T', 0x42, struct serial_rs485)
|
||||
|
||||
/* Note that all the ioctls that are not available in Linux have a
|
||||
/* Note that all the ioctls that are not available in Linux have a
|
||||
* double underscore on the front to: a) avoid some programs to
|
||||
* think we support some ioctls under Linux (autoconfiguration stuff)
|
||||
*/
|
||||
@@ -88,6 +88,7 @@
|
||||
#define TIOCGPTN _IOR('t', 134, unsigned int) /* Get Pty Number */
|
||||
#define TIOCSPTLCK _IOW('t', 135, int) /* Lock/unlock PTY */
|
||||
#define TIOCSIG _IOW('t', 136, int) /* Generate signal on Pty slave */
|
||||
#define TIOCGPTPEER _IOR('t', 137, int) /* Safely open the slave */
|
||||
|
||||
/* Little f */
|
||||
#define FIOCLEX _IO('f', 1)
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
#define TIOCGPKT _IOR('T', 0x38, int) /* Get packet mode state */
|
||||
#define TIOCGPTLCK _IOR('T', 0x39, int) /* Get Pty lock state */
|
||||
#define TIOCGEXCL _IOR('T', 0x40, int) /* Get exclusive mode state */
|
||||
#define TIOCGPTPEER _IOR('T', 0x41, int) /* Safely open the slave */
|
||||
|
||||
#define TIOCSERCONFIG _IO('T', 83)
|
||||
#define TIOCSERGWILD _IOR('T', 84, int)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
obj-$(CONFIG_TTY) += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \
|
||||
tty_buffer.o tty_port.o tty_mutex.o \
|
||||
tty_ldsem.o tty_baudrate.o tty_jobctrl.o
|
||||
tty_ldsem.o tty_baudrate.o tty_jobctrl.o \
|
||||
n_null.o
|
||||
obj-$(CONFIG_LEGACY_PTYS) += pty.o
|
||||
obj-$(CONFIG_UNIX98_PTYS) += pty.o
|
||||
obj-$(CONFIG_AUDIT) += tty_audit.o
|
||||
|
||||
+3
-20
@@ -569,18 +569,6 @@ static int startup(struct tty_struct *tty, struct serial_state *info)
|
||||
clear_bit(TTY_IO_ERROR, &tty->flags);
|
||||
info->xmit.head = info->xmit.tail = 0;
|
||||
|
||||
/*
|
||||
* Set up the tty->alt_speed kludge
|
||||
*/
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI)
|
||||
tty->alt_speed = 57600;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI)
|
||||
tty->alt_speed = 115200;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_SHI)
|
||||
tty->alt_speed = 230400;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_WARP)
|
||||
tty->alt_speed = 460800;
|
||||
|
||||
/*
|
||||
* and set the speed of the serial port
|
||||
*/
|
||||
@@ -1084,14 +1072,9 @@ static int set_serial_info(struct tty_struct *tty, struct serial_state *state,
|
||||
check_and_exit:
|
||||
if (tty_port_initialized(port)) {
|
||||
if (change_spd) {
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI)
|
||||
tty->alt_speed = 57600;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI)
|
||||
tty->alt_speed = 115200;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_SHI)
|
||||
tty->alt_speed = 230400;
|
||||
if ((port->flags & ASYNC_SPD_MASK) == ASYNC_SPD_WARP)
|
||||
tty->alt_speed = 460800;
|
||||
/* warn about deprecation unless clearing */
|
||||
if (new_serial.flags & ASYNC_SPD_MASK)
|
||||
dev_warn_ratelimited(tty->dev, "use of SPD flags is deprecated\n");
|
||||
change_speed(tty, state, NULL);
|
||||
}
|
||||
} else
|
||||
|
||||
+9
-12
@@ -1975,18 +1975,6 @@ static void cy_set_line_char(struct cyclades_port *info, struct tty_struct *tty)
|
||||
cflag = tty->termios.c_cflag;
|
||||
iflag = tty->termios.c_iflag;
|
||||
|
||||
/*
|
||||
* Set up the tty->alt_speed kludge
|
||||
*/
|
||||
if ((info->port.flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI)
|
||||
tty->alt_speed = 57600;
|
||||
if ((info->port.flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI)
|
||||
tty->alt_speed = 115200;
|
||||
if ((info->port.flags & ASYNC_SPD_MASK) == ASYNC_SPD_SHI)
|
||||
tty->alt_speed = 230400;
|
||||
if ((info->port.flags & ASYNC_SPD_MASK) == ASYNC_SPD_WARP)
|
||||
tty->alt_speed = 460800;
|
||||
|
||||
card = info->card;
|
||||
channel = info->line - card->first_line;
|
||||
|
||||
@@ -2295,12 +2283,16 @@ cy_set_serial_info(struct cyclades_port *info, struct tty_struct *tty,
|
||||
struct serial_struct __user *new_info)
|
||||
{
|
||||
struct serial_struct new_serial;
|
||||
int old_flags;
|
||||
int ret;
|
||||
|
||||
if (copy_from_user(&new_serial, new_info, sizeof(new_serial)))
|
||||
return -EFAULT;
|
||||
|
||||
mutex_lock(&info->port.mutex);
|
||||
|
||||
old_flags = info->port.flags;
|
||||
|
||||
if (!capable(CAP_SYS_ADMIN)) {
|
||||
if (new_serial.close_delay != info->port.close_delay ||
|
||||
new_serial.baud_base != info->baud ||
|
||||
@@ -2332,6 +2324,11 @@ cy_set_serial_info(struct cyclades_port *info, struct tty_struct *tty,
|
||||
|
||||
check_and_exit:
|
||||
if (tty_port_initialized(&info->port)) {
|
||||
if ((new_serial.flags ^ old_flags) & ASYNC_SPD_MASK) {
|
||||
/* warn about deprecation unless clearing */
|
||||
if (new_serial.flags & ASYNC_SPD_MASK)
|
||||
dev_warn_ratelimited(tty->dev, "use of SPD flags is deprecated\n");
|
||||
}
|
||||
cy_set_line_char(info, tty);
|
||||
ret = 0;
|
||||
} else {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user