aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTilman Schmidt <tilman@imap.cc>2009-12-05 03:54:20 -0500
committerDavid S. Miller <davem@davemloft.net>2009-12-08 23:30:41 -0500
commit64f16603eae17e869d5fc8a60ae987394190e639 (patch)
treec21cb3d817399573b5b069981d988fedd2b9b03d
parent073886ff23bfbe7b88c9133d7a556d6ec51f0b50 (diff)
gigaset: documentation amendments
Various additions and improvements to the Gigaset driver's README file, and added comments to its userspace visible include file. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--Documentation/isdn/README.gigaset116
-rw-r--r--include/linux/gigaset_dev.h22
2 files changed, 106 insertions, 32 deletions
diff --git a/Documentation/isdn/README.gigaset b/Documentation/isdn/README.gigaset
index 0fc9831d7ecb..794941fc9493 100644
--- a/Documentation/isdn/README.gigaset
+++ b/Documentation/isdn/README.gigaset
@@ -68,22 +68,38 @@ GigaSet 307x Device Driver
68 for troubleshooting or to pass module parameters. 68 for troubleshooting or to pass module parameters.
69 69
70 The module ser_gigaset provides a serial line discipline N_GIGASET_M101 70 The module ser_gigaset provides a serial line discipline N_GIGASET_M101
71 which drives the device through the regular serial line driver. It must 71 which uses the regular serial port driver to access the device, and must
72 be attached to the serial line to which the M101 is connected with the 72 therefore be attached to the serial device to which the M101 is connected.
73 ldattach(8) command (requires util-linux-ng release 2.14 or later), for 73 The ldattach(8) command (included in util-linux-ng release 2.14 or later)
74 example: 74 can be used for that purpose, for example:
75 ldattach GIGASET_M101 /dev/ttyS1 75 ldattach GIGASET_M101 /dev/ttyS1
76 This will open the device file, attach the line discipline to it, and 76 This will open the device file, attach the line discipline to it, and
77 then sleep in the background, keeping the device open so that the line 77 then sleep in the background, keeping the device open so that the line
78 discipline remains active. To deactivate it, kill the daemon, for example 78 discipline remains active. To deactivate it, kill the daemon, for example
79 with 79 with
80 killall ldattach 80 killall ldattach
81 before disconnecting the device. To have this happen automatically at 81 before disconnecting the device. To have this happen automatically at
82 system startup/shutdown on an LSB compatible system, create and activate 82 system startup/shutdown on an LSB compatible system, create and activate
83 an appropriate LSB startup script /etc/init.d/gigaset. (The init name 83 an appropriate LSB startup script /etc/init.d/gigaset. (The init name
84 'gigaset' is officially assigned to this project by LANANA.) 84 'gigaset' is officially assigned to this project by LANANA.)
85 Alternatively, just add the 'ldattach' command line to /etc/rc.local. 85 Alternatively, just add the 'ldattach' command line to /etc/rc.local.
86 86
87 The modules accept the following parameters:
88
89 Module Parameter Meaning
90
91 gigaset debug debug level (see section 3.2.)
92
93 startmode initial operation mode (see section 2.5.):
94 bas_gigaset ) 1=ISDN4linux/CAPI (default), 0=Unimodem
95 ser_gigaset )
96 usb_gigaset ) cidmode initial Call-ID mode setting (see section
97 2.5.): 1=on (default), 0=off
98
99 Depending on your distribution you may want to create a separate module
100 configuration file /etc/modprobe.d/gigaset for these, or add them to a
101 custom file like /etc/modprobe.conf.local.
102
872.2. Device nodes for user space programs 1032.2. Device nodes for user space programs
88 ------------------------------------ 104 ------------------------------------
89 The device can be accessed from user space (eg. by the user space tools 105 The device can be accessed from user space (eg. by the user space tools
@@ -93,11 +109,48 @@ GigaSet 307x Device Driver
93 - /dev/ttyGU0 for M105 (USB data boxes) 109 - /dev/ttyGU0 for M105 (USB data boxes)
94 - /dev/ttyGB0 for the base driver (direct USB connection) 110 - /dev/ttyGB0 for the base driver (direct USB connection)
95 111
96 You can also select a "default device" which is used by the frontends when 112 If you connect more than one device of a type, they will get consecutive
113 device nodes, eg. /dev/ttyGU1 for a second M105.
114
115 You can also set a "default device" for the user space tools to use when
97 no device node is given as parameter, by creating a symlink /dev/ttyG to 116 no device node is given as parameter, by creating a symlink /dev/ttyG to
98 one of them, eg.: 117 one of them, eg.:
99 118
100 ln -s /dev/ttyGB0 /dev/ttyG 119 ln -s /dev/ttyGB0 /dev/ttyG
120
121 The devices accept the following device specific ioctl calls
122 (defined in gigaset_dev.h):
123
124 ioctl(int fd, GIGASET_REDIR, int *cmd);
125 If cmd==1, the device is set to be controlled exclusively through the
126 character device node; access from the ISDN subsystem is blocked.
127 If cmd==0, the device is set to be used from the ISDN subsystem and does
128 not communicate through the character device node.
129
130 ioctl(int fd, GIGASET_CONFIG, int *cmd);
131 (ser_gigaset and usb_gigaset only)
132 If cmd==1, the device is set to adapter configuration mode where commands
133 are interpreted by the M10x DECT adapter itself instead of being
134 forwarded to the base station. In this mode, the device accepts the
135 commands described in Siemens document "AT-Kommando Alignment M10x Data"
136 for setting the operation mode, associating with a base station and
137 querying parameters like field strengh and signal quality.
138 Note that there is no ioctl command for leaving adapter configuration
139 mode and returning to regular operation. In order to leave adapter
140 configuration mode, write the command ATO to the device.
141
142 ioctl(int fd, GIGASET_BRKCHARS, unsigned char brkchars[6]);
143 (usb_gigaset only)
144 Set the break characters on an M105's internal serial adapter to the six
145 bytes stored in brkchars[]. Unused bytes should be set to zero.
146
147 ioctl(int fd, GIGASET_VERSION, unsigned version[4]);
148 Retrieve version information from the driver. version[0] must be set to
149 one of:
150 - GIGVER_DRIVER: retrieve driver version
151 - GIGVER_COMPAT: retrieve interface compatibility version
152 - GIGVER_FWBASE: retrieve the firmware version of the base
153 Upon return, version[] is filled with the requested version information.
101 154
1022.3. ISDN4linux 1552.3. ISDN4linux
103 ---------- 156 ----------
@@ -113,15 +166,24 @@ GigaSet 307x Device Driver
113 Connection State: 0, Response: -1 166 Connection State: 0, Response: -1
114 gigaset_process_response: resp_code -1 in ConState 0 ! 167 gigaset_process_response: resp_code -1 in ConState 0 !
115 Timeout occurred 168 Timeout occurred
116 you might need to use unimodem mode. (see section 2.5.) 169 you probably need to use unimodem mode. (see section 2.5.)
117 170
1182.4. CAPI 1712.4. CAPI
119 ---- 172 ----
120 If the driver is compiled with CAPI support (kernel configuration option 173 If the driver is compiled with CAPI support (kernel configuration option
121 GIGASET_CAPI, experimental) it can also be used with CAPI 2.0 kernel and 174 GIGASET_CAPI, experimental) it can also be used with CAPI 2.0 kernel and
122 user space applications. ISDN4Linux is supported in this configuration 175 user space applications. For user space access, the module capi.ko must
176 be loaded. The capiinit command (included in the capi4k-utils package)
177 does this for you.
178
179 The CAPI variant of the driver supports legacy ISDN4Linux applications
123 via the capidrv compatibility driver. The kernel module capidrv.ko must 180 via the capidrv compatibility driver. The kernel module capidrv.ko must
124 be loaded explicitly ("modprobe capidrv") if needed. 181 be loaded explicitly with the command
182 modprobe capidrv
183 if needed, and cannot be unloaded again without unloading the driver
184 first. (These are limitations of capidrv.)
185
186 The note about unimodem mode in the preceding section applies here, too.
125 187
1262.5. Unimodem mode 1882.5. Unimodem mode
127 ------------- 189 -------------
@@ -134,9 +196,14 @@ GigaSet 307x Device Driver
134 You can switch back using 196 You can switch back using
135 gigacontr --mode isdn 197 gigacontr --mode isdn
136 198
137 You can also load the driver using e.g. 199 You can also put the driver directly into Unimodem mode when it's loaded,
138 modprobe usb_gigaset startmode=0 200 by passing the module parameter startmode=0 to the hardware specific
139 to prevent the driver from starting in "isdn4linux mode". 201 module, e.g.
202 modprobe usb_gigaset startmode=0
203 or by adding a line like
204 options usb_gigaset startmode=0
205 to an appropriate module configuration file, like /etc/modprobe.d/gigaset
206 or /etc/modprobe.conf.local.
140 207
141 In this mode the device works like a modem connected to a serial port 208 In this mode the device works like a modem connected to a serial port
142 (the /dev/ttyGU0, ... mentioned above) which understands the commands 209 (the /dev/ttyGU0, ... mentioned above) which understands the commands
@@ -164,9 +231,8 @@ GigaSet 307x Device Driver
164 231
165 options ppp_async flag_time=0 232 options ppp_async flag_time=0
166 233
167 to /etc/modprobe.conf. If your distribution has some local module 234 to an appropriate module configuration file, like /etc/modprobe.d/gigaset
168 configuration file like /etc/modprobe.conf.local, 235 or /etc/modprobe.conf.local.
169 using that should be preferred.
170 236
1712.6. Call-ID (CID) mode 2372.6. Call-ID (CID) mode
172 ------------------ 238 ------------------
@@ -189,12 +255,13 @@ GigaSet 307x Device Driver
189 settings (CID mode). 255 settings (CID mode).
190 - If you have several DECT data devices (M10x) which you want to use 256 - If you have several DECT data devices (M10x) which you want to use
191 in turn, select Unimodem mode by passing the parameter "cidmode=0" to 257 in turn, select Unimodem mode by passing the parameter "cidmode=0" to
192 the driver ("modprobe usb_gigaset cidmode=0" or modprobe.conf). 258 the appropriate driver module (ser_gigaset or usb_gigaset).
193 259
194 If you want both of these at once, you are out of luck. 260 If you want both of these at once, you are out of luck.
195 261
196 You can also use /sys/class/tty/ttyGxy/cidmode for changing the CID mode 262 You can also use the tty class parameter "cidmode" of the device to
197 setting (ttyGxy is ttyGU0 or ttyGB0). 263 change its CID mode while the driver is loaded, eg.
264 echo 0 > /sys/class/tty/ttyGU0/cidmode
198 265
1992.7. Unregistered Wireless Devices (M101/M105) 2662.7. Unregistered Wireless Devices (M101/M105)
200 ----------------------------------------- 267 -----------------------------------------
@@ -208,7 +275,7 @@ GigaSet 307x Device Driver
208 driver. In that situation, a restricted set of functions is available 275 driver. In that situation, a restricted set of functions is available
209 which includes, in particular, those necessary for registering the device 276 which includes, in particular, those necessary for registering the device
210 to a base or for switching it between Fixed Part and Portable Part 277 to a base or for switching it between Fixed Part and Portable Part
211 modes. 278 modes. See the gigacontr(8) manpage for details.
212 279
2133. Troubleshooting 2803. Troubleshooting
214 --------------- 281 ---------------
@@ -222,9 +289,7 @@ GigaSet 307x Device Driver
222 289
223 options isdn dialtimeout=15 290 options isdn dialtimeout=15
224 291
225 to /etc/modprobe.conf. If your distribution has some local module 292 to /etc/modprobe.d/gigaset, /etc/modprobe.conf.local or a similar file.
226 configuration file like /etc/modprobe.conf.local,
227 using that should be preferred.
228 293
229 Problem: 294 Problem:
230 Your isdn script aborts with a message about isdnlog. 295 Your isdn script aborts with a message about isdnlog.
@@ -264,7 +329,8 @@ GigaSet 307x Device Driver
264 The initial value can be set using the debug parameter when loading the 329 The initial value can be set using the debug parameter when loading the
265 module "gigaset", e.g. by adding a line 330 module "gigaset", e.g. by adding a line
266 options gigaset debug=0 331 options gigaset debug=0
267 to /etc/modprobe.conf, ... 332 to your module configuration file, eg. /etc/modprobe.d/gigaset or
333 /etc/modprobe.conf.local.
268 334
269 Generated debugging information can be found 335 Generated debugging information can be found
270 - as output of the command 336 - as output of the command
diff --git a/include/linux/gigaset_dev.h b/include/linux/gigaset_dev.h
index 5dc4a316ca37..258ba82937e7 100644
--- a/include/linux/gigaset_dev.h
+++ b/include/linux/gigaset_dev.h
@@ -16,15 +16,23 @@
16 16
17#include <linux/ioctl.h> 17#include <linux/ioctl.h>
18 18
19/* The magic IOCTL value for this interface. */
19#define GIGASET_IOCTL 0x47 20#define GIGASET_IOCTL 0x47
20 21
21#define GIGVER_DRIVER 0 22/* enable/disable device control via character device (lock out ISDN subsys) */
22#define GIGVER_COMPAT 1 23#define GIGASET_REDIR _IOWR(GIGASET_IOCTL, 0, int)
23#define GIGVER_FWBASE 2
24 24
25#define GIGASET_REDIR _IOWR (GIGASET_IOCTL, 0, int) 25/* enable adapter configuration mode (M10x only) */
26#define GIGASET_CONFIG _IOWR (GIGASET_IOCTL, 1, int) 26#define GIGASET_CONFIG _IOWR(GIGASET_IOCTL, 1, int)
27#define GIGASET_BRKCHARS _IOW (GIGASET_IOCTL, 2, unsigned char[6]) //FIXME [6] okay? 27
28#define GIGASET_VERSION _IOWR (GIGASET_IOCTL, 3, unsigned[4]) 28/* set break characters (M105 only) */
29#define GIGASET_BRKCHARS _IOW(GIGASET_IOCTL, 2, unsigned char[6])
30
31/* get version information selected by arg[0] */
32#define GIGASET_VERSION _IOWR(GIGASET_IOCTL, 3, unsigned[4])
33/* values for GIGASET_VERSION arg[0] */
34#define GIGVER_DRIVER 0 /* get driver version */
35#define GIGVER_COMPAT 1 /* get interface compatibility version */
36#define GIGVER_FWBASE 2 /* get base station firmware version */
29 37
30#endif 38#endif