diff options
Diffstat (limited to 'drivers/isdn')
| -rw-r--r-- | drivers/isdn/Kconfig | 15 | ||||
| -rw-r--r-- | drivers/isdn/capi/Kconfig | 7 | ||||
| -rw-r--r-- | drivers/isdn/capi/capi.c | 2 | ||||
| -rw-r--r-- | drivers/isdn/capi/kcapi.c | 6 | ||||
| -rw-r--r-- | drivers/isdn/capi/kcapi_proc.c | 28 | ||||
| -rw-r--r-- | drivers/isdn/hardware/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/isdn/hardware/avm/Kconfig | 23 | ||||
| -rw-r--r-- | drivers/isdn/hardware/eicon/Kconfig | 22 | ||||
| -rw-r--r-- | drivers/isdn/hardware/eicon/idifunc.c | 1 | ||||
| -rw-r--r-- | drivers/isdn/hisax/config.c | 10 | ||||
| -rw-r--r-- | drivers/isdn/hisax/sedlbauer.c | 8 | ||||
| -rw-r--r-- | drivers/isdn/i4l/Kconfig | 7 |
12 files changed, 53 insertions, 77 deletions
diff --git a/drivers/isdn/Kconfig b/drivers/isdn/Kconfig index 3e088c42b222..cf906c8cee4d 100644 --- a/drivers/isdn/Kconfig +++ b/drivers/isdn/Kconfig | |||
| @@ -2,12 +2,10 @@ | |||
| 2 | # ISDN device configuration | 2 | # ISDN device configuration |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | menu "ISDN subsystem" | 5 | menuconfig ISDN |
| 6 | depends on !S390 | ||
| 7 | |||
| 8 | config ISDN | ||
| 9 | tristate "ISDN support" | 6 | tristate "ISDN support" |
| 10 | depends on NET | 7 | depends on NET |
| 8 | depends on !S390 | ||
| 11 | ---help--- | 9 | ---help--- |
| 12 | ISDN ("Integrated Services Digital Networks", called RNIS in France) | 10 | ISDN ("Integrated Services Digital Networks", called RNIS in France) |
| 13 | is a special type of fully digital telephone service; it's mostly | 11 | is a special type of fully digital telephone service; it's mostly |
| @@ -21,9 +19,9 @@ config ISDN | |||
| 21 | 19 | ||
| 22 | Select this option if you want your kernel to support ISDN. | 20 | Select this option if you want your kernel to support ISDN. |
| 23 | 21 | ||
| 22 | if ISDN | ||
| 24 | 23 | ||
| 25 | menu "Old ISDN4Linux" | 24 | menu "Old ISDN4Linux" |
| 26 | depends on NET && ISDN | ||
| 27 | 25 | ||
| 28 | config ISDN_I4L | 26 | config ISDN_I4L |
| 29 | tristate "Old ISDN4Linux (deprecated)" | 27 | tristate "Old ISDN4Linux (deprecated)" |
| @@ -50,20 +48,21 @@ endif | |||
| 50 | endmenu | 48 | endmenu |
| 51 | 49 | ||
| 52 | comment "CAPI subsystem" | 50 | comment "CAPI subsystem" |
| 53 | depends on NET && ISDN | ||
| 54 | 51 | ||
| 55 | config ISDN_CAPI | 52 | config ISDN_CAPI |
| 56 | tristate "CAPI2.0 support" | 53 | tristate "CAPI2.0 support" |
| 57 | depends on ISDN | ||
| 58 | help | 54 | help |
| 59 | This provides the CAPI (Common ISDN Application Programming | 55 | This provides the CAPI (Common ISDN Application Programming |
| 60 | Interface, a standard making it easy for programs to access ISDN | 56 | Interface, a standard making it easy for programs to access ISDN |
| 61 | hardware, see <http://www.capi.org/>. This is needed for AVM's set | 57 | hardware, see <http://www.capi.org/>. This is needed for AVM's set |
| 62 | of active ISDN controllers like B1, T1, M1. | 58 | of active ISDN controllers like B1, T1, M1. |
| 63 | 59 | ||
| 60 | if ISDN_CAPI | ||
| 61 | |||
| 64 | source "drivers/isdn/capi/Kconfig" | 62 | source "drivers/isdn/capi/Kconfig" |
| 65 | 63 | ||
| 66 | source "drivers/isdn/hardware/Kconfig" | 64 | source "drivers/isdn/hardware/Kconfig" |
| 67 | 65 | ||
| 68 | endmenu | 66 | endif # ISDN_CAPI |
| 69 | 67 | ||
| 68 | endif # ISDN | ||
diff --git a/drivers/isdn/capi/Kconfig b/drivers/isdn/capi/Kconfig index c92f9d764fce..e1afd60924fb 100644 --- a/drivers/isdn/capi/Kconfig +++ b/drivers/isdn/capi/Kconfig | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | # | 3 | # |
| 4 | config ISDN_DRV_AVMB1_VERBOSE_REASON | 4 | config ISDN_DRV_AVMB1_VERBOSE_REASON |
| 5 | bool "Verbose reason code reporting" | 5 | bool "Verbose reason code reporting" |
| 6 | depends on ISDN_CAPI | ||
| 7 | default y | 6 | default y |
| 8 | help | 7 | help |
| 9 | If you say Y here, the CAPI drivers will give verbose reasons for | 8 | If you say Y here, the CAPI drivers will give verbose reasons for |
| @@ -12,7 +11,6 @@ config ISDN_DRV_AVMB1_VERBOSE_REASON | |||
| 12 | 11 | ||
| 13 | config CAPI_TRACE | 12 | config CAPI_TRACE |
| 14 | bool "CAPI trace support" | 13 | bool "CAPI trace support" |
| 15 | depends on ISDN_CAPI | ||
| 16 | default y | 14 | default y |
| 17 | help | 15 | help |
| 18 | If you say Y here, the kernelcapi driver can make verbose traces | 16 | If you say Y here, the kernelcapi driver can make verbose traces |
| @@ -23,7 +21,7 @@ config CAPI_TRACE | |||
| 23 | 21 | ||
| 24 | config ISDN_CAPI_MIDDLEWARE | 22 | config ISDN_CAPI_MIDDLEWARE |
| 25 | bool "CAPI2.0 Middleware support (EXPERIMENTAL)" | 23 | bool "CAPI2.0 Middleware support (EXPERIMENTAL)" |
| 26 | depends on ISDN_CAPI && EXPERIMENTAL | 24 | depends on EXPERIMENTAL |
| 27 | help | 25 | help |
| 28 | This option will enhance the capabilities of the /dev/capi20 | 26 | This option will enhance the capabilities of the /dev/capi20 |
| 29 | interface. It will provide a means of moving a data connection, | 27 | interface. It will provide a means of moving a data connection, |
| @@ -33,7 +31,6 @@ config ISDN_CAPI_MIDDLEWARE | |||
| 33 | 31 | ||
| 34 | config ISDN_CAPI_CAPI20 | 32 | config ISDN_CAPI_CAPI20 |
| 35 | tristate "CAPI2.0 /dev/capi support" | 33 | tristate "CAPI2.0 /dev/capi support" |
| 36 | depends on ISDN_CAPI | ||
| 37 | help | 34 | help |
| 38 | This option will provide the CAPI 2.0 interface to userspace | 35 | This option will provide the CAPI 2.0 interface to userspace |
| 39 | applications via /dev/capi20. Applications should use the | 36 | applications via /dev/capi20. Applications should use the |
| @@ -56,7 +53,7 @@ config ISDN_CAPI_CAPIFS | |||
| 56 | 53 | ||
| 57 | config ISDN_CAPI_CAPIDRV | 54 | config ISDN_CAPI_CAPIDRV |
| 58 | tristate "CAPI2.0 capidrv interface support" | 55 | tristate "CAPI2.0 capidrv interface support" |
| 59 | depends on ISDN_CAPI && ISDN_I4L | 56 | depends on ISDN_I4L |
| 60 | help | 57 | help |
| 61 | This option provides the glue code to hook up CAPI driven cards to | 58 | This option provides the glue code to hook up CAPI driven cards to |
| 62 | the legacy isdn4linux link layer. If you have a card which is | 59 | the legacy isdn4linux link layer. If you have a card which is |
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 81661b8bd3a8..f449daef3eed 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
| @@ -549,7 +549,7 @@ static int handle_minor_send(struct capiminor *mp) | |||
| 549 | capimsg_setu8 (skb->data, 5, CAPI_REQ); | 549 | capimsg_setu8 (skb->data, 5, CAPI_REQ); |
| 550 | capimsg_setu16(skb->data, 6, mp->msgid++); | 550 | capimsg_setu16(skb->data, 6, mp->msgid++); |
| 551 | capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */ | 551 | capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */ |
| 552 | capimsg_setu32(skb->data, 12, (u32) skb->data); /* Data32 */ | 552 | capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */ |
| 553 | capimsg_setu16(skb->data, 16, len); /* Data length */ | 553 | capimsg_setu16(skb->data, 16, len); /* Data length */ |
| 554 | capimsg_setu16(skb->data, 18, datahandle); | 554 | capimsg_setu16(skb->data, 18, datahandle); |
| 555 | capimsg_setu16(skb->data, 20, 0); /* Flags */ | 555 | capimsg_setu16(skb->data, 20, 0); /* Flags */ |
diff --git a/drivers/isdn/capi/kcapi.c b/drivers/isdn/capi/kcapi.c index 3ed34f7a1c4f..9f73bc2727c2 100644 --- a/drivers/isdn/capi/kcapi.c +++ b/drivers/isdn/capi/kcapi.c | |||
| @@ -258,7 +258,7 @@ static void recv_handler(struct work_struct *work) | |||
| 258 | if ((!ap) || (ap->release_in_progress)) | 258 | if ((!ap) || (ap->release_in_progress)) |
| 259 | return; | 259 | return; |
| 260 | 260 | ||
| 261 | down(&ap->recv_sem); | 261 | mutex_lock(&ap->recv_mtx); |
| 262 | while ((skb = skb_dequeue(&ap->recv_queue))) { | 262 | while ((skb = skb_dequeue(&ap->recv_queue))) { |
| 263 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_IND) | 263 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_IND) |
| 264 | ap->nrecvdatapkt++; | 264 | ap->nrecvdatapkt++; |
| @@ -267,7 +267,7 @@ static void recv_handler(struct work_struct *work) | |||
| 267 | 267 | ||
| 268 | ap->recv_message(ap, skb); | 268 | ap->recv_message(ap, skb); |
| 269 | } | 269 | } |
| 270 | up(&ap->recv_sem); | 270 | mutex_unlock(&ap->recv_mtx); |
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb) | 273 | void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb) |
| @@ -547,7 +547,7 @@ u16 capi20_register(struct capi20_appl *ap) | |||
| 547 | ap->nsentctlpkt = 0; | 547 | ap->nsentctlpkt = 0; |
| 548 | ap->nsentdatapkt = 0; | 548 | ap->nsentdatapkt = 0; |
| 549 | ap->callback = NULL; | 549 | ap->callback = NULL; |
| 550 | init_MUTEX(&ap->recv_sem); | 550 | mutex_init(&ap->recv_mtx); |
| 551 | skb_queue_head_init(&ap->recv_queue); | 551 | skb_queue_head_init(&ap->recv_queue); |
| 552 | INIT_WORK(&ap->recv_work, recv_handler); | 552 | INIT_WORK(&ap->recv_work, recv_handler); |
| 553 | ap->release_in_progress = 0; | 553 | ap->release_in_progress = 0; |
diff --git a/drivers/isdn/capi/kcapi_proc.c b/drivers/isdn/capi/kcapi_proc.c index 31f4fd8b8b0a..845a797b0030 100644 --- a/drivers/isdn/capi/kcapi_proc.c +++ b/drivers/isdn/capi/kcapi_proc.c | |||
| @@ -243,36 +243,15 @@ create_seq_entry(char *name, mode_t mode, const struct file_operations *f) | |||
| 243 | 243 | ||
| 244 | // --------------------------------------------------------------------------- | 244 | // --------------------------------------------------------------------------- |
| 245 | 245 | ||
| 246 | |||
| 247 | static __inline__ struct capi_driver *capi_driver_get_idx(loff_t pos) | ||
| 248 | { | ||
| 249 | struct capi_driver *drv = NULL; | ||
| 250 | struct list_head *l; | ||
| 251 | loff_t i; | ||
| 252 | |||
| 253 | i = 0; | ||
| 254 | list_for_each(l, &capi_drivers) { | ||
| 255 | drv = list_entry(l, struct capi_driver, list); | ||
| 256 | if (i++ == pos) | ||
| 257 | return drv; | ||
| 258 | } | ||
| 259 | return NULL; | ||
| 260 | } | ||
| 261 | |||
| 262 | static void *capi_driver_start(struct seq_file *seq, loff_t *pos) | 246 | static void *capi_driver_start(struct seq_file *seq, loff_t *pos) |
| 263 | { | 247 | { |
| 264 | struct capi_driver *drv; | ||
| 265 | read_lock(&capi_drivers_list_lock); | 248 | read_lock(&capi_drivers_list_lock); |
| 266 | drv = capi_driver_get_idx(*pos); | 249 | return seq_list_start(&capi_drivers, *pos); |
| 267 | return drv; | ||
| 268 | } | 250 | } |
| 269 | 251 | ||
| 270 | static void *capi_driver_next(struct seq_file *seq, void *v, loff_t *pos) | 252 | static void *capi_driver_next(struct seq_file *seq, void *v, loff_t *pos) |
| 271 | { | 253 | { |
| 272 | struct capi_driver *drv = (struct capi_driver *)v; | 254 | return seq_list_next(v, &capi_drivers, pos); |
| 273 | ++*pos; | ||
| 274 | if (drv->list.next == &capi_drivers) return NULL; | ||
| 275 | return list_entry(drv->list.next, struct capi_driver, list); | ||
| 276 | } | 255 | } |
| 277 | 256 | ||
| 278 | static void capi_driver_stop(struct seq_file *seq, void *v) | 257 | static void capi_driver_stop(struct seq_file *seq, void *v) |
| @@ -282,7 +261,8 @@ static void capi_driver_stop(struct seq_file *seq, void *v) | |||
| 282 | 261 | ||
| 283 | static int capi_driver_show(struct seq_file *seq, void *v) | 262 | static int capi_driver_show(struct seq_file *seq, void *v) |
| 284 | { | 263 | { |
| 285 | struct capi_driver *drv = (struct capi_driver *)v; | 264 | struct capi_driver *drv = list_entry(v, struct capi_driver, list); |
| 265 | |||
| 286 | seq_printf(seq, "%-32s %s\n", drv->name, drv->revision); | 266 | seq_printf(seq, "%-32s %s\n", drv->name, drv->revision); |
| 287 | return 0; | 267 | return 0; |
| 288 | } | 268 | } |
diff --git a/drivers/isdn/hardware/Kconfig b/drivers/isdn/hardware/Kconfig index 139f19797713..30d028d24955 100644 --- a/drivers/isdn/hardware/Kconfig +++ b/drivers/isdn/hardware/Kconfig | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | # ISDN hardware drivers | 2 | # ISDN hardware drivers |
| 3 | # | 3 | # |
| 4 | comment "CAPI hardware drivers" | 4 | comment "CAPI hardware drivers" |
| 5 | depends on NET && ISDN && ISDN_CAPI | ||
| 6 | 5 | ||
| 7 | source "drivers/isdn/hardware/avm/Kconfig" | 6 | source "drivers/isdn/hardware/avm/Kconfig" |
| 8 | 7 | ||
diff --git a/drivers/isdn/hardware/avm/Kconfig b/drivers/isdn/hardware/avm/Kconfig index 29a32a8830c0..5dbcbe3a54a6 100644 --- a/drivers/isdn/hardware/avm/Kconfig +++ b/drivers/isdn/hardware/avm/Kconfig | |||
| @@ -2,23 +2,22 @@ | |||
| 2 | # ISDN AVM drivers | 2 | # ISDN AVM drivers |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | menu "Active AVM cards" | 5 | menuconfig CAPI_AVM |
| 6 | depends on NET && ISDN && ISDN_CAPI!=n | 6 | bool "Active AVM cards" |
| 7 | |||
| 8 | config CAPI_AVM | ||
| 9 | bool "Support AVM cards" | ||
| 10 | help | 7 | help |
| 11 | Enable support for AVM active ISDN cards. | 8 | Enable support for AVM active ISDN cards. |
| 12 | 9 | ||
| 10 | if CAPI_AVM | ||
| 11 | |||
| 13 | config ISDN_DRV_AVMB1_B1ISA | 12 | config ISDN_DRV_AVMB1_B1ISA |
| 14 | tristate "AVM B1 ISA support" | 13 | tristate "AVM B1 ISA support" |
| 15 | depends on CAPI_AVM && ISDN_CAPI && ISA | 14 | depends on ISA |
| 16 | help | 15 | help |
| 17 | Enable support for the ISA version of the AVM B1 card. | 16 | Enable support for the ISA version of the AVM B1 card. |
| 18 | 17 | ||
| 19 | config ISDN_DRV_AVMB1_B1PCI | 18 | config ISDN_DRV_AVMB1_B1PCI |
| 20 | tristate "AVM B1 PCI support" | 19 | tristate "AVM B1 PCI support" |
| 21 | depends on CAPI_AVM && ISDN_CAPI && PCI | 20 | depends on PCI |
| 22 | help | 21 | help |
| 23 | Enable support for the PCI version of the AVM B1 card. | 22 | Enable support for the PCI version of the AVM B1 card. |
| 24 | 23 | ||
| @@ -30,14 +29,13 @@ config ISDN_DRV_AVMB1_B1PCIV4 | |||
| 30 | 29 | ||
| 31 | config ISDN_DRV_AVMB1_T1ISA | 30 | config ISDN_DRV_AVMB1_T1ISA |
| 32 | tristate "AVM T1/T1-B ISA support" | 31 | tristate "AVM T1/T1-B ISA support" |
| 33 | depends on CAPI_AVM && ISDN_CAPI && ISA | 32 | depends on ISA |
| 34 | help | 33 | help |
| 35 | Enable support for the AVM T1 T1B card. | 34 | Enable support for the AVM T1 T1B card. |
| 36 | Note: This is a PRI card and handle 30 B-channels. | 35 | Note: This is a PRI card and handle 30 B-channels. |
| 37 | 36 | ||
| 38 | config ISDN_DRV_AVMB1_B1PCMCIA | 37 | config ISDN_DRV_AVMB1_B1PCMCIA |
| 39 | tristate "AVM B1/M1/M2 PCMCIA support" | 38 | tristate "AVM B1/M1/M2 PCMCIA support" |
| 40 | depends on CAPI_AVM && ISDN_CAPI | ||
| 41 | help | 39 | help |
| 42 | Enable support for the PCMCIA version of the AVM B1 card. | 40 | Enable support for the PCMCIA version of the AVM B1 card. |
| 43 | 41 | ||
| @@ -50,17 +48,16 @@ config ISDN_DRV_AVMB1_AVM_CS | |||
| 50 | 48 | ||
| 51 | config ISDN_DRV_AVMB1_T1PCI | 49 | config ISDN_DRV_AVMB1_T1PCI |
| 52 | tristate "AVM T1/T1-B PCI support" | 50 | tristate "AVM T1/T1-B PCI support" |
| 53 | depends on CAPI_AVM && ISDN_CAPI && PCI | 51 | depends on PCI |
| 54 | help | 52 | help |
| 55 | Enable support for the AVM T1 T1B card. | 53 | Enable support for the AVM T1 T1B card. |
| 56 | Note: This is a PRI card and handle 30 B-channels. | 54 | Note: This is a PRI card and handle 30 B-channels. |
| 57 | 55 | ||
| 58 | config ISDN_DRV_AVMB1_C4 | 56 | config ISDN_DRV_AVMB1_C4 |
| 59 | tristate "AVM C4/C2 support" | 57 | tristate "AVM C4/C2 support" |
| 60 | depends on CAPI_AVM && ISDN_CAPI && PCI | 58 | depends on PCI |
| 61 | help | 59 | help |
| 62 | Enable support for the AVM C4/C2 PCI cards. | 60 | Enable support for the AVM C4/C2 PCI cards. |
| 63 | These cards handle 4/2 BRI ISDN lines (8/4 channels). | 61 | These cards handle 4/2 BRI ISDN lines (8/4 channels). |
| 64 | 62 | ||
| 65 | endmenu | 63 | endif # CAPI_AVM |
| 66 | |||
diff --git a/drivers/isdn/hardware/eicon/Kconfig b/drivers/isdn/hardware/eicon/Kconfig index 01d4afd9d843..6082b6a5ced3 100644 --- a/drivers/isdn/hardware/eicon/Kconfig +++ b/drivers/isdn/hardware/eicon/Kconfig | |||
| @@ -2,52 +2,50 @@ | |||
| 2 | # ISDN DIVAS Eicon driver | 2 | # ISDN DIVAS Eicon driver |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | menu "Active Eicon DIVA Server cards" | 5 | menuconfig CAPI_EICON |
| 6 | depends on NET && ISDN && ISDN_CAPI!=n | 6 | bool "Active Eicon DIVA Server cards" |
| 7 | |||
| 8 | config CAPI_EICON | ||
| 9 | bool "Support Eicon cards" | ||
| 10 | help | 7 | help |
| 11 | Enable support for Eicon Networks active ISDN cards. | 8 | Enable support for Eicon Networks active ISDN cards. |
| 12 | 9 | ||
| 10 | if CAPI_EICON | ||
| 11 | |||
| 13 | config ISDN_DIVAS | 12 | config ISDN_DIVAS |
| 14 | tristate "Support Eicon DIVA Server cards" | 13 | tristate "Support Eicon DIVA Server cards" |
| 15 | depends on CAPI_EICON && PROC_FS && PCI | 14 | depends on PROC_FS && PCI |
| 16 | help | 15 | help |
| 17 | Say Y here if you have an Eicon Networks DIVA Server PCI ISDN card. | 16 | Say Y here if you have an Eicon Networks DIVA Server PCI ISDN card. |
| 18 | In order to use this card, additional firmware is necessary, which | 17 | In order to use this card, additional firmware is necessary, which |
| 19 | has to be downloaded into the card using the divactrl utility. | 18 | has to be downloaded into the card using the divactrl utility. |
| 20 | 19 | ||
| 20 | if ISDN_DIVAS | ||
| 21 | |||
| 21 | config ISDN_DIVAS_BRIPCI | 22 | config ISDN_DIVAS_BRIPCI |
| 22 | bool "DIVA Server BRI/PCI support" | 23 | bool "DIVA Server BRI/PCI support" |
| 23 | depends on ISDN_DIVAS | ||
| 24 | help | 24 | help |
| 25 | Enable support for DIVA Server BRI-PCI. | 25 | Enable support for DIVA Server BRI-PCI. |
| 26 | 26 | ||
| 27 | config ISDN_DIVAS_PRIPCI | 27 | config ISDN_DIVAS_PRIPCI |
| 28 | bool "DIVA Server PRI/PCI support" | 28 | bool "DIVA Server PRI/PCI support" |
| 29 | depends on ISDN_DIVAS | ||
| 30 | help | 29 | help |
| 31 | Enable support for DIVA Server PRI-PCI. | 30 | Enable support for DIVA Server PRI-PCI. |
| 32 | 31 | ||
| 33 | config ISDN_DIVAS_DIVACAPI | 32 | config ISDN_DIVAS_DIVACAPI |
| 34 | tristate "DIVA CAPI2.0 interface support" | 33 | tristate "DIVA CAPI2.0 interface support" |
| 35 | depends on ISDN_DIVAS && ISDN_CAPI | ||
| 36 | help | 34 | help |
| 37 | You need this to provide the CAPI interface | 35 | You need this to provide the CAPI interface |
| 38 | for DIVA Server cards. | 36 | for DIVA Server cards. |
| 39 | 37 | ||
| 40 | config ISDN_DIVAS_USERIDI | 38 | config ISDN_DIVAS_USERIDI |
| 41 | tristate "DIVA User-IDI interface support" | 39 | tristate "DIVA User-IDI interface support" |
| 42 | depends on ISDN_DIVAS | ||
| 43 | help | 40 | help |
| 44 | Enable support for user-mode IDI interface. | 41 | Enable support for user-mode IDI interface. |
| 45 | 42 | ||
| 46 | config ISDN_DIVAS_MAINT | 43 | config ISDN_DIVAS_MAINT |
| 47 | tristate "DIVA Maint driver support" | 44 | tristate "DIVA Maint driver support" |
| 48 | depends on ISDN_DIVAS && m | 45 | depends on m |
| 49 | help | 46 | help |
| 50 | Enable Divas Maintenance driver. | 47 | Enable Divas Maintenance driver. |
| 51 | 48 | ||
| 52 | endmenu | 49 | endif # ISDN_DIVAS |
| 53 | 50 | ||
| 51 | endif # CAPI_EICON | ||
diff --git a/drivers/isdn/hardware/eicon/idifunc.c b/drivers/isdn/hardware/eicon/idifunc.c index 4cbc68cf4dba..db87d5105422 100644 --- a/drivers/isdn/hardware/eicon/idifunc.c +++ b/drivers/isdn/hardware/eicon/idifunc.c | |||
| @@ -106,6 +106,7 @@ static void um_new_card(DESCRIPTOR * d) | |||
| 106 | } else { | 106 | } else { |
| 107 | DBG_ERR(("could not create user mode idi card %d", | 107 | DBG_ERR(("could not create user mode idi card %d", |
| 108 | adapter_nr)); | 108 | adapter_nr)); |
| 109 | diva_os_free(0, card); | ||
| 109 | } | 110 | } |
| 110 | } | 111 | } |
| 111 | 112 | ||
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c index 8d53a7fd2671..a43162c2ef15 100644 --- a/drivers/isdn/hisax/config.c +++ b/drivers/isdn/hisax/config.c | |||
| @@ -361,11 +361,11 @@ module_param_array(io1, int, NULL, 0); | |||
| 361 | 361 | ||
| 362 | int nrcards; | 362 | int nrcards; |
| 363 | 363 | ||
| 364 | extern char *l1_revision; | 364 | extern const char *l1_revision; |
| 365 | extern char *l2_revision; | 365 | extern const char *l2_revision; |
| 366 | extern char *l3_revision; | 366 | extern const char *l3_revision; |
| 367 | extern char *lli_revision; | 367 | extern const char *lli_revision; |
| 368 | extern char *tei_revision; | 368 | extern const char *tei_revision; |
| 369 | 369 | ||
| 370 | char *HiSax_getrev(const char *revision) | 370 | char *HiSax_getrev(const char *revision) |
| 371 | { | 371 | { |
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c index 030d1625c5c6..ad06f3cc60fb 100644 --- a/drivers/isdn/hisax/sedlbauer.c +++ b/drivers/isdn/hisax/sedlbauer.c | |||
| @@ -451,6 +451,9 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
| 451 | spin_unlock_irqrestore(&cs->lock, flags); | 451 | spin_unlock_irqrestore(&cs->lock, flags); |
| 452 | return(0); | 452 | return(0); |
| 453 | case CARD_RELEASE: | 453 | case CARD_RELEASE: |
| 454 | if (cs->hw.sedl.bus == SEDL_BUS_PCI) | ||
| 455 | /* disable all IRQ */ | ||
| 456 | byteout(cs->hw.sedl.cfg_reg+ 5, 0); | ||
| 454 | if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { | 457 | if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { |
| 455 | spin_lock_irqsave(&cs->lock, flags); | 458 | spin_lock_irqsave(&cs->lock, flags); |
| 456 | writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, | 459 | writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, |
| @@ -468,6 +471,9 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
| 468 | return(0); | 471 | return(0); |
| 469 | case CARD_INIT: | 472 | case CARD_INIT: |
| 470 | spin_lock_irqsave(&cs->lock, flags); | 473 | spin_lock_irqsave(&cs->lock, flags); |
| 474 | if (cs->hw.sedl.bus == SEDL_BUS_PCI) | ||
| 475 | /* enable all IRQ */ | ||
| 476 | byteout(cs->hw.sedl.cfg_reg+ 5, 0x02); | ||
| 471 | reset_sedlbauer(cs); | 477 | reset_sedlbauer(cs); |
| 472 | if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { | 478 | if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { |
| 473 | clear_pending_isac_ints(cs); | 479 | clear_pending_isac_ints(cs); |
| @@ -667,7 +673,7 @@ setup_sedlbauer(struct IsdnCard *card) | |||
| 667 | byteout(cs->hw.sedl.cfg_reg, 0xff); | 673 | byteout(cs->hw.sedl.cfg_reg, 0xff); |
| 668 | byteout(cs->hw.sedl.cfg_reg, 0x00); | 674 | byteout(cs->hw.sedl.cfg_reg, 0x00); |
| 669 | byteout(cs->hw.sedl.cfg_reg+ 2, 0xdd); | 675 | byteout(cs->hw.sedl.cfg_reg+ 2, 0xdd); |
| 670 | byteout(cs->hw.sedl.cfg_reg+ 5, 0x02); | 676 | byteout(cs->hw.sedl.cfg_reg+ 5, 0); /* disable all IRQ */ |
| 671 | byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on); | 677 | byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on); |
| 672 | mdelay(2); | 678 | mdelay(2); |
| 673 | byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off); | 679 | byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off); |
diff --git a/drivers/isdn/i4l/Kconfig b/drivers/isdn/i4l/Kconfig index 3ef567b99c74..e91c187992dd 100644 --- a/drivers/isdn/i4l/Kconfig +++ b/drivers/isdn/i4l/Kconfig | |||
| @@ -86,7 +86,6 @@ config ISDN_X25 | |||
| 86 | 86 | ||
| 87 | 87 | ||
| 88 | menu "ISDN feature submodules" | 88 | menu "ISDN feature submodules" |
| 89 | depends on ISDN | ||
| 90 | 89 | ||
| 91 | config ISDN_DRV_LOOP | 90 | config ISDN_DRV_LOOP |
| 92 | tristate "isdnloop support" | 91 | tristate "isdnloop support" |
| @@ -100,7 +99,7 @@ config ISDN_DRV_LOOP | |||
| 100 | 99 | ||
| 101 | config ISDN_DIVERSION | 100 | config ISDN_DIVERSION |
| 102 | tristate "Support isdn diversion services" | 101 | tristate "Support isdn diversion services" |
| 103 | depends on ISDN && ISDN_I4L | 102 | depends on ISDN_I4L |
| 104 | help | 103 | help |
| 105 | This option allows you to use some supplementary diversion | 104 | This option allows you to use some supplementary diversion |
| 106 | services in conjunction with the HiSax driver on an EURO/DSS1 | 105 | services in conjunction with the HiSax driver on an EURO/DSS1 |
| @@ -120,13 +119,13 @@ config ISDN_DIVERSION | |||
| 120 | endmenu | 119 | endmenu |
| 121 | 120 | ||
| 122 | comment "ISDN4Linux hardware drivers" | 121 | comment "ISDN4Linux hardware drivers" |
| 123 | depends on NET && ISDN && ISDN_I4L | 122 | depends on ISDN_I4L |
| 124 | 123 | ||
| 125 | source "drivers/isdn/hisax/Kconfig" | 124 | source "drivers/isdn/hisax/Kconfig" |
| 126 | 125 | ||
| 127 | 126 | ||
| 128 | menu "Active cards" | 127 | menu "Active cards" |
| 129 | depends on NET && ISDN && ISDN_I4L!=n | 128 | depends on ISDN_I4L!=n |
| 130 | 129 | ||
| 131 | source "drivers/isdn/icn/Kconfig" | 130 | source "drivers/isdn/icn/Kconfig" |
| 132 | 131 | ||
