Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: isdn: convert to ReST and add to kAPI bookset

The ISDN documentation is a mix of admin guide, uAPI and kAPI.

Ideally, it should be split. Yet, not sure if it would worth
the troble. Anyway, we have the same kind of mix on several
drivers specific documentation. So, just like the others, keep
the directory at the root Documentation/ tree, just adding a
pointer to it at the kAPI section, as the documentation was
written with the Kernel developers in mind.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

authored by

Mauro Carvalho Chehab and committed by
Jonathan Corbet
5a5e045b 32fc3cd8

+543 -338
+1
Documentation/index.rst
··· 106 106 hid/index 107 107 i2c/index 108 108 iio/index 109 + isdn/index 109 110 infiniband/index 110 111 leds/index 111 112 media/index
+5 -2
Documentation/isdn/CREDITS Documentation/isdn/credits.rst
··· 1 + ======= 2 + Credits 3 + ======= 4 + 1 5 2 6 I want to thank all who contributed to this project and especially to: 3 7 (in alphabetical order) ··· 23 19 For creating and maintaining the FAQ. 24 20 25 21 Bernhard Hailer (Bernhard.Hailer@lrz.uni-muenchen.de) 26 - For creating the FAQ, and the leafsite HOWTO. 22 + For creating the FAQ, and the leafsite HOWTO. 27 23 28 24 Michael 'Ghandi' Herold (michael@abadonna.franken.de) 29 25 For contribution of the vbox answering machine. ··· 71 67 Thomas Uhl (uhl@think.de) 72 68 For distributing the cards. 73 69 For pushing me to work ;-) 74 -
+113 -61
Documentation/isdn/INTERFACE.CAPI Documentation/isdn/interface_capi.rst
··· 1 + ========================================= 1 2 Kernel CAPI Interface to Hardware Drivers 2 - ----------------------------------------- 3 + ========================================= 3 4 4 5 1. Overview 6 + =========== 5 7 6 8 From the CAPI 2.0 specification: 7 9 COMMON-ISDN-API (CAPI) is an application programming interface standard used ··· 24 22 25 23 26 24 2. Driver and Device Registration 25 + ================================= 27 26 28 27 CAPI drivers optionally register themselves with Kernel CAPI by calling the 29 28 Kernel CAPI function register_capi_driver() with a pointer to a struct ··· 53 50 54 51 55 52 3. Application Registration and Communication 53 + ============================================= 56 54 57 55 Kernel CAPI forwards registration requests from applications (calls to CAPI 58 56 operation CAPI_REGISTER) to an appropriate hardware driver by calling its ··· 75 71 76 72 77 73 4. Data Structures 74 + ================== 78 75 79 76 4.1 struct capi_driver 77 + ---------------------- 80 78 81 79 This structure describes a Kernel CAPI driver itself. It is used in the 82 80 register_capi_driver() and unregister_capi_driver() functions, and contains 83 81 the following non-private fields, all to be set by the driver before calling 84 82 register_capi_driver(): 85 83 86 - char name[32] 84 + ``char name[32]`` 87 85 the name of the driver, as a zero-terminated ASCII string 88 - char revision[32] 86 + ``char revision[32]`` 89 87 the revision number of the driver, as a zero-terminated ASCII string 90 - int (*add_card)(struct capi_driver *driver, capicardparams *data) 88 + ``int (*add_card)(struct capi_driver *driver, capicardparams *data)`` 91 89 a callback function pointer (may be NULL) 92 90 93 91 94 92 4.2 struct capi_ctr 93 + ------------------- 95 94 96 95 This structure describes an ISDN device (controller) handled by a Kernel CAPI 97 96 driver. After registration via the attach_capi_ctr() function it is passed to ··· 103 96 104 97 It contains the following non-private fields: 105 98 106 - - to be set by the driver before calling attach_capi_ctr(): 99 + to be set by the driver before calling attach_capi_ctr(): 100 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 107 101 108 - struct module *owner 102 + ``struct module *owner`` 109 103 pointer to the driver module owning the device 110 104 111 - void *driverdata 105 + ``void *driverdata`` 112 106 an opaque pointer to driver specific data, not touched by Kernel CAPI 113 107 114 - char name[32] 108 + ``char name[32]`` 115 109 the name of the controller, as a zero-terminated ASCII string 116 110 117 - char *driver_name 111 + ``char *driver_name`` 118 112 the name of the driver, as a zero-terminated ASCII string 119 113 120 - int (*load_firmware)(struct capi_ctr *ctrlr, capiloaddata *ldata) 114 + ``int (*load_firmware)(struct capi_ctr *ctrlr, capiloaddata *ldata)`` 121 115 (optional) pointer to a callback function for sending firmware and 122 116 configuration data to the device 117 + 123 118 The function may return before the operation has completed. 119 + 124 120 Completion must be signalled by a call to capi_ctr_ready(). 121 + 125 122 Return value: 0 on success, error code on error 126 123 Called in process context. 127 124 128 - void (*reset_ctr)(struct capi_ctr *ctrlr) 125 + ``void (*reset_ctr)(struct capi_ctr *ctrlr)`` 129 126 (optional) pointer to a callback function for stopping the device, 130 127 releasing all registered applications 128 + 131 129 The function may return before the operation has completed. 130 + 132 131 Completion must be signalled by a call to capi_ctr_down(). 132 + 133 133 Called in process context. 134 134 135 - void (*register_appl)(struct capi_ctr *ctrlr, u16 applid, 136 - capi_register_params *rparam) 137 - void (*release_appl)(struct capi_ctr *ctrlr, u16 applid) 138 - pointers to callback functions for registration and deregistration of 135 + ``void (*register_appl)(struct capi_ctr *ctrlr, u16 applid, capi_register_params *rparam)`` 136 + pointers to callback function for registration of 139 137 applications with the device 138 + 140 139 Calls to these functions are serialized by Kernel CAPI so that only 141 140 one call to any of them is active at any time. 142 141 143 - u16 (*send_message)(struct capi_ctr *ctrlr, struct sk_buff *skb) 142 + ``void (*release_appl)(struct capi_ctr *ctrlr, u16 applid)`` 143 + pointers to callback functions deregistration of 144 + applications with the device 145 + 146 + Calls to these functions are serialized by Kernel CAPI so that only 147 + one call to any of them is active at any time. 148 + 149 + ``u16 (*send_message)(struct capi_ctr *ctrlr, struct sk_buff *skb)`` 144 150 pointer to a callback function for sending a CAPI message to the 145 151 device 152 + 146 153 Return value: CAPI error code 154 + 147 155 If the method returns 0 (CAPI_NOERROR) the driver has taken ownership 148 156 of the skb and the caller may no longer access it. If it returns a 149 157 non-zero (error) value then ownership of the skb returns to the caller 150 158 who may reuse or free it. 159 + 151 160 The return value should only be used to signal problems with respect 152 161 to accepting or queueing the message. Errors occurring during the 153 162 actual processing of the message should be signaled with an 154 163 appropriate reply message. 164 + 155 165 May be called in process or interrupt context. 166 + 156 167 Calls to this function are not serialized by Kernel CAPI, ie. it must 157 168 be prepared to be re-entered. 158 169 159 - char *(*procinfo)(struct capi_ctr *ctrlr) 170 + ``char *(*procinfo)(struct capi_ctr *ctrlr)`` 160 171 pointer to a callback function returning the entry for the device in 161 172 the CAPI controller info table, /proc/capi/controller 162 173 163 - const struct file_operations *proc_fops 174 + ``const struct file_operations *proc_fops`` 164 175 pointers to callback functions for the device's proc file 165 176 system entry, /proc/capi/controllers/<n>; pointer to the device's 166 177 capi_ctr structure is available from struct proc_dir_entry::data 167 178 which is available from struct inode. 168 179 169 - Note: Callback functions except send_message() are never called in interrupt 170 - context. 180 + Note: 181 + Callback functions except send_message() are never called in interrupt 182 + context. 171 183 172 - - to be filled in before calling capi_ctr_ready(): 184 + to be filled in before calling capi_ctr_ready(): 185 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 173 186 174 - u8 manu[CAPI_MANUFACTURER_LEN] 187 + ``u8 manu[CAPI_MANUFACTURER_LEN]`` 175 188 value to return for CAPI_GET_MANUFACTURER 176 189 177 - capi_version version 190 + ``capi_version version`` 178 191 value to return for CAPI_GET_VERSION 179 192 180 - capi_profile profile 193 + ``capi_profile profile`` 181 194 value to return for CAPI_GET_PROFILE 182 195 183 - u8 serial[CAPI_SERIAL_LEN] 196 + ``u8 serial[CAPI_SERIAL_LEN]`` 184 197 value to return for CAPI_GET_SERIAL 185 198 186 199 187 200 4.3 SKBs 201 + -------- 188 202 189 203 CAPI messages are passed between Kernel CAPI and the driver via send_message() 190 204 and capi_ctr_handle_message(), stored in the data portion of a socket buffer ··· 220 192 221 193 222 194 4.4 The _cmsg Structure 195 + ----------------------- 223 196 224 197 (declared in <linux/isdn/capiutil.h>) 225 198 ··· 245 216 represent. See <linux/isdn/capiutil.h> for the exact spelling. Member data 246 217 types are: 247 218 219 + =========== ================================================================= 248 220 u8 for CAPI parameters of type 'byte' 249 221 250 222 u16 for CAPI parameters of type 'word' ··· 265 235 CAPI_COMPOSE: The parameter is present. 266 236 Subparameter values are stored individually in the corresponding 267 237 _cmsg structure members. 238 + =========== ================================================================= 268 239 269 240 Functions capi_cmsg2message() and capi_message2cmsg() are provided to convert 270 241 messages between their transport encoding described in the CAPI 2.0 standard ··· 275 244 276 245 277 246 5. Lower Layer Interface Functions 247 + ================================== 278 248 279 249 (declared in <linux/isdn/capilli.h>) 280 250 281 - void register_capi_driver(struct capi_driver *drvr) 282 - void unregister_capi_driver(struct capi_driver *drvr) 283 - register/unregister a driver with Kernel CAPI 251 + :: 284 252 285 - int attach_capi_ctr(struct capi_ctr *ctrlr) 286 - int detach_capi_ctr(struct capi_ctr *ctrlr) 287 - register/unregister a device (controller) with Kernel CAPI 253 + void register_capi_driver(struct capi_driver *drvr) 254 + void unregister_capi_driver(struct capi_driver *drvr) 288 255 289 - void capi_ctr_ready(struct capi_ctr *ctrlr) 290 - void capi_ctr_down(struct capi_ctr *ctrlr) 291 - signal controller ready/not ready 256 + register/unregister a driver with Kernel CAPI 292 257 293 - void capi_ctr_suspend_output(struct capi_ctr *ctrlr) 294 - void capi_ctr_resume_output(struct capi_ctr *ctrlr) 295 - signal suspend/resume 258 + :: 296 259 297 - void capi_ctr_handle_message(struct capi_ctr * ctrlr, u16 applid, 298 - struct sk_buff *skb) 299 - pass a received CAPI message to Kernel CAPI 300 - for forwarding to the specified application 260 + int attach_capi_ctr(struct capi_ctr *ctrlr) 261 + int detach_capi_ctr(struct capi_ctr *ctrlr) 262 + 263 + register/unregister a device (controller) with Kernel CAPI 264 + 265 + :: 266 + 267 + void capi_ctr_ready(struct capi_ctr *ctrlr) 268 + void capi_ctr_down(struct capi_ctr *ctrlr) 269 + 270 + signal controller ready/not ready 271 + 272 + :: 273 + 274 + void capi_ctr_suspend_output(struct capi_ctr *ctrlr) 275 + void capi_ctr_resume_output(struct capi_ctr *ctrlr) 276 + 277 + signal suspend/resume 278 + 279 + :: 280 + 281 + void capi_ctr_handle_message(struct capi_ctr * ctrlr, u16 applid, 282 + struct sk_buff *skb) 283 + 284 + pass a received CAPI message to Kernel CAPI 285 + for forwarding to the specified application 301 286 302 287 303 288 6. Helper Functions and Macros 289 + ============================== 304 290 305 291 Library functions (from <linux/isdn/capilli.h>): 306 292 307 - void capilib_new_ncci(struct list_head *head, u16 applid, 293 + :: 294 + 295 + void capilib_new_ncci(struct list_head *head, u16 applid, 308 296 u32 ncci, u32 winsize) 309 - void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci) 310 - void capilib_release_appl(struct list_head *head, u16 applid) 311 - void capilib_release(struct list_head *head) 312 - void capilib_data_b3_conf(struct list_head *head, u16 applid, 297 + void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci) 298 + void capilib_release_appl(struct list_head *head, u16 applid) 299 + void capilib_release(struct list_head *head) 300 + void capilib_data_b3_conf(struct list_head *head, u16 applid, 313 301 u32 ncci, u16 msgid) 314 - u16 capilib_data_b3_req(struct list_head *head, u16 applid, 302 + u16 capilib_data_b3_req(struct list_head *head, u16 applid, 315 303 u32 ncci, u16 msgid) 316 304 317 305 318 306 Macros to extract/set element values from/in a CAPI message header 319 307 (from <linux/isdn/capiutil.h>): 320 308 309 + ====================== ============================= ==================== 321 310 Get Macro Set Macro Element (Type) 322 - 311 + ====================== ============================= ==================== 323 312 CAPIMSG_LEN(m) CAPIMSG_SETLEN(m, len) Total Length (u16) 324 313 CAPIMSG_APPID(m) CAPIMSG_SETAPPID(m, applid) ApplID (u16) 325 314 CAPIMSG_COMMAND(m) CAPIMSG_SETCOMMAND(m,cmd) Command (u8) ··· 351 300 CAPIMSG_CONTROL(m) CAPIMSG_SETCONTROL(m, contr) Controller/PLCI/NCCI 352 301 (u32) 353 302 CAPIMSG_DATALEN(m) CAPIMSG_SETDATALEN(m, len) Data Length (u16) 303 + ====================== ============================= ==================== 354 304 355 305 356 306 Library functions for working with _cmsg structures 357 307 (from <linux/isdn/capiutil.h>): 358 308 359 - unsigned capi_cmsg2message(_cmsg *cmsg, u8 *msg) 360 - Assembles a CAPI 2.0 message from the parameters in *cmsg, storing the 361 - result in *msg. 309 + ``unsigned capi_cmsg2message(_cmsg *cmsg, u8 *msg)`` 310 + Assembles a CAPI 2.0 message from the parameters in ``*cmsg``, 311 + storing the result in ``*msg``. 362 312 363 - unsigned capi_message2cmsg(_cmsg *cmsg, u8 *msg) 364 - Disassembles the CAPI 2.0 message in *msg, storing the parameters in 365 - *cmsg. 313 + ``unsigned capi_message2cmsg(_cmsg *cmsg, u8 *msg)`` 314 + Disassembles the CAPI 2.0 message in ``*msg``, storing the parameters 315 + in ``*cmsg``. 366 316 367 - unsigned capi_cmsg_header(_cmsg *cmsg, u16 ApplId, u8 Command, u8 Subcommand, 368 - u16 Messagenumber, u32 Controller) 369 - Fills the header part and address field of the _cmsg structure *cmsg 317 + ``unsigned capi_cmsg_header(_cmsg *cmsg, u16 ApplId, u8 Command, u8 Subcommand, u16 Messagenumber, u32 Controller)`` 318 + Fills the header part and address field of the _cmsg structure ``*cmsg`` 370 319 with the given values, zeroing the remainder of the structure so only 371 320 parameters with non-default values need to be changed before sending 372 321 the message. 373 322 374 - void capi_cmsg_answer(_cmsg *cmsg) 375 - Sets the low bit of the Subcommand field in *cmsg, thereby converting 376 - _REQ to _CONF and _IND to _RESP. 323 + ``void capi_cmsg_answer(_cmsg *cmsg)`` 324 + Sets the low bit of the Subcommand field in ``*cmsg``, thereby 325 + converting ``_REQ`` to ``_CONF`` and ``_IND`` to ``_RESP``. 377 326 378 - char *capi_cmd2str(u8 Command, u8 Subcommand) 327 + ``char *capi_cmd2str(u8 Command, u8 Subcommand)`` 379 328 Returns the CAPI 2.0 message name corresponding to the given command 380 329 and subcommand values, as a static ASCII string. The return value may 381 330 be NULL if the command/subcommand is not one of those defined in the ··· 383 332 384 333 385 334 7. Debugging 335 + ============ 386 336 387 337 The module kernelcapi has a module parameter showcapimsgs controlling some 388 338 debugging output produced by the module. It can only be set when the module is
+143 -84
Documentation/isdn/README.avmb1 Documentation/isdn/avmb1.rst
··· 1 - Driver for active AVM Controller. 1 + ================================ 2 + Driver for active AVM Controller 3 + ================================ 2 4 3 5 The driver provides a kernel capi2.0 Interface (kernelcapi) and 4 6 on top of this a User-Level-CAPI2.0-interface (capi) ··· 13 11 t4-files can be found at ftp://ftp.avm.de/cardware/b1/linux/firmware 14 12 15 13 Currently supported cards: 16 - B1 ISA (all versions) 17 - B1 PCI 18 - T1/T1B (HEMA card) 19 - M1 20 - M2 21 - B1 PCMCIA 14 + 15 + - B1 ISA (all versions) 16 + - B1 PCI 17 + - T1/T1B (HEMA card) 18 + - M1 19 + - M2 20 + - B1 PCMCIA 22 21 23 22 Installing 24 23 ---------- 25 24 26 25 You need at least /dev/capi20 to load the firmware. 27 26 28 - mknod /dev/capi20 c 68 0 29 - mknod /dev/capi20.00 c 68 1 30 - mknod /dev/capi20.01 c 68 2 31 - . 32 - . 33 - . 34 - mknod /dev/capi20.19 c 68 20 27 + :: 28 + 29 + mknod /dev/capi20 c 68 0 30 + mknod /dev/capi20.00 c 68 1 31 + mknod /dev/capi20.01 c 68 2 32 + . 33 + . 34 + . 35 + mknod /dev/capi20.19 c 68 20 35 36 36 37 Running 37 38 ------- ··· 43 38 AVM GmbH provides several t4-files for the different D-channel 44 39 protocols (b1.t4 for Euro-ISDN). Install these file in /lib/isdn. 45 40 46 - if you configure as modules load the modules this way: 41 + if you configure as modules load the modules this way:: 47 42 48 - insmod /lib/modules/current/misc/capiutil.o 49 - insmod /lib/modules/current/misc/b1.o 50 - insmod /lib/modules/current/misc/kernelcapi.o 51 - insmod /lib/modules/current/misc/capidrv.o 52 - insmod /lib/modules/current/misc/capi.o 43 + insmod /lib/modules/current/misc/capiutil.o 44 + insmod /lib/modules/current/misc/b1.o 45 + insmod /lib/modules/current/misc/kernelcapi.o 46 + insmod /lib/modules/current/misc/capidrv.o 47 + insmod /lib/modules/current/misc/capi.o 53 48 54 - if you have an B1-PCI card load the module b1pci.o 55 - insmod /lib/modules/current/misc/b1pci.o 56 - and load the firmware with 57 - avmcapictrl load /lib/isdn/b1.t4 1 49 + if you have an B1-PCI card load the module b1pci.o:: 50 + 51 + insmod /lib/modules/current/misc/b1pci.o 52 + 53 + and load the firmware with:: 54 + 55 + avmcapictrl load /lib/isdn/b1.t4 1 58 56 59 57 if you have an B1-ISA card load the module b1isa.o 60 - and add the card by calling 61 - avmcapictrl add 0x150 15 62 - and load the firmware by calling 63 - avmcapictrl load /lib/isdn/b1.t4 1 58 + and add the card by calling:: 59 + 60 + avmcapictrl add 0x150 15 61 + 62 + and load the firmware by calling:: 63 + 64 + avmcapictrl load /lib/isdn/b1.t4 1 64 65 65 66 if you have an T1-ISA card load the module t1isa.o 66 - and add the card by calling 67 - avmcapictrl add 0x450 15 T1 0 68 - and load the firmware by calling 69 - avmcapictrl load /lib/isdn/t1.t4 1 67 + and add the card by calling:: 68 + 69 + avmcapictrl add 0x450 15 T1 0 70 + 71 + and load the firmware by calling:: 72 + 73 + avmcapictrl load /lib/isdn/t1.t4 1 70 74 71 75 if you have an PCMCIA card (B1/M1/M2) load the module b1pcmcia.o 72 76 before you insert the card. 73 77 74 78 Leased Lines with B1 75 79 -------------------- 80 + 76 81 Init card and load firmware. 82 + 77 83 For an D64S use "FV: 1" as phone number 84 + 78 85 For an D64S2 use "FV: 1" and "FV: 2" for multilink 79 86 or "FV: 1,2" to use CAPI channel bundling. 80 87 81 88 /proc-Interface 82 89 ----------------- 83 90 84 - /proc/capi: 91 + /proc/capi:: 92 + 85 93 dr-xr-xr-x 2 root root 0 Jul 1 14:03 . 86 94 dr-xr-xr-x 82 root root 0 Jun 30 19:08 .. 87 95 -r--r--r-- 1 root root 0 Jul 1 14:03 applications ··· 109 91 110 92 /proc/capi/applications: 111 93 applid level3cnt datablkcnt datablklen ncci-cnt recvqueuelen 112 - level3cnt: capi_register parameter 113 - datablkcnt: capi_register parameter 114 - ncci-cnt: current number of nccis (connections) 115 - recvqueuelen: number of messages on receive queue 116 - for example: 117 - 1 -2 16 2048 1 0 118 - 2 2 7 2048 1 0 94 + level3cnt: 95 + capi_register parameter 96 + datablkcnt: 97 + capi_register parameter 98 + ncci-cnt: 99 + current number of nccis (connections) 100 + recvqueuelen: 101 + number of messages on receive queue 102 + 103 + for example:: 104 + 105 + 1 -2 16 2048 1 0 106 + 2 2 7 2048 1 0 119 107 120 108 /proc/capi/applstats: 121 109 applid recvctlmsg nrecvdatamsg nsentctlmsg nsentdatamsg 122 - recvctlmsg: capi messages received without DATA_B3_IND 123 - recvdatamsg: capi DATA_B3_IND received 124 - sentctlmsg: capi messages sent without DATA_B3_REQ 125 - sentdatamsg: capi DATA_B3_REQ sent 126 - for example: 127 - 1 2057 1699 1721 1699 110 + recvctlmsg: 111 + capi messages received without DATA_B3_IND 112 + recvdatamsg: 113 + capi DATA_B3_IND received 114 + sentctlmsg: 115 + capi messages sent without DATA_B3_REQ 116 + sentdatamsg: 117 + capi DATA_B3_REQ sent 118 + 119 + for example:: 120 + 121 + 1 2057 1699 1721 1699 128 122 129 123 /proc/capi/capi20: statistics of capi.o (/dev/capi20) 130 124 minor nopen nrecvdropmsg nrecvctlmsg nrecvdatamsg sentctlmsg sentdatamsg 131 - minor: minor device number of capi device 132 - nopen: number of calls to devices open 133 - nrecvdropmsg: capi messages dropped (messages in recvqueue in close) 134 - nrecvctlmsg: capi messages received without DATA_B3_IND 135 - nrecvdatamsg: capi DATA_B3_IND received 136 - nsentctlmsg: capi messages sent without DATA_B3_REQ 137 - nsentdatamsg: capi DATA_B3_REQ sent 125 + minor: 126 + minor device number of capi device 127 + nopen: 128 + number of calls to devices open 129 + nrecvdropmsg: 130 + capi messages dropped (messages in recvqueue in close) 131 + nrecvctlmsg: 132 + capi messages received without DATA_B3_IND 133 + nrecvdatamsg: 134 + capi DATA_B3_IND received 135 + nsentctlmsg: 136 + capi messages sent without DATA_B3_REQ 137 + nsentdatamsg: 138 + capi DATA_B3_REQ sent 138 139 139 - for example: 140 - 1 2 18 0 16 2 140 + for example:: 141 + 142 + 1 2 18 0 16 2 141 143 142 144 /proc/capi/capidrv: statistics of capidrv.o (capi messages) 143 145 nrecvctlmsg nrecvdatamsg sentctlmsg sentdatamsg 144 - nrecvctlmsg: capi messages received without DATA_B3_IND 145 - nrecvdatamsg: capi DATA_B3_IND received 146 - nsentctlmsg: capi messages sent without DATA_B3_REQ 147 - nsentdatamsg: capi DATA_B3_REQ sent 146 + nrecvctlmsg: 147 + capi messages received without DATA_B3_IND 148 + nrecvdatamsg: 149 + capi DATA_B3_IND received 150 + nsentctlmsg: 151 + capi messages sent without DATA_B3_REQ 152 + nsentdatamsg: 153 + capi DATA_B3_REQ sent 154 + 148 155 for example: 149 - 2780 2226 2256 2226 156 + 2780 2226 2256 2226 150 157 151 158 /proc/capi/controller: 152 159 controller drivername state cardname controllerinfo 153 - for example: 154 - 1 b1pci running b1pci-e000 B1 3.07-01 0xe000 19 155 - 2 t1isa running t1isa-450 B1 3.07-01 0x450 11 0 156 - 3 b1pcmcia running m2-150 B1 3.07-01 0x150 5 160 + 161 + for example:: 162 + 163 + 1 b1pci running b1pci-e000 B1 3.07-01 0xe000 19 164 + 2 t1isa running t1isa-450 B1 3.07-01 0x450 11 0 165 + 3 b1pcmcia running m2-150 B1 3.07-01 0x150 5 157 166 158 167 /proc/capi/contrstats: 159 168 controller nrecvctlmsg nrecvdatamsg sentctlmsg sentdatamsg 160 - nrecvctlmsg: capi messages received without DATA_B3_IND 161 - nrecvdatamsg: capi DATA_B3_IND received 162 - nsentctlmsg: capi messages sent without DATA_B3_REQ 163 - nsentdatamsg: capi DATA_B3_REQ sent 164 - for example: 165 - 1 2845 2272 2310 2274 166 - 2 2 0 2 0 167 - 3 2 0 2 0 169 + nrecvctlmsg: 170 + capi messages received without DATA_B3_IND 171 + nrecvdatamsg: 172 + capi DATA_B3_IND received 173 + nsentctlmsg: 174 + capi messages sent without DATA_B3_REQ 175 + nsentdatamsg: 176 + capi DATA_B3_REQ sent 177 + 178 + for example:: 179 + 180 + 1 2845 2272 2310 2274 181 + 2 2 0 2 0 182 + 3 2 0 2 0 168 183 169 184 /proc/capi/driver: 170 185 drivername ncontroller 171 - for example: 172 - b1pci 1 173 - t1isa 1 174 - b1pcmcia 1 175 - b1isa 0 186 + 187 + for example:: 188 + 189 + b1pci 1 190 + t1isa 1 191 + b1pcmcia 1 192 + b1isa 0 176 193 177 194 /proc/capi/ncci: 178 195 apllid ncci winsize sendwindow 179 - for example: 180 - 1 0x10101 8 0 196 + 197 + for example:: 198 + 199 + 1 0x10101 8 0 181 200 182 201 /proc/capi/users: kernelmodules that use the kernelcapi. 183 202 name 184 - for example: 185 - capidrv 186 - capi20 203 + 204 + for example:: 205 + 206 + capidrv 207 + capi20 187 208 188 209 Questions 189 210 --------- 211 + 190 212 Check out the FAQ (ftp.isdn4linux.de) or subscribe to the 191 213 linux-avmb1@calle.in-berlin.de mailing list by sending 192 214 a mail to majordomo@calle.in-berlin.de with ··· 236 178 German documentation and several scripts can be found at 237 179 ftp://ftp.avm.de/cardware/b1/linux/ 238 180 239 - Bugs 181 + Bugs 240 182 ---- 241 - If you find any please let me know. 183 + 184 + If you find any please let me know. 242 185 243 186 Enjoy, 244 187
+181 -119
Documentation/isdn/README.gigaset Documentation/isdn/gigaset.rst
··· 1 + ========================== 1 2 GigaSet 307x Device Driver 2 3 ========================== 3 4 4 5 1. Requirements 5 - ------------ 6 + ================= 7 + 6 8 1.1. Hardware 7 - -------- 9 + ------------- 10 + 8 11 This driver supports the connection of the Gigaset 307x/417x family of 9 12 ISDN DECT bases via Gigaset M101 Data, Gigaset M105 Data or direct USB 10 13 connection. The following devices are reported to be compatible: 11 14 12 15 Bases: 13 - Siemens Gigaset 3070/3075 isdn 14 - Siemens Gigaset 4170/4175 isdn 15 - Siemens Gigaset SX205/255 16 - Siemens Gigaset SX353 17 - T-Com Sinus 45 [AB] isdn 18 - T-Com Sinus 721X[A] [SE] 19 - Vox Chicago 390 ISDN (KPN Telecom) 16 + - Siemens Gigaset 3070/3075 isdn 17 + - Siemens Gigaset 4170/4175 isdn 18 + - Siemens Gigaset SX205/255 19 + - Siemens Gigaset SX353 20 + - T-Com Sinus 45 [AB] isdn 21 + - T-Com Sinus 721X[A] [SE] 22 + - Vox Chicago 390 ISDN (KPN Telecom) 20 23 21 24 RS232 data boxes: 22 - Siemens Gigaset M101 Data 23 - T-Com Sinus 45 Data 1 25 + - Siemens Gigaset M101 Data 26 + - T-Com Sinus 45 Data 1 24 27 25 28 USB data boxes: 26 - Siemens Gigaset M105 Data 27 - Siemens Gigaset USB Adapter DECT 28 - T-Com Sinus 45 Data 2 29 - T-Com Sinus 721 data 30 - Chicago 390 USB (KPN) 29 + - Siemens Gigaset M105 Data 30 + - Siemens Gigaset USB Adapter DECT 31 + - T-Com Sinus 45 Data 2 32 + - T-Com Sinus 721 data 33 + - Chicago 390 USB (KPN) 31 34 32 35 See also http://www.erbze.info/sinus_gigaset.htm 33 36 (archived at https://web.archive.org/web/20100717020421/http://www.erbze.info:80/sinus_gigaset.htm ) and ··· 40 37 with SX 100 and CX 100 ISDN bases (only in unimodem mode, see section 2.5.) 41 38 If you have another device that works with our driver, please let us know. 42 39 43 - Chances of getting an USB device to work are good if the output of 44 - lsusb 45 - at the command line contains one of the following: 46 - ID 0681:0001 47 - ID 0681:0002 48 - ID 0681:0009 49 - ID 0681:0021 50 - ID 0681:0022 40 + Chances of getting an USB device to work are good if the output of:: 41 + 42 + lsusb 43 + 44 + at the command line contains one of the following:: 45 + 46 + ID 0681:0001 47 + ID 0681:0002 48 + ID 0681:0009 49 + ID 0681:0021 50 + ID 0681:0022 51 51 52 52 1.2. Software 53 - -------- 53 + ------------- 54 + 54 55 The driver works with the Kernel CAPI subsystem and can be used with any 55 56 software which is able to use CAPI 2.0 for ISDN connections (voice or data). 56 57 ··· 65 58 66 59 67 60 2. How to use the driver 68 - --------------------- 61 + ========================== 62 + 69 63 2.1. Modules 70 - ------- 64 + ------------ 65 + 71 66 For the devices to work, the proper kernel modules have to be loaded. 72 67 This normally happens automatically when the system detects the USB 73 68 device (base, M105) or when the line discipline is attached (M101). It ··· 80 71 which uses the regular serial port driver to access the device, and must 81 72 therefore be attached to the serial device to which the M101 is connected. 82 73 The ldattach(8) command (included in util-linux-ng release 2.14 or later) 83 - can be used for that purpose, for example: 74 + can be used for that purpose, for example:: 75 + 84 76 ldattach GIGASET_M101 /dev/ttyS1 77 + 85 78 This will open the device file, attach the line discipline to it, and 86 79 then sleep in the background, keeping the device open so that the line 87 80 discipline remains active. To deactivate it, kill the daemon, for example 88 - with 81 + with:: 82 + 89 83 killall ldattach 84 + 90 85 before disconnecting the device. To have this happen automatically at 91 86 system startup/shutdown on an LSB compatible system, create and activate 92 87 an appropriate LSB startup script /etc/init.d/gigaset. (The init name ··· 99 86 100 87 The modules accept the following parameters: 101 88 102 - Module Parameter Meaning 89 + =============== ========== ========================================== 90 + Module Parameter Meaning 103 91 104 - gigaset debug debug level (see section 3.2.) 92 + gigaset debug debug level (see section 3.2.) 105 93 106 94 startmode initial operation mode (see section 2.5.): 107 95 bas_gigaset ) 1=CAPI (default), 0=Unimodem ··· 110 96 usb_gigaset ) cidmode initial Call-ID mode setting (see section 111 97 2.5.): 1=on (default), 0=off 112 98 99 + =============== ========== ========================================== 100 + 113 101 Depending on your distribution you may want to create a separate module 114 102 configuration file like /etc/modprobe.d/gigaset.conf for these. 115 103 116 104 2.2. Device nodes for user space programs 117 - ------------------------------------ 105 + ----------------------------------------- 106 + 118 107 The device can be accessed from user space (eg. by the user space tools 119 108 mentioned in 1.2.) through the device nodes: 120 109 ··· 130 113 131 114 You can also set a "default device" for the user space tools to use when 132 115 no device node is given as parameter, by creating a symlink /dev/ttyG to 133 - one of them, eg.: 116 + one of them, eg.:: 134 117 135 118 ln -s /dev/ttyGB0 /dev/ttyG 136 119 137 120 The devices accept the following device specific ioctl calls 138 121 (defined in gigaset_dev.h): 139 122 140 - ioctl(int fd, GIGASET_REDIR, int *cmd); 123 + ``ioctl(int fd, GIGASET_REDIR, int *cmd);`` 124 + 141 125 If cmd==1, the device is set to be controlled exclusively through the 142 126 character device node; access from the ISDN subsystem is blocked. 127 + 143 128 If cmd==0, the device is set to be used from the ISDN subsystem and does 144 129 not communicate through the character device node. 145 130 146 - ioctl(int fd, GIGASET_CONFIG, int *cmd); 131 + ``ioctl(int fd, GIGASET_CONFIG, int *cmd);`` 132 + 147 133 (ser_gigaset and usb_gigaset only) 134 + 148 135 If cmd==1, the device is set to adapter configuration mode where commands 149 136 are interpreted by the M10x DECT adapter itself instead of being 150 137 forwarded to the base station. In this mode, the device accepts the 151 138 commands described in Siemens document "AT-Kommando Alignment M10x Data" 152 139 for setting the operation mode, associating with a base station and 153 140 querying parameters like field strengh and signal quality. 141 + 154 142 Note that there is no ioctl command for leaving adapter configuration 155 143 mode and returning to regular operation. In order to leave adapter 156 144 configuration mode, write the command ATO to the device. 157 145 158 - ioctl(int fd, GIGASET_BRKCHARS, unsigned char brkchars[6]); 146 + ``ioctl(int fd, GIGASET_BRKCHARS, unsigned char brkchars[6]);`` 147 + 159 148 (usb_gigaset only) 149 + 160 150 Set the break characters on an M105's internal serial adapter to the six 161 151 bytes stored in brkchars[]. Unused bytes should be set to zero. 162 152 163 153 ioctl(int fd, GIGASET_VERSION, unsigned version[4]); 164 154 Retrieve version information from the driver. version[0] must be set to 165 155 one of: 156 + 166 157 - GIGVER_DRIVER: retrieve driver version 167 158 - GIGVER_COMPAT: retrieve interface compatibility version 168 159 - GIGVER_FWBASE: retrieve the firmware version of the base 160 + 169 161 Upon return, version[] is filled with the requested version information. 170 162 171 163 2.3. CAPI 172 - ---- 164 + --------- 165 + 173 166 The devices will show up as CAPI controllers as soon as the 174 167 corresponding driver module is loaded, and can then be used with 175 168 CAPI 2.0 kernel and user space applications. For user space access, ··· 192 165 driver. 193 166 194 167 2.5. Unimodem mode 195 - ------------- 196 - In this mode the device works like a modem connected to a serial port 197 - (the /dev/ttyGU0, ... mentioned above) which understands the commands 168 + ------------------ 198 169 199 - ATZ init, reset 200 - => OK or ERROR 201 - ATD 202 - ATDT dial 203 - => OK, CONNECT, 204 - BUSY, 205 - NO DIAL TONE, 206 - NO CARRIER, 207 - NO ANSWER 208 - <pause>+++<pause> change to command mode when connected 209 - ATH hangup 170 + In this mode the device works like a modem connected to a serial port 171 + (the /dev/ttyGU0, ... mentioned above) which understands the commands:: 172 + 173 + ATZ init, reset 174 + => OK or ERROR 175 + ATD 176 + ATDT dial 177 + => OK, CONNECT, 178 + BUSY, 179 + NO DIAL TONE, 180 + NO CARRIER, 181 + NO ANSWER 182 + <pause>+++<pause> change to command mode when connected 183 + ATH hangup 210 184 211 185 You can use some configuration tool of your distribution to configure this 212 186 "modem" or configure pppd/wvdial manually. There are some example ppp ··· 217 189 control lines. This means you must use "Stupid Mode" if you are using 218 190 wvdial or you should use the nocrtscts option of pppd. 219 191 You must also assure that the ppp_async module is loaded with the parameter 220 - flag_time=0. You can do this e.g. by adding a line like 192 + flag_time=0. You can do this e.g. by adding a line like:: 221 193 222 - options ppp_async flag_time=0 194 + options ppp_async flag_time=0 223 195 224 - to an appropriate module configuration file, like 225 - /etc/modprobe.d/gigaset.conf. 196 + to an appropriate module configuration file, like:: 197 + 198 + /etc/modprobe.d/gigaset.conf. 226 199 227 200 Unimodem mode is needed for making some devices [e.g. SX100] work which 228 201 do not support the regular Gigaset command set. If debug output (see 229 - section 3.2.) shows something like this when dialing: 230 - CMD Received: ERROR 231 - Available Params: 0 232 - Connection State: 0, Response: -1 233 - gigaset_process_response: resp_code -1 in ConState 0 ! 234 - Timeout occurred 202 + section 3.2.) shows something like this when dialing:: 203 + 204 + CMD Received: ERROR 205 + Available Params: 0 206 + Connection State: 0, Response: -1 207 + gigaset_process_response: resp_code -1 in ConState 0 ! 208 + Timeout occurred 209 + 235 210 then switching to unimodem mode may help. 236 211 237 212 If you have installed the command line tool gigacontr, you can enter 238 - unimodem mode using 239 - gigacontr --mode unimodem 240 - You can switch back using 241 - gigacontr --mode isdn 213 + unimodem mode using:: 214 + 215 + gigacontr --mode unimodem 216 + 217 + You can switch back using:: 218 + 219 + gigacontr --mode isdn 242 220 243 221 You can also put the driver directly into Unimodem mode when it's loaded, 244 222 by passing the module parameter startmode=0 to the hardware specific 245 - module, e.g. 223 + module, e.g.:: 224 + 246 225 modprobe usb_gigaset startmode=0 247 - or by adding a line like 226 + 227 + or by adding a line like:: 228 + 248 229 options usb_gigaset startmode=0 249 - to an appropriate module configuration file, like 250 - /etc/modprobe.d/gigaset.conf 230 + 231 + to an appropriate module configuration file, like:: 232 + 233 + /etc/modprobe.d/gigaset.conf 251 234 252 235 2.6. Call-ID (CID) mode 253 - ------------------ 236 + ----------------------- 237 + 254 238 Call-IDs are numbers used to tag commands to, and responses from, the 255 239 Gigaset base in order to support the simultaneous handling of multiple 256 240 ISDN calls. Their use can be enabled ("CID mode") or disabled ("Unimodem ··· 278 238 During active operation, the driver switches to the necessary mode 279 239 automatically. However, for the reasons above, the mode chosen when 280 240 the device is not in use (idle) can be selected by the user. 241 + 281 242 - If you want to receive incoming calls, you can use the default 282 243 settings (CID mode). 283 244 - If you have several DECT data devices (M10x) which you want to use ··· 288 247 If you want both of these at once, you are out of luck. 289 248 290 249 You can also use the tty class parameter "cidmode" of the device to 291 - change its CID mode while the driver is loaded, eg. 292 - echo 0 > /sys/class/tty/ttyGU0/cidmode 250 + change its CID mode while the driver is loaded, eg.:: 251 + 252 + echo 0 > /sys/class/tty/ttyGU0/cidmode 293 253 294 254 2.7. Dialing Numbers 295 - --------------- 296 - The called party number provided by an application for dialing out must 255 + -------------------- 256 + provided by an application for dialing out must 297 257 be a public network number according to the local dialing plan, without 298 258 any dial prefix for getting an outside line. 299 259 300 260 Internal calls can be made by providing an internal extension number 301 - prefixed with "**" (two asterisks) as the called party number. So to dial 302 - eg. the first registered DECT handset, give "**11" as the called party 303 - number. Dialing "***" (three asterisks) calls all extensions 261 + prefixed with ``**`` (two asterisks) as the called party number. So to dial 262 + eg. the first registered DECT handset, give ``**11`` as the called party 263 + number. Dialing ``***`` (three asterisks) calls all extensions 304 264 simultaneously (global call). 305 265 306 266 Unimodem mode does not support internal calls. 307 267 308 268 2.8. Unregistered Wireless Devices (M101/M105) 309 - ----------------------------------------- 269 + ---------------------------------------------- 270 + 310 271 The main purpose of the ser_gigaset and usb_gigaset drivers is to allow 311 272 the M101 and M105 wireless devices to be used as ISDN devices for ISDN 312 273 connections through a Gigaset base. Therefore they assume that the device ··· 322 279 modes. See the gigacontr(8) manpage for details. 323 280 324 281 3. Troubleshooting 325 - --------------- 282 + ==================== 283 + 326 284 3.1. Solutions to frequently reported problems 327 - ----------------------------------------- 328 - Problem: 329 - You have a slow provider and isdn4linux gives up dialing too early. 330 - Solution: 331 - Load the isdn module using the dialtimeout option. You can do this e.g. 332 - by adding a line like 333 - 334 - options isdn dialtimeout=15 335 - 336 - to /etc/modprobe.d/gigaset.conf or a similar file. 285 + ---------------------------------------------- 337 286 338 287 Problem: 339 - The isdnlog program emits error messages or just doesn't work. 288 + You have a slow provider and isdn4linux gives up dialing too early. 340 289 Solution: 341 - Isdnlog supports only the HiSax driver. Do not attempt to use it with 290 + Load the isdn module using the dialtimeout option. You can do this e.g. 291 + by adding a line like:: 292 + 293 + options isdn dialtimeout=15 294 + 295 + to /etc/modprobe.d/gigaset.conf or a similar file. 296 + 297 + Problem: 298 + The isdnlog program emits error messages or just doesn't work. 299 + Solution: 300 + Isdnlog supports only the HiSax driver. Do not attempt to use it with 342 301 other drivers such as Gigaset. 343 302 344 303 Problem: 345 - You have two or more DECT data adapters (M101/M105) and only the 346 - first one you turn on works. 304 + You have two or more DECT data adapters (M101/M105) and only the 305 + first one you turn on works. 347 306 Solution: 348 - Select Unimodem mode for all DECT data adapters. (see section 2.5.) 307 + Select Unimodem mode for all DECT data adapters. (see section 2.5.) 349 308 350 309 Problem: 351 - Messages like this: 310 + Messages like this:: 311 + 352 312 usb_gigaset 3-2:1.0: Could not initialize the device. 313 + 353 314 appear in your syslog. 354 315 Solution: 355 316 Check whether your M10x wireless device is correctly registered to the 356 317 Gigaset base. (see section 2.7.) 357 318 358 319 3.2. Telling the driver to provide more information 359 - ---------------------------------------------- 320 + --------------------------------------------------- 360 321 Building the driver with the "Gigaset debugging" kernel configuration 361 322 option (CONFIG_GIGASET_DEBUG) gives it the ability to produce additional 362 323 information useful for debugging. 363 324 364 325 You can control the amount of debugging information the driver produces by 365 - writing an appropriate value to /sys/module/gigaset/parameters/debug, e.g. 366 - echo 0 > /sys/module/gigaset/parameters/debug 326 + writing an appropriate value to /sys/module/gigaset/parameters/debug, 327 + e.g.:: 328 + 329 + echo 0 > /sys/module/gigaset/parameters/debug 330 + 367 331 switches off debugging output completely, 368 - echo 0x302020 > /sys/module/gigaset/parameters/debug 332 + 333 + :: 334 + 335 + echo 0x302020 > /sys/module/gigaset/parameters/debug 336 + 369 337 enables a reasonable set of debugging output messages. These values are 370 338 bit patterns where every bit controls a certain type of debugging output. 371 339 See the constants DEBUG_* in the source file gigaset.h for details. 372 340 373 341 The initial value can be set using the debug parameter when loading the 374 - module "gigaset", e.g. by adding a line 375 - options gigaset debug=0 342 + module "gigaset", e.g. by adding a line:: 343 + 344 + options gigaset debug=0 345 + 376 346 to your module configuration file, eg. /etc/modprobe.d/gigaset.conf 377 347 378 348 Generated debugging information can be found 379 - - as output of the command 380 - dmesg 349 + - as output of the command:: 350 + 351 + dmesg 352 + 381 353 - in system log files written by your syslog daemon, usually 382 354 in /var/log/, e.g. /var/log/messages. 383 355 384 356 3.3. Reporting problems and bugs 385 - --------------------------- 357 + -------------------------------- 386 358 If you can't solve problems with the driver on your own, feel free to 387 359 use one of the forums, bug trackers, or mailing lists on 388 - https://sourceforge.net/projects/gigaset307x 360 + 361 + https://sourceforge.net/projects/gigaset307x 362 + 389 363 or write an electronic mail to the maintainers. 390 364 391 365 Try to provide as much information as possible, such as 366 + 392 367 - distribution 393 368 - kernel version (uname -r) 394 369 - gcc version (gcc --version) ··· 423 362 appropriate forums and newsgroups. 424 363 425 364 3.4. Reporting problem solutions 426 - --------------------------- 365 + -------------------------------- 427 366 If you solved a problem with our drivers, wrote startup scripts for your 428 367 distribution, ... feel free to contact us (using one of the places 429 368 mentioned in 3.3.). We'd like to add scripts, hints, documentation ··· 431 370 432 371 433 372 4. Links, other software 434 - --------------------- 373 + ========================== 374 + 435 375 - Sourceforge project developing this driver and associated tools 436 - https://sourceforge.net/projects/gigaset307x 376 + https://sourceforge.net/projects/gigaset307x 437 377 - Yahoo! Group on the Siemens Gigaset family of devices 438 - https://de.groups.yahoo.com/group/Siemens-Gigaset 378 + https://de.groups.yahoo.com/group/Siemens-Gigaset 439 379 - Siemens Gigaset/T-Sinus compatibility table 440 - http://www.erbze.info/sinus_gigaset.htm 380 + http://www.erbze.info/sinus_gigaset.htm 441 381 (archived at https://web.archive.org/web/20100717020421/http://www.erbze.info:80/sinus_gigaset.htm ) 442 382 443 383 444 384 5. Credits 445 - ------- 385 + ============ 386 + 446 387 Thanks to 447 388 448 389 Karsten Keil 449 - for his help with isdn4linux 390 + for his help with isdn4linux 450 391 Deti Fliegl 451 - for his base driver code 392 + for his base driver code 452 393 Dennis Dietrich 453 - for his kernel 2.6 patches 394 + for his kernel 2.6 patches 454 395 Andreas Rummel 455 - for his work and logs to get unimodem mode working 396 + for his work and logs to get unimodem mode working 456 397 Andreas Degert 457 - for his logs and patches to get cx 100 working 398 + for his logs and patches to get cx 100 working 458 399 Dietrich Feist 459 - for his generous donation of one M105 and two M101 cordless adapters 400 + for his generous donation of one M105 and two M101 cordless adapters 460 401 Christoph Schweers 461 - for his generous donation of a M34 device 402 + for his generous donation of a M34 device 462 403 463 404 and all the other people who sent logs and other information. 464 -
+71 -70
Documentation/isdn/README.hysdn Documentation/isdn/hysdn.rst
··· 1 - $Id: README.hysdn,v 1.3.6.1 2001/02/10 14:41:19 kai Exp $ 1 + ============ 2 + Hysdn Driver 3 + ============ 4 + 2 5 The hysdn driver has been written by 3 6 Werner Cornelius (werner@isdn4linux.de or werner@titro.de) 4 7 for Hypercope GmbH Aachen Germany. Hypercope agreed to publish this driver ··· 25 22 along with this program; if not, write to the Free Software 26 23 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 27 24 28 - Table of contents 29 - ================= 25 + .. Table of contents 26 + 27 + 1. About the driver 28 + 29 + 2. Loading/Unloading the driver 30 + 31 + 3. Entries in the /proc filesystem 32 + 33 + 4. The /proc/net/hysdn/cardconfX file 34 + 35 + 5. The /proc/net/hysdn/cardlogX file 36 + 37 + 6. Where to get additional info and help 38 + 30 39 31 40 1. About the driver 41 + =================== 32 42 33 - 2. Loading/Unloading the driver 34 - 35 - 3. Entries in the /proc filesystem 36 - 37 - 4. The /proc/net/hysdn/cardconfX file 38 - 39 - 5. The /proc/net/hysdn/cardlogX file 40 - 41 - 6. Where to get additional info and help 42 - 43 - 44 - 1. About the driver 45 - 46 - The drivers/isdn/hysdn subdir contains a driver for HYPERCOPEs active 43 + The drivers/isdn/hysdn subdir contains a driver for HYPERCOPEs active 47 44 PCI isdn cards Champ, Ergo and Metro. To enable support for this cards 48 45 enable ISDN support in the kernel config and support for HYSDN cards in 49 - the active cards submenu. The driver may only be compiled and used if 46 + the active cards submenu. The driver may only be compiled and used if 50 47 support for loadable modules and the process filesystem have been enabled. 51 48 52 49 These cards provide two different interfaces to the kernel. Without the ··· 55 52 handlers for various protocols like ppp and others as well as config info 56 53 and firmware may be fetched from Hypercopes WWW-Site www.hypercope.de. 57 54 58 - With CAPI 2.0 support enabled, the card can also be used as a CAPI 2.0 59 - compliant devices with either CAPI 2.0 applications 55 + With CAPI 2.0 support enabled, the card can also be used as a CAPI 2.0 56 + compliant devices with either CAPI 2.0 applications 60 57 (check isdn4k-utils) or -using the capidrv module- as a regular 61 - isdn4linux device. This is done via the same mechanism as with the 58 + isdn4linux device. This is done via the same mechanism as with the 62 59 active AVM cards and in fact uses the same module. 63 - 60 + 64 61 65 62 2. Loading/Unloading the driver 63 + =============================== 66 64 67 65 The module has no command line parameters and auto detects up to 10 cards 68 66 in the id-range 0-9. 69 67 If a loaded driver shall be unloaded all open files in the /proc/net/hysdn 70 - subdir need to be closed and all ethernet interfaces allocated by this 68 + subdir need to be closed and all ethernet interfaces allocated by this 71 69 driver must be shut down. Otherwise the module counter will avoid a module 72 70 unload. 73 - 71 + 74 72 If you are using the CAPI 2.0-interface, make sure to load/modprobe the 75 73 kernelcapi-module first. 76 74 ··· 80 76 any avm-specific modules). 81 77 82 78 3. Entries in the /proc filesystem 79 + ================================== 83 80 84 - When the module has been loaded it adds the directory hysdn in the 85 - /proc/net tree. This directory contains exactly 2 file entries for each 81 + When the module has been loaded it adds the directory hysdn in the 82 + /proc/net tree. This directory contains exactly 2 file entries for each 86 83 card. One is called cardconfX and the other cardlogX, where X is the 87 - card id number from 0 to 9. 84 + card id number from 0 to 9. 88 85 The cards are numbered in the order found in the PCI config data. 89 86 90 87 4. The /proc/net/hysdn/cardconfX file 88 + ===================================== 91 89 92 - This file may be read to get by everyone to get info about the cards type, 90 + This file may be read to get by everyone to get info about the cards type, 93 91 actual state, available features and used resources. 94 92 The first 3 entries (id, bus and slot) are PCI info fields, the following 95 93 type field gives the information about the cards type: 96 94 97 - 4 -> Ergo card (server card with 2 b-chans) 98 - 5 -> Metro card (server card with 4 or 8 b-chans) 99 - 6 -> Champ card (client card with 2 b-chans) 95 + - 4 -> Ergo card (server card with 2 b-chans) 96 + - 5 -> Metro card (server card with 4 or 8 b-chans) 97 + - 6 -> Champ card (client card with 2 b-chans) 100 98 101 99 The following 3 fields show the hardware assignments for irq, iobase and the 102 100 dual ported memory (dp-mem). 101 + 103 102 The fields b-chans and fax-chans announce the available card resources of 104 103 this types for the user. 104 + 105 105 The state variable indicates the actual drivers state for this card with the 106 106 following assignments. 107 107 108 - 0 -> card has not been booted since driver load 109 - 1 -> card booting is actually in progess 110 - 2 -> card is in an error state due to a previous boot failure 111 - 3 -> card is booted and active 108 + - 0 -> card has not been booted since driver load 109 + - 1 -> card booting is actually in progess 110 + - 2 -> card is in an error state due to a previous boot failure 111 + - 3 -> card is booted and active 112 112 113 113 And the last field (device) shows the name of the ethernet device assigned 114 114 to this card. Up to the first successful boot this field only shows a - 115 115 to tell that no net device has been allocated up to now. Once a net device 116 116 has been allocated it remains assigned to this card, even if a card is 117 - rebooted and an boot error occurs. 117 + rebooted and an boot error occurs. 118 118 119 - Writing to the cardconfX file boots the card or transfers config lines to 120 - the cards firmware. The type of data is automatically detected when the 119 + Writing to the cardconfX file boots the card or transfers config lines to 120 + the cards firmware. The type of data is automatically detected when the 121 121 first data is written. Only root has write access to this file. 122 122 The firmware boot files are normally called hyclient.pof for client cards 123 123 and hyserver.pof for server cards. 124 124 After successfully writing the boot file, complete config files or single 125 125 config lines may be copied to this file. 126 - If an error occurs the return value given to the writing process has the 126 + If an error occurs the return value given to the writing process has the 127 127 following additional codes (decimal): 128 128 129 + ==== ============================================ 129 130 1000 Another process is currently bootng the card 130 131 1001 Invalid firmware header 131 132 1002 Boards dual-port RAM test failed ··· 140 131 1006 Second boot stage failure 141 132 1007 Timeout waiting for card ready during boot 142 133 1008 Operation only allowed in booted state 143 - 1009 Config line too long 144 - 1010 Invalid channel number 134 + 1009 Config line too long 135 + 1010 Invalid channel number 145 136 1011 Timeout sending config data 137 + ==== ============================================ 146 138 147 - Additional info about error reasons may be fetched from the log output. 139 + Additional info about error reasons may be fetched from the log output. 148 140 149 141 5. The /proc/net/hysdn/cardlogX file 150 - 151 - The cardlogX file entry may be opened multiple for reading by everyone to 142 + ==================================== 143 + 144 + The cardlogX file entry may be opened multiple for reading by everyone to 152 145 get the cards and drivers log data. Card messages always start with the 153 - keyword LOG. All other lines are output from the driver. 154 - The driver log data may be redirected to the syslog by selecting the 146 + keyword LOG. All other lines are output from the driver. 147 + The driver log data may be redirected to the syslog by selecting the 155 148 appropriate bitmask. The cards log messages will always be send to this 156 149 interface but never to the syslog. 157 150 158 151 A root user may write a decimal or hex (with 0x) value t this file to select 159 - desired output options. As mentioned above the cards log dat is always 152 + desired output options. As mentioned above the cards log dat is always 160 153 written to the cardlog file independent of the following options only used 161 154 to check and debug the driver itself: 162 155 163 - For example: 164 - echo "0x34560078" > /proc/net/hysdn/cardlog0 156 + For example:: 157 + 158 + echo "0x34560078" > /proc/net/hysdn/cardlog0 159 + 165 160 to output the hex log mask 34560078 for card 0. 166 - 167 - The written value is regarded as an unsigned 32-Bit value, bit ored for 161 + 162 + The written value is regarded as an unsigned 32-Bit value, bit ored for 168 163 desired output. The following bits are already assigned: 169 164 170 - 0x80000000 All driver log data is alternatively via syslog 165 + ========== ============================================================ 166 + 0x80000000 All driver log data is alternatively via syslog 171 167 0x00000001 Log memory allocation errors 172 168 0x00000010 Firmware load start and close are logged 173 169 0x00000020 Log firmware record parser ··· 185 171 0x00100000 Log all open and close actions to /proc/net/hysdn/card files 186 172 0x00200000 Log all actions from /proc file entries 187 173 0x00010000 Log network interface init and deinit 188 - 189 - 6. Where to get additional info and help 174 + ========== ============================================================ 190 175 191 - If you have any problems concerning the driver or configuration contact 176 + 6. Where to get additional info and help 177 + ======================================== 178 + 179 + If you have any problems concerning the driver or configuration contact 192 180 the Hypercope support team (support@hypercope.de) and or the authors 193 181 Werner Cornelius (werner@isdn4linux or cornelius@titro.de) or 194 182 Ulrich Albrecht (ualbrecht@hypercope.de). 195 - 196 - 197 - 198 - 199 - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 209 -
+4 -1
Documentation/isdn/README.mISDN Documentation/isdn/m_isdn.rst
··· 1 + ============ 2 + mISDN Driver 3 + ============ 4 + 1 5 mISDN is a new modular ISDN driver, in the long term it should replace 2 6 the old I4L driver architecture for passiv ISDN cards. 3 7 It was designed to allow a broad range of applications and interfaces 4 8 but only have the basic function in kernel, the interface to the user 5 9 space is based on sockets with a own address family AF_ISDN. 6 -
+24
Documentation/isdn/index.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ==== 4 + ISDN 5 + ==== 6 + 7 + .. toctree:: 8 + :maxdepth: 2 9 + 10 + interface_capi 11 + 12 + avmb1 13 + gigaset 14 + hysdn 15 + m_isdn 16 + 17 + credits 18 + 19 + .. only:: subproject and html 20 + 21 + Indices 22 + ======= 23 + 24 + * :ref:`genindex`
+1 -1
drivers/staging/isdn/hysdn/Kconfig
··· 5 5 help 6 6 Say Y here if you have one of Hypercope's active PCI ISDN cards 7 7 Champ, Ergo and Metro. You will then get a module called hysdn. 8 - Please read the file <file:Documentation/isdn/README.hysdn> for more 8 + Please read the file <file:Documentation/isdn/hysdn.rst> for more 9 9 information. 10 10 11 11 config HYSDN_CAPI