Skip to content

Commit ddd0172

Browse files
committed
Merge tag 'tty-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver updates from Greg KH: "Here is the big set of serial and tty driver updates for 6.15-rc1. Include in here are the following: - more great tty layer cleanups from Jiri. Someday this will be done, but that's not going to be any year soon... - kdb debug driver reverts to fix a reported issue - lots of .dts binding updates for different devices with serial devices - lots of tiny updates and tweaks and a few bugfixes for different serial drivers. All of these have been in linux-next for a while with no reported issues" * tag 'tty-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (79 commits) tty: serial: fsl_lpuart: Fix unused variable 'sport' build warning serial: stm32: do not deassert RS485 RTS GPIO prematurely serial: 8250: add driver for NI UARTs dt-bindings: serial: snps-dw-apb-uart: document RZ/N1 binding without DMA serial: icom: fix code format problems serial: sh-sci: Save and restore more registers tty: serial: pl011: remove incorrect of_match_ptr annotation dt-bindings: serial: snps-dw-apb-uart: Add support for rk3562 tty: serial: lpuart: only disable CTS instead of overwriting the whole UARTMODIR register tty: caif: removed unused function debugfs_tx() serial: 8250_dma: terminate correct DMA in tx_dma_flush() tty: serial: fsl_lpuart: rename register variables more specifically tty: serial: fsl_lpuart: use port struct directly to simply code tty: serial: fsl_lpuart: Use u32 and u8 for register variables tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers tty: serial: 8250: Add Brainboxes XC devices dt-bindings: serial: fsl-lpuart: support i.MX94 tty: serial: 8250: Add some more device IDs dt-bindings: serial: samsung: add exynos7870-uart compatible serial: 8250_dw: Comment possible corner cases in serial_out() implementation ...
2 parents 2575798 + 9f8fe34 commit ddd0172

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2238
-1462
lines changed

Documentation/devicetree/bindings/serial/8250.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ properties:
7777
- altr,16550-FIFO64
7878
- altr,16550-FIFO128
7979
- fsl,16550-FIFO64
80-
- fsl,ns16550
8180
- andestech,uart16550
8281
- nxp,lpc1850-uart
8382
- opencores,uart16550-rtlsvn105
@@ -86,6 +85,7 @@ properties:
8685
- items:
8786
- enum:
8887
- ns16750
88+
- fsl,ns16550
8989
- cavium,octeon-3860-uart
9090
- xlnx,xps-uart16550-2.00.b
9191
- ralink,rt2880-uart

Documentation/devicetree/bindings/serial/fsl-lpuart.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ properties:
3030
- items:
3131
- enum:
3232
- fsl,imx93-lpuart
33+
- fsl,imx94-lpuart
3334
- fsl,imx95-lpuart
3435
- const: fsl,imx8ulp-lpuart
3536
- const: fsl,imx7ulp-lpuart
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/serial/nvidia,tegra264-utc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NVIDIA Tegra UTC (UART Trace Controller) client
8+
9+
maintainers:
10+
- Kartik Rajput <[email protected]>
11+
- Thierry Reding <[email protected]>
12+
- Jonathan Hunter <[email protected]>
13+
14+
description:
15+
Represents a client interface of the Tegra UTC (UART Trace Controller). The
16+
Tegra UTC allows multiple clients within the Tegra SoC to share a physical
17+
UART interface. It supports up to 16 clients. Each client operates as an
18+
independent UART endpoint with a dedicated interrupt and 128-character TX/RX
19+
FIFOs.
20+
21+
The Tegra UTC clients use 8-N-1 configuration and operates on a baudrate
22+
configured by the bootloader at the controller level.
23+
24+
allOf:
25+
- $ref: serial.yaml#
26+
27+
properties:
28+
compatible:
29+
const: nvidia,tegra264-utc
30+
31+
reg:
32+
items:
33+
- description: TX region.
34+
- description: RX region.
35+
36+
reg-names:
37+
items:
38+
- const: tx
39+
- const: rx
40+
41+
interrupts:
42+
maxItems: 1
43+
44+
tx-threshold:
45+
minimum: 1
46+
maximum: 128
47+
48+
rx-threshold:
49+
minimum: 1
50+
maximum: 128
51+
52+
required:
53+
- compatible
54+
- reg
55+
- reg-names
56+
- interrupts
57+
- tx-threshold
58+
- rx-threshold
59+
60+
additionalProperties: false
61+
62+
examples:
63+
- |
64+
#include <dt-bindings/interrupt-controller/arm-gic.h>
65+
66+
tegra_utc: serial@c4e0000 {
67+
compatible = "nvidia,tegra264-utc";
68+
reg = <0xc4e0000 0x8000>, <0xc4e8000 0x8000>;
69+
reg-names = "tx", "rx";
70+
interrupts = <GIC_SPI 514 IRQ_TYPE_LEVEL_HIGH>;
71+
tx-threshold = <4>;
72+
rx-threshold = <4>;
73+
};

Documentation/devicetree/bindings/serial/pl011.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ properties:
9292
3000ms.
9393
default: 3000
9494

95+
power-domains:
96+
maxItems: 1
97+
9598
resets:
9699
maxItems: 1
97100

Documentation/devicetree/bindings/serial/samsung_uart.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ properties:
4242
- samsung,exynosautov9-uart
4343
- samsung,exynosautov920-uart
4444
- const: samsung,exynos850-uart
45+
- items:
46+
- enum:
47+
- samsung,exynos7870-uart
48+
- const: samsung,exynos8895-uart
4549

4650
reg:
4751
maxItems: 1

Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml

+21
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,20 @@ allOf:
1313
- $ref: serial.yaml#
1414
- $ref: rs485.yaml#
1515

16+
- if:
17+
properties:
18+
compatible:
19+
items:
20+
- enum:
21+
- renesas,r9a06g032-uart
22+
- renesas,r9a06g033-uart
23+
- const: renesas,rzn1-uart
24+
- const: snps,dw-apb-uart
25+
then:
26+
properties:
27+
dmas: false
28+
dma-names: false
29+
1630
- if:
1731
properties:
1832
compatible:
@@ -30,6 +44,12 @@ allOf:
3044
properties:
3145
compatible:
3246
oneOf:
47+
- items:
48+
- enum:
49+
- renesas,r9a06g032-uart
50+
- renesas,r9a06g033-uart
51+
- const: renesas,rzn1-uart
52+
- const: snps,dw-apb-uart
3353
- items:
3454
- enum:
3555
- renesas,r9a06g032-uart
@@ -51,6 +71,7 @@ properties:
5171
- rockchip,rk3368-uart
5272
- rockchip,rk3399-uart
5373
- rockchip,rk3528-uart
74+
- rockchip,rk3562-uart
5475
- rockchip,rk3568-uart
5576
- rockchip,rk3576-uart
5677
- rockchip,rk3588-uart

Documentation/devicetree/bindings/serial/sprd-uart.yaml

+7-2
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@ properties:
1717
oneOf:
1818
- items:
1919
- enum:
20-
- sprd,sc9632-uart
20+
- sprd,ums9632-uart
21+
- const: sprd,sc9632-uart
22+
- items:
23+
- enum:
2124
- sprd,sc9860-uart
2225
- sprd,sc9863a-uart
2326
- sprd,ums512-uart
2427
- sprd,ums9620-uart
2528
- const: sprd,sc9836-uart
26-
- const: sprd,sc9836-uart
29+
- enum:
30+
- sprd,sc9632-uart
31+
- sprd,sc9836-uart
2732

2833
reg:
2934
maxItems: 1

Documentation/driver-api/serial/driver.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,6 @@ Modem control lines via GPIO
101101
Some helpers are provided in order to set/get modem control lines via GPIO.
102102

103103
.. kernel-doc:: drivers/tty/serial/serial_mctrl_gpio.c
104-
:identifiers: mctrl_gpio_init mctrl_gpio_free mctrl_gpio_to_gpiod
104+
:identifiers: mctrl_gpio_init mctrl_gpio_to_gpiod
105105
mctrl_gpio_set mctrl_gpio_get mctrl_gpio_enable_ms
106-
mctrl_gpio_disable_ms
106+
mctrl_gpio_disable_ms_sync mctrl_gpio_disable_ms_no_sync

Documentation/driver-api/tty/tty_driver.rst

+3-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ freed.
2525
For reference, both allocation and deallocation functions are explained here in
2626
detail:
2727

28+
.. kernel-doc:: include/linux/tty_driver.h
29+
:identifiers: tty_alloc_driver
2830
.. kernel-doc:: drivers/tty/tty_io.c
2931
:identifiers: __tty_alloc_driver tty_driver_kref_put
3032

@@ -35,7 +37,7 @@ Here comes the documentation of flags accepted by tty_alloc_driver() (or
3537
__tty_alloc_driver()):
3638

3739
.. kernel-doc:: include/linux/tty_driver.h
38-
:doc: TTY Driver Flags
40+
:identifiers: tty_driver_flag
3941

4042
----
4143

Documentation/driver-api/tty/tty_struct.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ TTY Struct Flags
7272
================
7373

7474
.. kernel-doc:: include/linux/tty.h
75-
:doc: TTY Struct Flags
75+
:identifiers: tty_struct_flags
7676

7777
TTY Struct Reference
7878
====================

MAINTAINERS

+6
Original file line numberDiff line numberDiff line change
@@ -16550,6 +16550,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
1655016550
F: drivers/mtd/nand/
1655116551
F: include/linux/mtd/*nand*.h
1655216552

16553+
NATIONAL INSTRUMENTS SERIAL DRIVER
16554+
M: Chaitanya Vadrevu <[email protected]>
16555+
16556+
S: Maintained
16557+
F: drivers/tty/serial/8250/8250_ni.c
16558+
1655316559
NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
1655416560
M: Daniel Mack <[email protected]>
1655516561

arch/alpha/kernel/srmcons.c

+33-29
Original file line numberDiff line numberDiff line change
@@ -196,40 +196,44 @@ static const struct tty_operations srmcons_ops = {
196196
static int __init
197197
srmcons_init(void)
198198
{
199+
struct tty_driver *driver;
200+
int err;
201+
199202
timer_setup(&srmcons_singleton.timer, srmcons_receive_chars, 0);
200-
if (srm_is_registered_console) {
201-
struct tty_driver *driver;
202-
int err;
203-
204-
driver = tty_alloc_driver(MAX_SRM_CONSOLE_DEVICES, 0);
205-
if (IS_ERR(driver))
206-
return PTR_ERR(driver);
207-
208-
tty_port_init(&srmcons_singleton.port);
209-
210-
driver->driver_name = "srm";
211-
driver->name = "srm";
212-
driver->major = 0; /* dynamic */
213-
driver->minor_start = 0;
214-
driver->type = TTY_DRIVER_TYPE_SYSTEM;
215-
driver->subtype = SYSTEM_TYPE_SYSCONS;
216-
driver->init_termios = tty_std_termios;
217-
tty_set_operations(driver, &srmcons_ops);
218-
tty_port_link_device(&srmcons_singleton.port, driver, 0);
219-
err = tty_register_driver(driver);
220-
if (err) {
221-
tty_driver_kref_put(driver);
222-
tty_port_destroy(&srmcons_singleton.port);
223-
return err;
224-
}
225-
srmcons_driver = driver;
226-
}
227203

228-
return -ENODEV;
204+
if (!srm_is_registered_console)
205+
return -ENODEV;
206+
207+
driver = tty_alloc_driver(MAX_SRM_CONSOLE_DEVICES, 0);
208+
if (IS_ERR(driver))
209+
return PTR_ERR(driver);
210+
211+
tty_port_init(&srmcons_singleton.port);
212+
213+
driver->driver_name = "srm";
214+
driver->name = "srm";
215+
driver->major = 0; /* dynamic */
216+
driver->minor_start = 0;
217+
driver->type = TTY_DRIVER_TYPE_SYSTEM;
218+
driver->subtype = SYSTEM_TYPE_SYSCONS;
219+
driver->init_termios = tty_std_termios;
220+
tty_set_operations(driver, &srmcons_ops);
221+
tty_port_link_device(&srmcons_singleton.port, driver, 0);
222+
err = tty_register_driver(driver);
223+
if (err)
224+
goto err_free_drv;
225+
226+
srmcons_driver = driver;
227+
228+
return 0;
229+
err_free_drv:
230+
tty_driver_kref_put(driver);
231+
tty_port_destroy(&srmcons_singleton.port);
232+
233+
return err;
229234
}
230235
device_initcall(srmcons_init);
231236

232-
233237
/*
234238
* The console driver
235239
*/

drivers/net/caif/caif_serial.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ static int ldisc_open(struct tty_struct *tty)
330330
ser->tty = tty_kref_get(tty);
331331
ser->dev = dev;
332332
debugfs_init(ser, tty);
333-
tty->receive_room = N_TTY_BUF_SIZE;
333+
tty->receive_room = 4096;
334334
tty->disc_data = ser;
335335
set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
336336
rtnl_lock();

drivers/staging/greybus/uart.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,8 @@ static int gb_tty_init(void)
948948
{
949949
int retval = 0;
950950

951-
gb_tty_driver = tty_alloc_driver(GB_NUM_MINORS, 0);
951+
gb_tty_driver = tty_alloc_driver(GB_NUM_MINORS, TTY_DRIVER_REAL_RAW |
952+
TTY_DRIVER_DYNAMIC_DEV);
952953
if (IS_ERR(gb_tty_driver)) {
953954
pr_err("Can not allocate tty driver\n");
954955
retval = -ENOMEM;
@@ -961,7 +962,6 @@ static int gb_tty_init(void)
961962
gb_tty_driver->minor_start = 0;
962963
gb_tty_driver->type = TTY_DRIVER_TYPE_SERIAL;
963964
gb_tty_driver->subtype = SERIAL_TYPE_NORMAL;
964-
gb_tty_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
965965
gb_tty_driver->init_termios = tty_std_termios;
966966
gb_tty_driver->init_termios.c_cflag = B9600 | CS8 |
967967
CREAD | HUPCL | CLOCAL;

drivers/tty/Kconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ config SERIAL_NONSTANDARD
210210

211211
config MOXA_INTELLIO
212212
tristate "Moxa Intellio support"
213-
depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
213+
depends on SERIAL_NONSTANDARD && PCI
214214
select FW_LOADER
215215
help
216216
Say Y here if you have a Moxa Intellio multiport serial card.

0 commit comments

Comments
 (0)