Merge tag 'tty-6.6-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 tty and serial driver changes for 6.6-rc1.

  Lots of cleanups in here this cycle, and some driver updates. Short
  summary is:

   - Jiri's continued work to make the tty code and apis be a bit more
     sane with regards to modern kernel coding style and types

   - cpm_uart driver updates

   - n_gsm updates and fixes

   - meson driver updates

   - sc16is7xx driver updates

   - 8250 driver updates for different hardware types

   - qcom-geni driver fixes

   - tegra serial driver change

   - stm32 driver updates

   - synclink_gt driver cleanups

   - tty structure size reduction

  All of these have been in linux-next this week with no reported
  issues. The last bit of cleanups from Jiri and the tty structure size
  reduction came in last week, a bit late but as they were just style
  changes and size reductions, I figured they should get into this merge
  cycle so that others can work on top of them with no merge conflicts"

* tag 'tty-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (199 commits)
  tty: shrink the size of struct tty_struct by 40 bytes
  tty: n_tty: deduplicate copy code in n_tty_receive_buf_real_raw()
  tty: n_tty: extract ECHO_OP processing to a separate function
  tty: n_tty: unify counts to size_t
  tty: n_tty: use u8 for chars and flags
  tty: n_tty: simplify chars_in_buffer()
  tty: n_tty: remove unsigned char casts from character constants
  tty: n_tty: move newline handling to a separate function
  tty: n_tty: move canon handling to a separate function
  tty: n_tty: use MASK() for masking out size bits
  tty: n_tty: make n_tty_data::num_overrun unsigned
  tty: n_tty: use time_is_before_jiffies() in n_tty_receive_overrun()
  tty: n_tty: use 'num' for writes' counts
  tty: n_tty: use output character directly
  tty: n_tty: make flow of n_tty_receive_buf_common() a bool
  Revert "tty: serial: meson: Add a earlycon for the T7 SoC"
  Documentation: devices.txt: Fix minors for ttyCPM*
  Documentation: devices.txt: Remove ttySIOC*
  Documentation: devices.txt: Remove ttyIOC*
  serial: 8250_bcm7271: improve bcm7271 8250 port
  ...
This commit is contained in:
Linus Torvalds
2023-09-01 09:38:00 -07:00
185 changed files with 2104 additions and 2173 deletions

View File

@@ -2,10 +2,45 @@
#ifndef _LINUX_GSMMUX_H
#define _LINUX_GSMMUX_H
#include <linux/const.h>
#include <linux/if.h>
#include <linux/ioctl.h>
#include <linux/types.h>
/*
* flags definition for n_gsm
*
* Used by:
* struct gsm_config_ext.flags
* struct gsm_dlci_config.flags
*/
/* Forces a DLCI reset if set. Otherwise, a DLCI reset is only done if
* incompatible settings were provided. Always cleared on retrieval.
*/
#define GSM_FL_RESTART _BITUL(0)
/**
* struct gsm_config - n_gsm basic configuration parameters
*
* This structure is used in combination with GSMIOC_GETCONF and GSMIOC_SETCONF
* to retrieve and set the basic parameters of an n_gsm ldisc.
* struct gsm_config_ext can be used to configure extended ldisc parameters.
*
* All timers are in units of 1/100th of a second.
*
* @adaption: Convergence layer type
* @encapsulation: Framing (0 = basic option, 1 = advanced option)
* @initiator: Initiator or responder
* @t1: Acknowledgment timer
* @t2: Response timer for multiplexer control channel
* @t3: Response timer for wake-up procedure
* @n2: Maximum number of retransmissions
* @mru: Maximum incoming frame payload size
* @mtu: Maximum outgoing frame payload size
* @k: Window size
* @i: Frame type (1 = UIH, 2 = UI)
* @unused: Can not be used
*/
struct gsm_config
{
unsigned int adaption;
@@ -19,18 +54,32 @@ struct gsm_config
unsigned int mtu;
unsigned int k;
unsigned int i;
unsigned int unused[8]; /* Can not be used */
unsigned int unused[8];
};
#define GSMIOC_GETCONF _IOR('G', 0, struct gsm_config)
#define GSMIOC_SETCONF _IOW('G', 1, struct gsm_config)
/**
* struct gsm_netconfig - n_gsm network configuration parameters
*
* This structure is used in combination with GSMIOC_ENABLE_NET and
* GSMIOC_DISABLE_NET to enable or disable a network data connection
* over a mux virtual tty channel. This is for modems that support
* data connections with raw IP frames instead of PPP.
*
* @adaption: Adaption to use in network mode.
* @protocol: Protocol to use - only ETH_P_IP supported.
* @unused2: Can not be used.
* @if_name: Interface name format string.
* @unused: Can not be used.
*/
struct gsm_netconfig {
unsigned int adaption; /* Adaption to use in network mode */
unsigned short protocol;/* Protocol to use - only ETH_P_IP supported */
unsigned short unused2; /* Can not be used */
char if_name[IFNAMSIZ]; /* interface name format string */
__u8 unused[28]; /* Can not be used */
unsigned int adaption;
unsigned short protocol;
unsigned short unused2;
char if_name[IFNAMSIZ];
__u8 unused[28];
};
#define GSMIOC_ENABLE_NET _IOW('G', 2, struct gsm_netconfig)
@@ -39,26 +88,57 @@ struct gsm_netconfig {
/* get the base tty number for a configured gsmmux tty */
#define GSMIOC_GETFIRST _IOR('G', 4, __u32)
/**
* struct gsm_config_ext - n_gsm extended configuration parameters
*
* This structure is used in combination with GSMIOC_GETCONF_EXT and
* GSMIOC_SETCONF_EXT to retrieve and set the extended parameters of an
* n_gsm ldisc.
*
* All timers are in units of 1/100th of a second.
*
* @keep_alive: Control channel keep-alive in 1/100th of a second (0 to disable).
* @wait_config: Wait for DLCI config before opening virtual link?
* @flags: Mux specific flags.
* @reserved: For future use, must be initialized to zero.
*/
struct gsm_config_ext {
__u32 keep_alive; /* Control channel keep-alive in 1/100th of a
* second (0 to disable)
*/
__u32 wait_config; /* Wait for DLCI config before opening virtual link? */
__u32 reserved[6]; /* For future use, must be initialized to zero */
__u32 keep_alive;
__u32 wait_config;
__u32 flags;
__u32 reserved[5];
};
#define GSMIOC_GETCONF_EXT _IOR('G', 5, struct gsm_config_ext)
#define GSMIOC_SETCONF_EXT _IOW('G', 6, struct gsm_config_ext)
/* Set channel accordingly before calling GSMIOC_GETCONF_DLCI. */
/**
* struct gsm_dlci_config - n_gsm channel configuration parameters
*
* This structure is used in combination with GSMIOC_GETCONF_DLCI and
* GSMIOC_SETCONF_DLCI to retrieve and set the channel specific parameters
* of an n_gsm ldisc.
*
* Set the channel accordingly before calling GSMIOC_GETCONF_DLCI.
*
* @channel: DLCI (0 for the associated DLCI).
* @adaption: Convergence layer type.
* @mtu: Maximum transfer unit.
* @priority: Priority (0 for default value).
* @i: Frame type (1 = UIH, 2 = UI).
* @k: Window size (0 for default value).
* @flags: DLCI specific flags.
* @reserved: For future use, must be initialized to zero.
*/
struct gsm_dlci_config {
__u32 channel; /* DLCI (0 for the associated DLCI) */
__u32 adaption; /* Convergence layer type */
__u32 mtu; /* Maximum transfer unit */
__u32 priority; /* Priority (0 for default value) */
__u32 i; /* Frame type (1 = UIH, 2 = UI) */
__u32 k; /* Window size (0 for default value) */
__u32 reserved[8]; /* For future use, must be initialized to zero */
__u32 channel;
__u32 adaption;
__u32 mtu;
__u32 priority;
__u32 i;
__u32 k;
__u32 flags;
__u32 reserved[7];
};
#define GSMIOC_GETCONF_DLCI _IOWR('G', 7, struct gsm_dlci_config)

View File

@@ -25,6 +25,8 @@
/*
* The type definitions. These are from Ted Ts'o's serial.h
* By historical reasons the values from 0 to 13 are defined
* in the include/uapi/linux/serial.h, do not define them here.
*/
#define PORT_NS16550A 14
#define PORT_XSCALE 15
@@ -94,15 +96,9 @@
#define PORT_SCIF 53
#define PORT_IRDA 54
/* Samsung S3C2410 SoC and derivatives thereof */
#define PORT_S3C2410 55
/* SGI IP22 aka Indy / Challenge S / Indigo 2 */
#define PORT_IP22ZILOG 56
/* Sharp LH7a40x -- an ARM9 SoC series */
#define PORT_LH7A40X 57
/* PPC CPM type number */
#define PORT_CPM 58
@@ -112,37 +108,23 @@
/* IBM icom */
#define PORT_ICOM 60
/* Samsung S3C2440 SoC */
#define PORT_S3C2440 61
/* Motorola i.MX SoC */
#define PORT_IMX 62
/* Marvell MPSC (obsolete unused) */
#define PORT_MPSC 63
/* TXX9 type number */
#define PORT_TXX9 64
/* Samsung S3C2400 SoC */
#define PORT_S3C2400 67
/* M32R SIO */
#define PORT_M32R_SIO 68
/*Digi jsm */
#define PORT_JSM 69
/* SUN4V Hypervisor Console */
#define PORT_SUNHV 72
#define PORT_S3C2412 73
/* Xilinx uartlite */
#define PORT_UARTLITE 74
/* Blackfin bf5xx */
#define PORT_BFIN 75
/* Broadcom BCM7271 UART */
#define PORT_BCM7271 76
/* Broadcom SB1250, etc. SOC */
#define PORT_SB1250_DUART 77
@@ -150,13 +132,6 @@
/* Freescale ColdFire */
#define PORT_MCF 78
/* Blackfin SPORT */
#define PORT_BFIN_SPORT 79
/* MN10300 on-chip UART numbers */
#define PORT_MN10300 80
#define PORT_MN10300_CTS 81
#define PORT_SC26XX 82
/* SH-SCI */
@@ -164,9 +139,6 @@
#define PORT_S3C6400 84
/* NWPSERIAL, now removed */
#define PORT_NWPSERIAL 85
/* MAX3100 */
#define PORT_MAX3100 86
@@ -225,13 +197,10 @@
/* ST ASC type numbers */
#define PORT_ASC 105
/* Tilera TILE-Gx UART */
#define PORT_TILEGX 106
/* MEN 16z135 UART */
#define PORT_MEN_Z135 107
/* SC16IS74xx */
/* SC16IS7xx */
#define PORT_SC16IS7XX 108
/* MESON */
@@ -243,9 +212,6 @@
/* SPRD SERIAL */
#define PORT_SPRD 111
/* Cris v10 / v32 SoC */
#define PORT_CRIS 112
/* STM32 USART */
#define PORT_STM32 113