mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-08 15:04:45 +00:00
tty: n_gsm line discipline
Add an implementation of GSM 0710 MUX. The implementation currently supports - Basic and advanced framing (as either end of the link) - UI or UIH data frames - Adaption layer 1-4 (1 and 2 via tty, 3 and 4 as skbuff lists) - Modem and control messages including the correct retry process - Flow control and exposes the MUX channels as a set of virtual tty devices including modem signals. This is an experimental driver. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
1ff454ef9b
commit
e1eaea46bb
@ -276,11 +276,18 @@ config N_HDLC
|
|||||||
Allows synchronous HDLC communications with tty device drivers that
|
Allows synchronous HDLC communications with tty device drivers that
|
||||||
support synchronous HDLC such as the Microgate SyncLink adapter.
|
support synchronous HDLC such as the Microgate SyncLink adapter.
|
||||||
|
|
||||||
This driver can only be built as a module ( = code which can be
|
This driver can be built as a module ( = code which can be
|
||||||
inserted in and removed from the running kernel whenever you want).
|
inserted in and removed from the running kernel whenever you want).
|
||||||
The module will be called n_hdlc. If you want to do that, say M
|
The module will be called n_hdlc. If you want to do that, say M
|
||||||
here.
|
here.
|
||||||
|
|
||||||
|
config N_GSM
|
||||||
|
tristate "GSM MUX line discipline support (EXPERIMENTAL)"
|
||||||
|
depends on EXPERIMENTAL
|
||||||
|
help
|
||||||
|
This line discipline provides support for the GSM MUX protocol and
|
||||||
|
presents the mux as a set of 61 individual tty devices.
|
||||||
|
|
||||||
config RISCOM8
|
config RISCOM8
|
||||||
tristate "SDL RISCom/8 card support"
|
tristate "SDL RISCom/8 card support"
|
||||||
depends on SERIAL_NONSTANDARD
|
depends on SERIAL_NONSTANDARD
|
||||||
|
@ -40,6 +40,7 @@ obj-$(CONFIG_SYNCLINK) += synclink.o
|
|||||||
obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o
|
obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o
|
||||||
obj-$(CONFIG_SYNCLINK_GT) += synclink_gt.o
|
obj-$(CONFIG_SYNCLINK_GT) += synclink_gt.o
|
||||||
obj-$(CONFIG_N_HDLC) += n_hdlc.o
|
obj-$(CONFIG_N_HDLC) += n_hdlc.o
|
||||||
|
obj-$(CONFIG_N_GSM) += n_gsm.o
|
||||||
obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
|
obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
|
||||||
obj-$(CONFIG_SX) += sx.o generic_serial.o
|
obj-$(CONFIG_SX) += sx.o generic_serial.o
|
||||||
obj-$(CONFIG_RIO) += rio/ generic_serial.o
|
obj-$(CONFIG_RIO) += rio/ generic_serial.o
|
||||||
|
2763
drivers/char/n_gsm.c
Normal file
2763
drivers/char/n_gsm.c
Normal file
File diff suppressed because it is too large
Load Diff
25
include/linux/gsmmux.h
Normal file
25
include/linux/gsmmux.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#ifndef _LINUX_GSMMUX_H
|
||||||
|
#define _LINUX_GSMMUX_H
|
||||||
|
|
||||||
|
struct gsm_config
|
||||||
|
{
|
||||||
|
unsigned int adaption;
|
||||||
|
unsigned int encapsulation;
|
||||||
|
unsigned int initiator;
|
||||||
|
unsigned int t1;
|
||||||
|
unsigned int t2;
|
||||||
|
unsigned int t3;
|
||||||
|
unsigned int n2;
|
||||||
|
unsigned int mru;
|
||||||
|
unsigned int mtu;
|
||||||
|
unsigned int k;
|
||||||
|
unsigned int i;
|
||||||
|
unsigned int unused[8]; /* Padding for expansion without
|
||||||
|
breaking stuff */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GSMIOC_GETCONF _IOR('G', 0, struct gsm_config)
|
||||||
|
#define GSMIOC_SETCONF _IOW('G', 1, struct gsm_config)
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
@ -48,6 +48,7 @@
|
|||||||
#define N_PPS 18 /* Pulse per Second */
|
#define N_PPS 18 /* Pulse per Second */
|
||||||
#define N_V253 19 /* Codec control over voice modem */
|
#define N_V253 19 /* Codec control over voice modem */
|
||||||
#define N_CAIF 20 /* CAIF protocol for talking to modems */
|
#define N_CAIF 20 /* CAIF protocol for talking to modems */
|
||||||
|
#define N_GSM0710 21 /* GSM 0710 Mux */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This character is the same as _POSIX_VDISABLE: it cannot be used as
|
* This character is the same as _POSIX_VDISABLE: it cannot be used as
|
||||||
|
Loading…
Reference in New Issue
Block a user