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

Commit e6bee325 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (76 commits)
  pch_uart: reference clock on CM-iTC
  pch_phub: add new device ML7213
  n_gsm: fix UIH control byte : P bit should be 0
  n_gsm: add a documentation
  serial: msm_serial_hs: Add MSM high speed UART driver
  tty_audit: fix tty_audit_add_data live lock on audit disabled
  tty: move cd1865.h to drivers/staging/tty/
  Staging: tty: fix build with epca.c driver
  pcmcia: synclink_cs: fix prototype for mgslpc_ioctl()
  Staging: generic_serial: fix double locking bug
  nozomi: don't use flush_scheduled_work()
  tty/serial: Relax the device_type restriction from of_serial
  MAINTAINERS: Update HVC file patterns
  tty: phase out of ioctl file pointer for tty3270 as well
  tty: forgot to remove ipwireless from drivers/char/pcmcia/Makefile
  pch_uart: Fix DMA channel miss-setting issue.
  pch_uart: fix exclusive access issue
  pch_uart: fix auto flow control miss-setting issue
  pch_uart: fix uart clock setting issue
  pch_uart : Use dev_xxx not pr_xxx
  ...

Fix up trivial conflicts in drivers/misc/pch_phub.c (same patch applied
twice, then changes to the same area in one branch)
parents a5e6b135 6ae705b2
Loading
Loading
Loading
Loading
+89 −0
Original line number Diff line number Diff line
n_gsm.c GSM 0710 tty multiplexor HOWTO
===================================================

This line discipline implements the GSM 07.10 multiplexing protocol
detailed in the following 3GPP document :
http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/0710-720.zip

This document give some hints on how to use this driver with GPRS and 3G
modems connected to a physical serial port.

How to use it
-------------
1- initialize the modem in 0710 mux mode (usually AT+CMUX= command) through
its serial port. Depending on the modem used, you can pass more or less
parameters to this command,
2- switch the serial line to using the n_gsm line discipline by using
TIOCSETD ioctl,
3- configure the mux using GSMIOC_GETCONF / GSMIOC_SETCONF ioctl,

Major parts of the initialization program :
(a good starting point is util-linux-ng/sys-utils/ldattach.c)
#include <linux/gsmmux.h>
#define N_GSM0710	21	/* GSM 0710 Mux */
#define DEFAULT_SPEED	B115200
#define SERIAL_PORT	/dev/ttyS0

	int ldisc = N_GSM0710;
	struct gsm_config c;
	struct termios configuration;

	/* open the serial port connected to the modem */
	fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY | O_NDELAY);

	/* configure the serial port : speed, flow control ... */

	/* send the AT commands to switch the modem to CMUX mode
	   and check that it's succesful (should return OK) */
	write(fd, "AT+CMUX=0\r", 10);

	/* experience showed that some modems need some time before
	   being able to answer to the first MUX packet so a delay
	   may be needed here in some case */
	sleep(3);

	/* use n_gsm line discipline */
	ioctl(fd, TIOCSETD, &ldisc);

	/* get n_gsm configuration */
	ioctl(fd, GSMIOC_GETCONF, &c);
	/* we are initiator and need encoding 0 (basic) */
	c.initiator = 1;
	c.encapsulation = 0;
	/* our modem defaults to a maximum size of 127 bytes */
	c.mru = 127;
	c.mtu = 127;
	/* set the new configuration */
	ioctl(fd, GSMIOC_SETCONF, &c);

	/* and wait for ever to keep the line discipline enabled */
	daemon(0,0);
	pause();

4- create the devices corresponding to the "virtual" serial ports (take care,
each modem has its configuration and some DLC have dedicated functions,
for example GPS), starting with minor 1 (DLC0 is reserved for the management
of the mux)

MAJOR=`cat /proc/devices |grep gsmtty | awk '{print $1}`
for i in `seq 1 4`; do
	mknod /dev/ttygsm$i c $MAJOR $i
done

5- use these devices as plain serial ports.
for example, it's possible :
- and to use gnokii to send / receive SMS on ttygsm1
- to use ppp to establish a datalink on ttygsm2

6- first close all virtual ports before closing the physical port.

Additional Documentation
------------------------
More practical details on the protocol and how it's supported by industrial
modems can be found in the following documents :
http://www.telit.com/module/infopool/download.php?id=616
http://www.u-blox.com/images/downloads/Product_Docs/LEON-G100-G200-MuxImplementation_ApplicationNote_%28GSM%20G1-CS-10002%29.pdf
http://www.sierrawireless.com/Support/Downloads/AirPrime/WMP_Series/~/media/Support_Downloads/AirPrime/Application_notes/CMUX_Feature_Application_Note-Rev004.ashx
http://wm.sim.com/sim/News/photo/2010721161442.pdf

11-03-08 - Eric Bénard - <eric@eukrea.com>
+13 −3
Original line number Diff line number Diff line
@@ -465,6 +465,16 @@ M: Matt Turner <mattst88@gmail.com>
L:	linux-alpha@vger.kernel.org
F:	arch/alpha/

ALTERA UART/JTAG UART SERIAL DRIVERS
M:	Tobias Klauser <tklauser@distanz.ch>
L:	linux-serial@vger.kernel.org
L:	nios2-dev@sopc.et.ntust.edu.tw (moderated for non-subscribers)
S:	Maintained
F:	drivers/tty/serial/altera_uart.c
F:	drivers/tty/serial/altera_jtaguart.c
F:	include/linux/altera_uart.h
F:	include/linux/altera_jtaguart.h

AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
M:	Thomas Dahlmann <dahlmann.thomas@arcor.de>
L:	linux-geode@lists.infradead.org (moderated for non-subscribers)
@@ -2833,7 +2843,7 @@ F: mm/hwpoison-inject.c
HYPERVISOR VIRTUAL CONSOLE DRIVER
L:	linuxppc-dev@lists.ozlabs.org
S:	Odd Fixes
F:	drivers/char/hvc_*
F:	drivers/tty/hvc/

iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
M:	Peter Jones <pjones@redhat.com>
@@ -3448,7 +3458,7 @@ M: Jiri Kosina <jkosina@suse.cz>
M:	David Sterba <dsterba@suse.cz>
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/ipwireless_cs.git
F:	drivers/char/pcmcia/ipwireless/
F:	drivers/tty/ipwireless/

IPX NETWORK LAYER
M:	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
@@ -6102,7 +6112,7 @@ M: Chris Metcalf <cmetcalf@tilera.com>
W:	http://www.tilera.com/scm/
S:	Supported
F:	arch/tile/
F:	drivers/char/hvc_tile.c
F:	drivers/tty/hvc/hvc_tile.c
F:	drivers/net/tile/

TLAN NETWORK DRIVER
+1 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@
#define TIOCSPTLCK	_IOW('T',0x31, int)  /* Lock/unlock Pty */
#define TIOCGDEV	_IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
#define TIOCSIG		_IOW('T',0x36, int)  /* Generate signal on Pty slave */
#define TIOCVHANGUP	0x5437

#define TIOCSERCONFIG	0x5453
#define TIOCSERGWILD	0x5454
+1 −2
Original line number Diff line number Diff line
@@ -390,8 +390,7 @@ static void rs_unthrottle(struct tty_struct * tty)
}


static int rs_ioctl(struct tty_struct *tty, struct file * file,
		    unsigned int cmd, unsigned long arg)
static int rs_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
{
	if ((cmd != TIOCGSERIAL) && (cmd != TIOCSSERIAL) &&
	    (cmd != TIOCSERCONFIG) && (cmd != TIOCSERGSTRUCT) &&
+0 −8
Original line number Diff line number Diff line
@@ -554,14 +554,6 @@ config MVME147_SCC
	  This is the driver for the serial ports on the Motorola MVME147
	  boards.  Everyone using one of these boards should say Y here.

config SERIAL167
	bool "CD2401 support for MVME166/7 serial ports"
	depends on MVME16x
	help
	  This is the driver for the serial ports on the Motorola MVME166,
	  167, and 172 boards.  Everyone using one of these boards should say
	  Y here.

config MVME162_SCC
	bool "SCC support for MVME162 serial ports"
	depends on MVME16x && BROKEN
Loading