aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2013-01-29 04:48:30 -0500
committerJiri Kosina <jkosina@suse.cz>2013-01-29 04:48:30 -0500
commit617677295b53a40d0e54aac4cbbc216ffbc755dd (patch)
tree51b9e87213243ed5efff252c8e8d8fec4eebc588 /drivers/isdn
parent5c8d1b68e01a144813e38795fe6dbe7ebb506131 (diff)
parent6abb7c25775b7fb2225ad0508236d63ca710e65f (diff)
Merge branch 'master' into for-next
Conflicts: drivers/devfreq/exynos4_bus.c Sync with Linus' tree to be able to apply patches that are against newer code (mvneta).
Diffstat (limited to 'drivers/isdn')
-rw-r--r--drivers/isdn/Kconfig2
-rw-r--r--drivers/isdn/capi/capi.c36
-rw-r--r--drivers/isdn/gigaset/capi.c2
-rw-r--r--drivers/isdn/gigaset/common.c1
-rw-r--r--drivers/isdn/hardware/avm/b1pci.c8
-rw-r--r--drivers/isdn/hardware/avm/c4.c3
-rw-r--r--drivers/isdn/hardware/avm/t1pci.c3
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c9
-rw-r--r--drivers/isdn/hardware/mISDN/avmfritz.c10
-rw-r--r--drivers/isdn/hardware/mISDN/hfcmulti.c6
-rw-r--r--drivers/isdn/hardware/mISDN/hfcpci.c6
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNinfineon.c16
-rw-r--r--drivers/isdn/hardware/mISDN/netjet.c10
-rw-r--r--drivers/isdn/hardware/mISDN/speedfax.c14
-rw-r--r--drivers/isdn/hardware/mISDN/w6692.c6
-rw-r--r--drivers/isdn/hisax/amd7930_fn.c3
-rw-r--r--drivers/isdn/hisax/asuscom.c9
-rw-r--r--drivers/isdn/hisax/avm_a1.c3
-rw-r--r--drivers/isdn/hisax/avm_a1p.c2
-rw-r--r--drivers/isdn/hisax/avm_pci.c17
-rw-r--r--drivers/isdn/hisax/avma1_cs.c12
-rw-r--r--drivers/isdn/hisax/bkm_a4t.c16
-rw-r--r--drivers/isdn/hisax/bkm_a8.c18
-rw-r--r--drivers/isdn/hisax/callc.c2
-rw-r--r--drivers/isdn/hisax/config.c26
-rw-r--r--drivers/isdn/hisax/diva.c31
-rw-r--r--drivers/isdn/hisax/elsa.c31
-rw-r--r--drivers/isdn/hisax/elsa_cs.c12
-rw-r--r--drivers/isdn/hisax/enternow_pci.c14
-rw-r--r--drivers/isdn/hisax/gazel.c11
-rw-r--r--drivers/isdn/hisax/hfc4s8s_l1.c16
-rw-r--r--drivers/isdn/hisax/hfc_pci.c4
-rw-r--r--drivers/isdn/hisax/hfc_sx.c9
-rw-r--r--drivers/isdn/hisax/hfcscard.c9
-rw-r--r--drivers/isdn/hisax/hisax_fcpcipnp.c22
-rw-r--r--drivers/isdn/hisax/icc.c3
-rw-r--r--drivers/isdn/hisax/isac.c7
-rw-r--r--drivers/isdn/hisax/isurf.c5
-rw-r--r--drivers/isdn/hisax/ix1_micro.c9
-rw-r--r--drivers/isdn/hisax/mic.c3
-rw-r--r--drivers/isdn/hisax/niccy.c6
-rw-r--r--drivers/isdn/hisax/nj_s.c14
-rw-r--r--drivers/isdn/hisax/nj_u.c14
-rw-r--r--drivers/isdn/hisax/s0box.c3
-rw-r--r--drivers/isdn/hisax/saphir.c3
-rw-r--r--drivers/isdn/hisax/sedlbauer.c23
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c12
-rw-r--r--drivers/isdn/hisax/sportster.c6
-rw-r--r--drivers/isdn/hisax/teleint.c3
-rw-r--r--drivers/isdn/hisax/teles0.c3
-rw-r--r--drivers/isdn/hisax/teles3.c9
-rw-r--r--drivers/isdn/hisax/teles_cs.c12
-rw-r--r--drivers/isdn/hisax/telespci.c5
-rw-r--r--drivers/isdn/hisax/w6692.c5
-rw-r--r--drivers/isdn/hysdn/hysdn_init.c8
-rw-r--r--drivers/isdn/i4l/Kconfig2
-rw-r--r--drivers/isdn/i4l/isdn_common.c4
-rw-r--r--drivers/isdn/i4l/isdn_tty.c4
-rw-r--r--drivers/isdn/mISDN/core.c4
-rw-r--r--drivers/isdn/mISDN/dsp_core.c3
-rw-r--r--drivers/isdn/mISDN/l1oip_core.c5
-rw-r--r--drivers/isdn/mISDN/tei.c20
62 files changed, 256 insertions, 338 deletions
diff --git a/drivers/isdn/Kconfig b/drivers/isdn/Kconfig
index a233ed53913a..86cd75a0e84d 100644
--- a/drivers/isdn/Kconfig
+++ b/drivers/isdn/Kconfig
@@ -4,7 +4,7 @@
4 4
5menuconfig ISDN 5menuconfig ISDN
6 bool "ISDN support" 6 bool "ISDN support"
7 depends on NET 7 depends on NET && NETDEVICES
8 depends on !S390 && !UML 8 depends on !S390 && !UML
9 ---help--- 9 ---help---
10 ISDN ("Integrated Services Digital Network", called RNIS in France) 10 ISDN ("Integrated Services Digital Network", called RNIS in France)
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
index c679867c2ccd..89562a845f6a 100644
--- a/drivers/isdn/capi/capi.c
+++ b/drivers/isdn/capi/capi.c
@@ -77,8 +77,6 @@ struct ackqueue_entry {
77}; 77};
78 78
79struct capiminor { 79struct capiminor {
80 struct kref kref;
81
82 unsigned int minor; 80 unsigned int minor;
83 81
84 struct capi20_appl *ap; 82 struct capi20_appl *ap;
@@ -190,7 +188,20 @@ static void capiminor_del_all_ack(struct capiminor *mp)
190 188
191/* -------- struct capiminor ---------------------------------------- */ 189/* -------- struct capiminor ---------------------------------------- */
192 190
193static const struct tty_port_operations capiminor_port_ops; /* we have none */ 191static void capiminor_destroy(struct tty_port *port)
192{
193 struct capiminor *mp = container_of(port, struct capiminor, port);
194
195 kfree_skb(mp->outskb);
196 skb_queue_purge(&mp->inqueue);
197 skb_queue_purge(&mp->outqueue);
198 capiminor_del_all_ack(mp);
199 kfree(mp);
200}
201
202static const struct tty_port_operations capiminor_port_ops = {
203 .destruct = capiminor_destroy,
204};
194 205
195static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci) 206static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci)
196{ 207{
@@ -204,8 +215,6 @@ static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci)
204 return NULL; 215 return NULL;
205 } 216 }
206 217
207 kref_init(&mp->kref);
208
209 mp->ap = ap; 218 mp->ap = ap;
210 mp->ncci = ncci; 219 mp->ncci = ncci;
211 INIT_LIST_HEAD(&mp->ackqueue); 220 INIT_LIST_HEAD(&mp->ackqueue);
@@ -247,21 +256,10 @@ err_out2:
247 spin_unlock(&capiminors_lock); 256 spin_unlock(&capiminors_lock);
248 257
249err_out1: 258err_out1:
250 kfree(mp); 259 tty_port_put(&mp->port);
251 return NULL; 260 return NULL;
252} 261}
253 262
254static void capiminor_destroy(struct kref *kref)
255{
256 struct capiminor *mp = container_of(kref, struct capiminor, kref);
257
258 kfree_skb(mp->outskb);
259 skb_queue_purge(&mp->inqueue);
260 skb_queue_purge(&mp->outqueue);
261 capiminor_del_all_ack(mp);
262 kfree(mp);
263}
264
265static struct capiminor *capiminor_get(unsigned int minor) 263static struct capiminor *capiminor_get(unsigned int minor)
266{ 264{
267 struct capiminor *mp; 265 struct capiminor *mp;
@@ -269,7 +267,7 @@ static struct capiminor *capiminor_get(unsigned int minor)
269 spin_lock(&capiminors_lock); 267 spin_lock(&capiminors_lock);
270 mp = capiminors[minor]; 268 mp = capiminors[minor];
271 if (mp) 269 if (mp)
272 kref_get(&mp->kref); 270 tty_port_get(&mp->port);
273 spin_unlock(&capiminors_lock); 271 spin_unlock(&capiminors_lock);
274 272
275 return mp; 273 return mp;
@@ -277,7 +275,7 @@ static struct capiminor *capiminor_get(unsigned int minor)
277 275
278static inline void capiminor_put(struct capiminor *mp) 276static inline void capiminor_put(struct capiminor *mp)
279{ 277{
280 kref_put(&mp->kref, capiminor_destroy); 278 tty_port_put(&mp->port);
281} 279}
282 280
283static void capiminor_free(struct capiminor *mp) 281static void capiminor_free(struct capiminor *mp)
diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c
index 68452b768da2..03a0a01a4054 100644
--- a/drivers/isdn/gigaset/capi.c
+++ b/drivers/isdn/gigaset/capi.c
@@ -248,6 +248,8 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
248 CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l, 248 CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l,
249 CAPIMSG_CONTROL(data)); 249 CAPIMSG_CONTROL(data));
250 l -= 12; 250 l -= 12;
251 if (l <= 0)
252 return;
251 dbgline = kmalloc(3 * l, GFP_ATOMIC); 253 dbgline = kmalloc(3 * l, GFP_ATOMIC);
252 if (!dbgline) 254 if (!dbgline)
253 return; 255 return;
diff --git a/drivers/isdn/gigaset/common.c b/drivers/isdn/gigaset/common.c
index 30a6b174fbb0..6849a11a1b24 100644
--- a/drivers/isdn/gigaset/common.c
+++ b/drivers/isdn/gigaset/common.c
@@ -507,6 +507,7 @@ void gigaset_freecs(struct cardstate *cs)
507 gig_dbg(DEBUG_INIT, "clearing at_state"); 507 gig_dbg(DEBUG_INIT, "clearing at_state");
508 clear_at_state(&cs->at_state); 508 clear_at_state(&cs->at_state);
509 dealloc_temp_at_states(cs); 509 dealloc_temp_at_states(cs);
510 tty_port_destroy(&cs->port);
510 511
511 /* fall through */ 512 /* fall through */
512 case 0: /* error in basic setup */ 513 case 0: /* error in basic setup */
diff --git a/drivers/isdn/hardware/avm/b1pci.c b/drivers/isdn/hardware/avm/b1pci.c
index b305e6b2b8ee..ac4863c2ecbc 100644
--- a/drivers/isdn/hardware/avm/b1pci.c
+++ b/drivers/isdn/hardware/avm/b1pci.c
@@ -299,8 +299,8 @@ static void b1pciv4_remove(struct pci_dev *pdev)
299 299
300#endif /* CONFIG_ISDN_DRV_AVMB1_B1PCIV4 */ 300#endif /* CONFIG_ISDN_DRV_AVMB1_B1PCIV4 */
301 301
302static int __devinit b1pci_pci_probe(struct pci_dev *pdev, 302static int b1pci_pci_probe(struct pci_dev *pdev,
303 const struct pci_device_id *ent) 303 const struct pci_device_id *ent)
304{ 304{
305 struct capicardparams param; 305 struct capicardparams param;
306 int retval; 306 int retval;
@@ -344,7 +344,7 @@ static int __devinit b1pci_pci_probe(struct pci_dev *pdev,
344 return retval; 344 return retval;
345} 345}
346 346
347static void __devexit b1pci_pci_remove(struct pci_dev *pdev) 347static void b1pci_pci_remove(struct pci_dev *pdev)
348{ 348{
349#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCIV4 349#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCIV4
350 avmcard *card = pci_get_drvdata(pdev); 350 avmcard *card = pci_get_drvdata(pdev);
@@ -362,7 +362,7 @@ static struct pci_driver b1pci_pci_driver = {
362 .name = "b1pci", 362 .name = "b1pci",
363 .id_table = b1pci_pci_tbl, 363 .id_table = b1pci_pci_tbl,
364 .probe = b1pci_pci_probe, 364 .probe = b1pci_pci_probe,
365 .remove = __devexit_p(b1pci_pci_remove), 365 .remove = b1pci_pci_remove,
366}; 366};
367 367
368static struct capi_driver capi_driver_b1pci = { 368static struct capi_driver capi_driver_b1pci = {
diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/isdn/hardware/avm/c4.c
index 98f18812441d..1d7fc44e3eef 100644
--- a/drivers/isdn/hardware/avm/c4.c
+++ b/drivers/isdn/hardware/avm/c4.c
@@ -1249,8 +1249,7 @@ err:
1249 1249
1250/* ------------------------------------------------------------- */ 1250/* ------------------------------------------------------------- */
1251 1251
1252static int __devinit c4_probe(struct pci_dev *dev, 1252static int c4_probe(struct pci_dev *dev, const struct pci_device_id *ent)
1253 const struct pci_device_id *ent)
1254{ 1253{
1255 int nr = ent->driver_data; 1254 int nr = ent->driver_data;
1256 int retval = 0; 1255 int retval = 0;
diff --git a/drivers/isdn/hardware/avm/t1pci.c b/drivers/isdn/hardware/avm/t1pci.c
index cb9a30427bd2..2180b1685691 100644
--- a/drivers/isdn/hardware/avm/t1pci.c
+++ b/drivers/isdn/hardware/avm/t1pci.c
@@ -187,8 +187,7 @@ static char *t1pci_procinfo(struct capi_ctr *ctrl)
187 187
188/* ------------------------------------------------------------- */ 188/* ------------------------------------------------------------- */
189 189
190static int __devinit t1pci_probe(struct pci_dev *dev, 190static int t1pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
191 const struct pci_device_id *ent)
192{ 191{
193 struct capicardparams param; 192 struct capicardparams param;
194 int retval; 193 int retval;
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c
index ca6d276bb256..52377b4bf039 100644
--- a/drivers/isdn/hardware/eicon/divasmain.c
+++ b/drivers/isdn/hardware/eicon/divasmain.c
@@ -150,12 +150,12 @@ MODULE_DEVICE_TABLE(pci, divas_pci_tbl);
150 150
151static int divas_init_one(struct pci_dev *pdev, 151static int divas_init_one(struct pci_dev *pdev,
152 const struct pci_device_id *ent); 152 const struct pci_device_id *ent);
153static void __devexit divas_remove_one(struct pci_dev *pdev); 153static void divas_remove_one(struct pci_dev *pdev);
154 154
155static struct pci_driver diva_pci_driver = { 155static struct pci_driver diva_pci_driver = {
156 .name = "divas", 156 .name = "divas",
157 .probe = divas_init_one, 157 .probe = divas_init_one,
158 .remove = __devexit_p(divas_remove_one), 158 .remove = divas_remove_one,
159 .id_table = divas_pci_tbl, 159 .id_table = divas_pci_tbl,
160}; 160};
161 161
@@ -688,8 +688,7 @@ static int __init divas_register_chrdev(void)
688/* -------------------------------------------------------------------------- 688/* --------------------------------------------------------------------------
689 PCI driver section 689 PCI driver section
690 -------------------------------------------------------------------------- */ 690 -------------------------------------------------------------------------- */
691static int __devinit divas_init_one(struct pci_dev *pdev, 691static int divas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
692 const struct pci_device_id *ent)
693{ 692{
694 void *pdiva = NULL; 693 void *pdiva = NULL;
695 u8 pci_latency; 694 u8 pci_latency;
@@ -749,7 +748,7 @@ static int __devinit divas_init_one(struct pci_dev *pdev,
749 return (0); 748 return (0);
750} 749}
751 750
752static void __devexit divas_remove_one(struct pci_dev *pdev) 751static void divas_remove_one(struct pci_dev *pdev)
753{ 752{
754 void *pdiva = pci_get_drvdata(pdev); 753 void *pdiva = pci_get_drvdata(pdev);
755 754
diff --git a/drivers/isdn/hardware/mISDN/avmfritz.c b/drivers/isdn/hardware/mISDN/avmfritz.c
index dceaec821b0e..292991c90c02 100644
--- a/drivers/isdn/hardware/mISDN/avmfritz.c
+++ b/drivers/isdn/hardware/mISDN/avmfritz.c
@@ -1034,7 +1034,7 @@ release_card(struct fritzcard *card)
1034 AVM_cnt--; 1034 AVM_cnt--;
1035} 1035}
1036 1036
1037static int __devinit 1037static int
1038setup_instance(struct fritzcard *card) 1038setup_instance(struct fritzcard *card)
1039{ 1039{
1040 int i, err; 1040 int i, err;
@@ -1096,7 +1096,7 @@ error:
1096 return err; 1096 return err;
1097} 1097}
1098 1098
1099static int __devinit 1099static int
1100fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 1100fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1101{ 1101{
1102 int err = -ENOMEM; 1102 int err = -ENOMEM;
@@ -1130,7 +1130,7 @@ fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1130 return err; 1130 return err;
1131} 1131}
1132 1132
1133static void __devexit 1133static void
1134fritz_remove_pci(struct pci_dev *pdev) 1134fritz_remove_pci(struct pci_dev *pdev)
1135{ 1135{
1136 struct fritzcard *card = pci_get_drvdata(pdev); 1136 struct fritzcard *card = pci_get_drvdata(pdev);
@@ -1142,7 +1142,7 @@ fritz_remove_pci(struct pci_dev *pdev)
1142 pr_info("%s: drvdata already removed\n", __func__); 1142 pr_info("%s: drvdata already removed\n", __func__);
1143} 1143}
1144 1144
1145static struct pci_device_id fcpci_ids[] __devinitdata = { 1145static struct pci_device_id fcpci_ids[] = {
1146 { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, PCI_ANY_ID, PCI_ANY_ID, 1146 { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, PCI_ANY_ID, PCI_ANY_ID,
1147 0, 0, (unsigned long) "Fritz!Card PCI"}, 1147 0, 0, (unsigned long) "Fritz!Card PCI"},
1148 { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1_V2, PCI_ANY_ID, PCI_ANY_ID, 1148 { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1_V2, PCI_ANY_ID, PCI_ANY_ID,
@@ -1154,7 +1154,7 @@ MODULE_DEVICE_TABLE(pci, fcpci_ids);
1154static struct pci_driver fcpci_driver = { 1154static struct pci_driver fcpci_driver = {
1155 .name = "fcpci", 1155 .name = "fcpci",
1156 .probe = fritzpci_probe, 1156 .probe = fritzpci_probe,
1157 .remove = __devexit_p(fritz_remove_pci), 1157 .remove = fritz_remove_pci,
1158 .id_table = fcpci_ids, 1158 .id_table = fcpci_ids,
1159}; 1159};
1160 1160
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c
index f02794203bb1..28543d795188 100644
--- a/drivers/isdn/hardware/mISDN/hfcmulti.c
+++ b/drivers/isdn/hardware/mISDN/hfcmulti.c
@@ -5274,7 +5274,7 @@ free_card:
5274 return ret_err; 5274 return ret_err;
5275} 5275}
5276 5276
5277static void __devexit hfc_remove_pci(struct pci_dev *pdev) 5277static void hfc_remove_pci(struct pci_dev *pdev)
5278{ 5278{
5279 struct hfc_multi *card = pci_get_drvdata(pdev); 5279 struct hfc_multi *card = pci_get_drvdata(pdev);
5280 u_long flags; 5280 u_long flags;
@@ -5351,7 +5351,7 @@ static const struct hm_map hfcm_map[] = {
5351 5351
5352#undef H 5352#undef H
5353#define H(x) ((unsigned long)&hfcm_map[x]) 5353#define H(x) ((unsigned long)&hfcm_map[x])
5354static struct pci_device_id hfmultipci_ids[] __devinitdata = { 5354static struct pci_device_id hfmultipci_ids[] = {
5355 5355
5356 /* Cards with HFC-4S Chip */ 5356 /* Cards with HFC-4S Chip */
5357 { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD, 5357 { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD,
@@ -5472,7 +5472,7 @@ hfcmulti_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
5472static struct pci_driver hfcmultipci_driver = { 5472static struct pci_driver hfcmultipci_driver = {
5473 .name = "hfc_multi", 5473 .name = "hfc_multi",
5474 .probe = hfcmulti_probe, 5474 .probe = hfcmulti_probe,
5475 .remove = __devexit_p(hfc_remove_pci), 5475 .remove = hfc_remove_pci,
5476 .id_table = hfmultipci_ids, 5476 .id_table = hfmultipci_ids,
5477}; 5477};
5478 5478
diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index 6e99d73563b8..a7e4939787c9 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -2215,7 +2215,7 @@ static struct pci_device_id hfc_ids[] =
2215 {}, 2215 {},
2216}; 2216};
2217 2217
2218static int __devinit 2218static int
2219hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 2219hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
2220{ 2220{
2221 int err = -ENOMEM; 2221 int err = -ENOMEM;
@@ -2246,7 +2246,7 @@ hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
2246 return err; 2246 return err;
2247} 2247}
2248 2248
2249static void __devexit 2249static void
2250hfc_remove_pci(struct pci_dev *pdev) 2250hfc_remove_pci(struct pci_dev *pdev)
2251{ 2251{
2252 struct hfc_pci *card = pci_get_drvdata(pdev); 2252 struct hfc_pci *card = pci_get_drvdata(pdev);
@@ -2263,7 +2263,7 @@ hfc_remove_pci(struct pci_dev *pdev)
2263static struct pci_driver hfc_driver = { 2263static struct pci_driver hfc_driver = {
2264 .name = "hfcpci", 2264 .name = "hfcpci",
2265 .probe = hfc_probe, 2265 .probe = hfc_probe,
2266 .remove = __devexit_p(hfc_remove_pci), 2266 .remove = hfc_remove_pci,
2267 .id_table = hfc_ids, 2267 .id_table = hfc_ids,
2268}; 2268};
2269 2269
diff --git a/drivers/isdn/hardware/mISDN/mISDNinfineon.c b/drivers/isdn/hardware/mISDN/mISDNinfineon.c
index 631eb3fa63cf..c1493f4162fb 100644
--- a/drivers/isdn/hardware/mISDN/mISDNinfineon.c
+++ b/drivers/isdn/hardware/mISDN/mISDNinfineon.c
@@ -125,7 +125,7 @@ struct inf_hw {
125#define PCI_SUBVENDOR_SEDLBAUER_PCI 0x53 125#define PCI_SUBVENDOR_SEDLBAUER_PCI 0x53
126#define PCI_SUB_ID_SEDLBAUER 0x01 126#define PCI_SUB_ID_SEDLBAUER 0x01
127 127
128static struct pci_device_id infineon_ids[] __devinitdata = { 128static struct pci_device_id infineon_ids[] = {
129 { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20), INF_DIVA20 }, 129 { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20), INF_DIVA20 },
130 { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20_U), INF_DIVA20U }, 130 { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20_U), INF_DIVA20U },
131 { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA201), INF_DIVA201 }, 131 { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA201), INF_DIVA201 },
@@ -603,7 +603,7 @@ inf_ctrl(struct inf_hw *hw, u32 cmd, u_long arg)
603 return ret; 603 return ret;
604} 604}
605 605
606static int __devinit 606static int
607init_irq(struct inf_hw *hw) 607init_irq(struct inf_hw *hw)
608{ 608{
609 int ret, cnt = 3; 609 int ret, cnt = 3;
@@ -662,7 +662,7 @@ release_io(struct inf_hw *hw)
662 } 662 }
663} 663}
664 664
665static int __devinit 665static int
666setup_io(struct inf_hw *hw) 666setup_io(struct inf_hw *hw)
667{ 667{
668 int err = 0; 668 int err = 0;
@@ -896,7 +896,7 @@ release_card(struct inf_hw *card) {
896 inf_cnt--; 896 inf_cnt--;
897} 897}
898 898
899static int __devinit 899static int
900setup_instance(struct inf_hw *card) 900setup_instance(struct inf_hw *card)
901{ 901{
902 int err; 902 int err;
@@ -1060,7 +1060,7 @@ static const struct inf_cinfo inf_card_info[] = {
1060 } 1060 }
1061}; 1061};
1062 1062
1063static const struct inf_cinfo * __devinit 1063static const struct inf_cinfo *
1064get_card_info(enum inf_types typ) 1064get_card_info(enum inf_types typ)
1065{ 1065{
1066 const struct inf_cinfo *ci = inf_card_info; 1066 const struct inf_cinfo *ci = inf_card_info;
@@ -1073,7 +1073,7 @@ get_card_info(enum inf_types typ)
1073 return NULL; 1073 return NULL;
1074} 1074}
1075 1075
1076static int __devinit 1076static int
1077inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 1077inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1078{ 1078{
1079 int err = -ENOMEM; 1079 int err = -ENOMEM;
@@ -1135,7 +1135,7 @@ inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1135 return err; 1135 return err;
1136} 1136}
1137 1137
1138static void __devexit 1138static void
1139inf_remove(struct pci_dev *pdev) 1139inf_remove(struct pci_dev *pdev)
1140{ 1140{
1141 struct inf_hw *card = pci_get_drvdata(pdev); 1141 struct inf_hw *card = pci_get_drvdata(pdev);
@@ -1149,7 +1149,7 @@ inf_remove(struct pci_dev *pdev)
1149static struct pci_driver infineon_driver = { 1149static struct pci_driver infineon_driver = {
1150 .name = "ISDN Infineon pci", 1150 .name = "ISDN Infineon pci",
1151 .probe = inf_probe, 1151 .probe = inf_probe,
1152 .remove = __devexit_p(inf_remove), 1152 .remove = inf_remove,
1153 .id_table = infineon_ids, 1153 .id_table = infineon_ids,
1154}; 1154};
1155 1155
diff --git a/drivers/isdn/hardware/mISDN/netjet.c b/drivers/isdn/hardware/mISDN/netjet.c
index 9bcade59eb73..8e2944784e00 100644
--- a/drivers/isdn/hardware/mISDN/netjet.c
+++ b/drivers/isdn/hardware/mISDN/netjet.c
@@ -1008,7 +1008,7 @@ nj_setup(struct tiger_hw *card)
1008} 1008}
1009 1009
1010 1010
1011static int __devinit 1011static int
1012setup_instance(struct tiger_hw *card) 1012setup_instance(struct tiger_hw *card)
1013{ 1013{
1014 int i, err; 1014 int i, err;
@@ -1059,7 +1059,7 @@ error:
1059 return err; 1059 return err;
1060} 1060}
1061 1061
1062static int __devinit 1062static int
1063nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 1063nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1064{ 1064{
1065 int err = -ENOMEM; 1065 int err = -ENOMEM;
@@ -1124,7 +1124,7 @@ nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1124} 1124}
1125 1125
1126 1126
1127static void __devexit nj_remove(struct pci_dev *pdev) 1127static void nj_remove(struct pci_dev *pdev)
1128{ 1128{
1129 struct tiger_hw *card = pci_get_drvdata(pdev); 1129 struct tiger_hw *card = pci_get_drvdata(pdev);
1130 1130
@@ -1137,7 +1137,7 @@ static void __devexit nj_remove(struct pci_dev *pdev)
1137/* We cannot select cards with PCI_SUB... IDs, since here are cards with 1137/* We cannot select cards with PCI_SUB... IDs, since here are cards with
1138 * SUB IDs set to PCI_ANY_ID, so we need to match all and reject 1138 * SUB IDs set to PCI_ANY_ID, so we need to match all and reject
1139 * known other cards which not work with this driver - see probe function */ 1139 * known other cards which not work with this driver - see probe function */
1140static struct pci_device_id nj_pci_ids[] __devinitdata = { 1140static struct pci_device_id nj_pci_ids[] = {
1141 { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, 1141 { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300,
1142 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 1142 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
1143 { } 1143 { }
@@ -1147,7 +1147,7 @@ MODULE_DEVICE_TABLE(pci, nj_pci_ids);
1147static struct pci_driver nj_driver = { 1147static struct pci_driver nj_driver = {
1148 .name = "netjet", 1148 .name = "netjet",
1149 .probe = nj_probe, 1149 .probe = nj_probe,
1150 .remove = __devexit_p(nj_remove), 1150 .remove = nj_remove,
1151 .id_table = nj_pci_ids, 1151 .id_table = nj_pci_ids,
1152}; 1152};
1153 1153
diff --git a/drivers/isdn/hardware/mISDN/speedfax.c b/drivers/isdn/hardware/mISDN/speedfax.c
index 93f344d74e54..9815bb4eec9c 100644
--- a/drivers/isdn/hardware/mISDN/speedfax.c
+++ b/drivers/isdn/hardware/mISDN/speedfax.c
@@ -282,7 +282,7 @@ sfax_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
282 return err; 282 return err;
283} 283}
284 284
285static int __devinit 285static int
286init_card(struct sfax_hw *sf) 286init_card(struct sfax_hw *sf)
287{ 287{
288 int ret, cnt = 3; 288 int ret, cnt = 3;
@@ -321,7 +321,7 @@ init_card(struct sfax_hw *sf)
321} 321}
322 322
323 323
324static int __devinit 324static int
325setup_speedfax(struct sfax_hw *sf) 325setup_speedfax(struct sfax_hw *sf)
326{ 326{
327 u_long flags; 327 u_long flags;
@@ -371,7 +371,7 @@ release_card(struct sfax_hw *card) {
371 sfax_cnt--; 371 sfax_cnt--;
372} 372}
373 373
374static int __devinit 374static int
375setup_instance(struct sfax_hw *card) 375setup_instance(struct sfax_hw *card)
376{ 376{
377 const struct firmware *firmware; 377 const struct firmware *firmware;
@@ -451,7 +451,7 @@ error_fw:
451 return err; 451 return err;
452} 452}
453 453
454static int __devinit 454static int
455sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 455sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
456{ 456{
457 int err = -ENOMEM; 457 int err = -ENOMEM;
@@ -480,7 +480,7 @@ sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
480 return err; 480 return err;
481} 481}
482 482
483static void __devexit 483static void
484sfax_remove_pci(struct pci_dev *pdev) 484sfax_remove_pci(struct pci_dev *pdev)
485{ 485{
486 struct sfax_hw *card = pci_get_drvdata(pdev); 486 struct sfax_hw *card = pci_get_drvdata(pdev);
@@ -491,7 +491,7 @@ sfax_remove_pci(struct pci_dev *pdev)
491 pr_debug("%s: drvdata already removed\n", __func__); 491 pr_debug("%s: drvdata already removed\n", __func__);
492} 492}
493 493
494static struct pci_device_id sfaxpci_ids[] __devinitdata = { 494static struct pci_device_id sfaxpci_ids[] = {
495 { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_100, 495 { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_100,
496 PCI_SUBVENDOR_SPEEDFAX_PYRAMID, PCI_SUB_ID_SEDLBAUER, 496 PCI_SUBVENDOR_SPEEDFAX_PYRAMID, PCI_SUB_ID_SEDLBAUER,
497 0, 0, (unsigned long) "Pyramid Speedfax + PCI" 497 0, 0, (unsigned long) "Pyramid Speedfax + PCI"
@@ -507,7 +507,7 @@ MODULE_DEVICE_TABLE(pci, sfaxpci_ids);
507static struct pci_driver sfaxpci_driver = { 507static struct pci_driver sfaxpci_driver = {
508 .name = "speedfax+ pci", 508 .name = "speedfax+ pci",
509 .probe = sfaxpci_probe, 509 .probe = sfaxpci_probe,
510 .remove = __devexit_p(sfax_remove_pci), 510 .remove = sfax_remove_pci,
511 .id_table = sfaxpci_ids, 511 .id_table = sfaxpci_ids,
512}; 512};
513 513
diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c
index 335fe6455002..de69f6828c76 100644
--- a/drivers/isdn/hardware/mISDN/w6692.c
+++ b/drivers/isdn/hardware/mISDN/w6692.c
@@ -1355,7 +1355,7 @@ error_setup:
1355 return err; 1355 return err;
1356} 1356}
1357 1357
1358static int __devinit 1358static int
1359w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 1359w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1360{ 1360{
1361 int err = -ENOMEM; 1361 int err = -ENOMEM;
@@ -1387,7 +1387,7 @@ w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1387 return err; 1387 return err;
1388} 1388}
1389 1389
1390static void __devexit 1390static void
1391w6692_remove_pci(struct pci_dev *pdev) 1391w6692_remove_pci(struct pci_dev *pdev)
1392{ 1392{
1393 struct w6692_hw *card = pci_get_drvdata(pdev); 1393 struct w6692_hw *card = pci_get_drvdata(pdev);
@@ -1414,7 +1414,7 @@ MODULE_DEVICE_TABLE(pci, w6692_ids);
1414static struct pci_driver w6692_driver = { 1414static struct pci_driver w6692_driver = {
1415 .name = "w6692", 1415 .name = "w6692",
1416 .probe = w6692_probe, 1416 .probe = w6692_probe,
1417 .remove = __devexit_p(w6692_remove_pci), 1417 .remove = w6692_remove_pci,
1418 .id_table = w6692_ids, 1418 .id_table = w6692_ids,
1419}; 1419};
1420 1420
diff --git a/drivers/isdn/hisax/amd7930_fn.c b/drivers/isdn/hisax/amd7930_fn.c
index 525471e776a7..1063babe1d3a 100644
--- a/drivers/isdn/hisax/amd7930_fn.c
+++ b/drivers/isdn/hisax/amd7930_fn.c
@@ -786,8 +786,7 @@ void Amd7930_init(struct IsdnCardState *cs)
786 } 786 }
787} 787}
788 788
789void __devinit 789void setup_Amd7930(struct IsdnCardState *cs)
790setup_Amd7930(struct IsdnCardState *cs)
791{ 790{
792 INIT_WORK(&cs->tqueue, Amd7930_bh); 791 INIT_WORK(&cs->tqueue, Amd7930_bh);
793 cs->dbusytimer.function = (void *) dbusy_timer_handler; 792 cs->dbusytimer.function = (void *) dbusy_timer_handler;
diff --git a/drivers/isdn/hisax/asuscom.c b/drivers/isdn/hisax/asuscom.c
index 2b74a40ad2a0..62f9c43e2377 100644
--- a/drivers/isdn/hisax/asuscom.c
+++ b/drivers/isdn/hisax/asuscom.c
@@ -295,7 +295,7 @@ Asus_card_msg(struct IsdnCardState *cs, int mt, void *arg)
295} 295}
296 296
297#ifdef __ISAPNP__ 297#ifdef __ISAPNP__
298static struct isapnp_device_id asus_ids[] __devinitdata = { 298static struct isapnp_device_id asus_ids[] = {
299 { ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), 299 { ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688),
300 ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), 300 ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688),
301 (unsigned long) "Asus1688 PnP" }, 301 (unsigned long) "Asus1688 PnP" },
@@ -311,12 +311,11 @@ static struct isapnp_device_id asus_ids[] __devinitdata = {
311 { 0, } 311 { 0, }
312}; 312};
313 313
314static struct isapnp_device_id *ipid __devinitdata = &asus_ids[0]; 314static struct isapnp_device_id *ipid = &asus_ids[0];
315static struct pnp_card *pnp_c __devinitdata = NULL; 315static struct pnp_card *pnp_c = NULL;
316#endif 316#endif
317 317
318int __devinit 318int setup_asuscom(struct IsdnCard *card)
319setup_asuscom(struct IsdnCard *card)
320{ 319{
321 int bytecnt; 320 int bytecnt;
322 struct IsdnCardState *cs = card->cs; 321 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/avm_a1.c b/drivers/isdn/hisax/avm_a1.c
index 402d489cbbf1..7dd74087ad72 100644
--- a/drivers/isdn/hisax/avm_a1.c
+++ b/drivers/isdn/hisax/avm_a1.c
@@ -177,8 +177,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
177 return (0); 177 return (0);
178} 178}
179 179
180int __devinit 180int setup_avm_a1(struct IsdnCard *card)
181setup_avm_a1(struct IsdnCard *card)
182{ 181{
183 u_char val; 182 u_char val;
184 struct IsdnCardState *cs = card->cs; 183 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/avm_a1p.c b/drivers/isdn/hisax/avm_a1p.c
index 39347198d643..bc52d54ff5e1 100644
--- a/drivers/isdn/hisax/avm_a1p.c
+++ b/drivers/isdn/hisax/avm_a1p.c
@@ -213,7 +213,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
213 return 0; 213 return 0;
214} 214}
215 215
216int __devinit setup_avm_a1_pcmcia(struct IsdnCard *card) 216int setup_avm_a1_pcmcia(struct IsdnCard *card)
217{ 217{
218 u_char model, vers; 218 u_char model, vers;
219 struct IsdnCardState *cs = card->cs; 219 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
index 979492d69dae..ee9b9a03cffa 100644
--- a/drivers/isdn/hisax/avm_pci.c
+++ b/drivers/isdn/hisax/avm_pci.c
@@ -718,7 +718,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
718 return (0); 718 return (0);
719} 719}
720 720
721static int __devinit avm_setup_rest(struct IsdnCardState *cs) 721static int avm_setup_rest(struct IsdnCardState *cs)
722{ 722{
723 u_int val, ver; 723 u_int val, ver;
724 724
@@ -770,16 +770,16 @@ static int __devinit avm_setup_rest(struct IsdnCardState *cs)
770 770
771#ifndef __ISAPNP__ 771#ifndef __ISAPNP__
772 772
773static int __devinit avm_pnp_setup(struct IsdnCardState *cs) 773static int avm_pnp_setup(struct IsdnCardState *cs)
774{ 774{
775 return (1); /* no-op: success */ 775 return (1); /* no-op: success */
776} 776}
777 777
778#else 778#else
779 779
780static struct pnp_card *pnp_avm_c __devinitdata = NULL; 780static struct pnp_card *pnp_avm_c = NULL;
781 781
782static int __devinit avm_pnp_setup(struct IsdnCardState *cs) 782static int avm_pnp_setup(struct IsdnCardState *cs)
783{ 783{
784 struct pnp_dev *pnp_avm_d = NULL; 784 struct pnp_dev *pnp_avm_d = NULL;
785 785
@@ -825,16 +825,16 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs)
825 825
826#ifndef CONFIG_PCI 826#ifndef CONFIG_PCI
827 827
828static int __devinit avm_pci_setup(struct IsdnCardState *cs) 828static int avm_pci_setup(struct IsdnCardState *cs)
829{ 829{
830 return (1); /* no-op: success */ 830 return (1); /* no-op: success */
831} 831}
832 832
833#else 833#else
834 834
835static struct pci_dev *dev_avm __devinitdata = NULL; 835static struct pci_dev *dev_avm = NULL;
836 836
837static int __devinit avm_pci_setup(struct IsdnCardState *cs) 837static int avm_pci_setup(struct IsdnCardState *cs)
838{ 838{
839 if ((dev_avm = hisax_find_pci_device(PCI_VENDOR_ID_AVM, 839 if ((dev_avm = hisax_find_pci_device(PCI_VENDOR_ID_AVM,
840 PCI_DEVICE_ID_AVM_A1, dev_avm))) { 840 PCI_DEVICE_ID_AVM_A1, dev_avm))) {
@@ -867,8 +867,7 @@ static int __devinit avm_pci_setup(struct IsdnCardState *cs)
867 867
868#endif /* CONFIG_PCI */ 868#endif /* CONFIG_PCI */
869 869
870int __devinit 870int setup_avm_pcipnp(struct IsdnCard *card)
871setup_avm_pcipnp(struct IsdnCard *card)
872{ 871{
873 struct IsdnCardState *cs = card->cs; 872 struct IsdnCardState *cs = card->cs;
874 char tmp[64]; 873 char tmp[64];
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c
index c644557ae614..4e676bcf8506 100644
--- a/drivers/isdn/hisax/avma1_cs.c
+++ b/drivers/isdn/hisax/avma1_cs.c
@@ -38,11 +38,11 @@ module_param(isdnprot, int, 0);
38 38
39/*====================================================================*/ 39/*====================================================================*/
40 40
41static int avma1cs_config(struct pcmcia_device *link) __devinit; 41static int avma1cs_config(struct pcmcia_device *link);
42static void avma1cs_release(struct pcmcia_device *link); 42static void avma1cs_release(struct pcmcia_device *link);
43static void avma1cs_detach(struct pcmcia_device *p_dev) __devexit; 43static void avma1cs_detach(struct pcmcia_device *p_dev);
44 44
45static int __devinit avma1cs_probe(struct pcmcia_device *p_dev) 45static int avma1cs_probe(struct pcmcia_device *p_dev)
46{ 46{
47 dev_dbg(&p_dev->dev, "avma1cs_attach()\n"); 47 dev_dbg(&p_dev->dev, "avma1cs_attach()\n");
48 48
@@ -54,7 +54,7 @@ static int __devinit avma1cs_probe(struct pcmcia_device *p_dev)
54 return avma1cs_config(p_dev); 54 return avma1cs_config(p_dev);
55} /* avma1cs_attach */ 55} /* avma1cs_attach */
56 56
57static void __devexit avma1cs_detach(struct pcmcia_device *link) 57static void avma1cs_detach(struct pcmcia_device *link)
58{ 58{
59 dev_dbg(&link->dev, "avma1cs_detach(0x%p)\n", link); 59 dev_dbg(&link->dev, "avma1cs_detach(0x%p)\n", link);
60 avma1cs_release(link); 60 avma1cs_release(link);
@@ -72,7 +72,7 @@ static int avma1cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
72} 72}
73 73
74 74
75static int __devinit avma1cs_config(struct pcmcia_device *link) 75static int avma1cs_config(struct pcmcia_device *link)
76{ 76{
77 int i = -1; 77 int i = -1;
78 char devname[128]; 78 char devname[128];
@@ -156,7 +156,7 @@ static struct pcmcia_driver avma1cs_driver = {
156 .owner = THIS_MODULE, 156 .owner = THIS_MODULE,
157 .name = "avma1_cs", 157 .name = "avma1_cs",
158 .probe = avma1cs_probe, 158 .probe = avma1cs_probe,
159 .remove = __devexit_p(avma1cs_detach), 159 .remove = avma1cs_detach,
160 .id_table = avma1cs_ids, 160 .id_table = avma1cs_ids,
161}; 161};
162 162
diff --git a/drivers/isdn/hisax/bkm_a4t.c b/drivers/isdn/hisax/bkm_a4t.c
index f6bf9c68892e..c360164bde1b 100644
--- a/drivers/isdn/hisax/bkm_a4t.c
+++ b/drivers/isdn/hisax/bkm_a4t.c
@@ -253,10 +253,8 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
253 return (0); 253 return (0);
254} 254}
255 255
256static int __devinit a4t_pci_probe(struct pci_dev *dev_a4t, 256static int a4t_pci_probe(struct pci_dev *dev_a4t, struct IsdnCardState *cs,
257 struct IsdnCardState *cs, 257 u_int *found, u_int *pci_memaddr)
258 u_int *found,
259 u_int *pci_memaddr)
260{ 258{
261 u16 sub_sys; 259 u16 sub_sys;
262 u16 sub_vendor; 260 u16 sub_vendor;
@@ -275,9 +273,8 @@ static int __devinit a4t_pci_probe(struct pci_dev *dev_a4t,
275 return (-1); /* continue looping */ 273 return (-1); /* continue looping */
276} 274}
277 275
278static int __devinit a4t_cs_init(struct IsdnCard *card, 276static int a4t_cs_init(struct IsdnCard *card, struct IsdnCardState *cs,
279 struct IsdnCardState *cs, 277 u_int pci_memaddr)
280 u_int pci_memaddr)
281{ 278{
282 I20_REGISTER_FILE *pI20_Regs; 279 I20_REGISTER_FILE *pI20_Regs;
283 280
@@ -323,10 +320,9 @@ static int __devinit a4t_cs_init(struct IsdnCard *card,
323 return (1); 320 return (1);
324} 321}
325 322
326static struct pci_dev *dev_a4t __devinitdata = NULL; 323static struct pci_dev *dev_a4t = NULL;
327 324
328int __devinit 325int setup_bkm_a4t(struct IsdnCard *card)
329setup_bkm_a4t(struct IsdnCard *card)
330{ 326{
331 struct IsdnCardState *cs = card->cs; 327 struct IsdnCardState *cs = card->cs;
332 char tmp[64]; 328 char tmp[64];
diff --git a/drivers/isdn/hisax/bkm_a8.c b/drivers/isdn/hisax/bkm_a8.c
index c9c98f071af6..dd663ea57ec6 100644
--- a/drivers/isdn/hisax/bkm_a8.c
+++ b/drivers/isdn/hisax/bkm_a8.c
@@ -255,8 +255,7 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
255 return (0); 255 return (0);
256} 256}
257 257
258static int __devinit 258static int sct_alloc_io(u_int adr, u_int len)
259sct_alloc_io(u_int adr, u_int len)
260{ 259{
261 if (!request_region(adr, len, "scitel")) { 260 if (!request_region(adr, len, "scitel")) {
262 printk(KERN_WARNING 261 printk(KERN_WARNING
@@ -267,15 +266,14 @@ sct_alloc_io(u_int adr, u_int len)
267 return (0); 266 return (0);
268} 267}
269 268
270static struct pci_dev *dev_a8 __devinitdata = NULL; 269static struct pci_dev *dev_a8 = NULL;
271static u16 sub_vendor_id __devinitdata = 0; 270static u16 sub_vendor_id = 0;
272static u16 sub_sys_id __devinitdata = 0; 271static u16 sub_sys_id = 0;
273static u_char pci_bus __devinitdata = 0; 272static u_char pci_bus = 0;
274static u_char pci_device_fn __devinitdata = 0; 273static u_char pci_device_fn = 0;
275static u_char pci_irq __devinitdata = 0; 274static u_char pci_irq = 0;
276 275
277int __devinit 276int setup_sct_quadro(struct IsdnCard *card)
278setup_sct_quadro(struct IsdnCard *card)
279{ 277{
280 struct IsdnCardState *cs = card->cs; 278 struct IsdnCardState *cs = card->cs;
281 char tmp[64]; 279 char tmp[64];
diff --git a/drivers/isdn/hisax/callc.c b/drivers/isdn/hisax/callc.c
index a47637be0cc5..ddec47a911a0 100644
--- a/drivers/isdn/hisax/callc.c
+++ b/drivers/isdn/hisax/callc.c
@@ -35,7 +35,7 @@ static int chancount;
35/* experimental REJECT after ALERTING for CALLBACK to beat the 4s delay */ 35/* experimental REJECT after ALERTING for CALLBACK to beat the 4s delay */
36#define ALERT_REJECT 0 36#define ALERT_REJECT 0
37 37
38/* Value to delay the sending of the first B-channel paket after CONNECT 38/* Value to delay the sending of the first B-channel packet after CONNECT
39 * here is no value given by ITU, but experience shows that 300 ms will 39 * here is no value given by ITU, but experience shows that 300 ms will
40 * work on many networks, if you or your other side is behind local exchanges 40 * work on many networks, if you or your other side is behind local exchanges
41 * a greater value may be recommented. If the delay is to short the first paket 41 * a greater value may be recommented. If the delay is to short the first paket
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
index b5edc0eeec06..bf04d2a3cf4a 100644
--- a/drivers/isdn/hisax/config.c
+++ b/drivers/isdn/hisax/config.c
@@ -338,11 +338,11 @@ static int io[HISAX_MAX_CARDS] = { 0, };
338#define IO0_IO1 338#define IO0_IO1
339#endif 339#endif
340#ifdef IO0_IO1 340#ifdef IO0_IO1
341static int io0[HISAX_MAX_CARDS] __devinitdata = { 0, }; 341static int io0[HISAX_MAX_CARDS] = { 0, };
342static int io1[HISAX_MAX_CARDS] __devinitdata = { 0, }; 342static int io1[HISAX_MAX_CARDS] = { 0, };
343#endif 343#endif
344static int irq[HISAX_MAX_CARDS] __devinitdata = { 0, }; 344static int irq[HISAX_MAX_CARDS] = { 0, };
345static int mem[HISAX_MAX_CARDS] __devinitdata = { 0, }; 345static int mem[HISAX_MAX_CARDS] = { 0, };
346static char *id = HiSaxID; 346static char *id = HiSaxID;
347 347
348MODULE_DESCRIPTION("ISDN4Linux: Driver for passive ISDN cards"); 348MODULE_DESCRIPTION("ISDN4Linux: Driver for passive ISDN cards");
@@ -852,7 +852,7 @@ static int init_card(struct IsdnCardState *cs)
852 return 3; 852 return 3;
853} 853}
854 854
855static int __devinit hisax_cs_setup_card(struct IsdnCard *card) 855static int hisax_cs_setup_card(struct IsdnCard *card)
856{ 856{
857 int ret; 857 int ret;
858 858
@@ -1171,12 +1171,8 @@ outf_cs:
1171 return 0; 1171 return 0;
1172} 1172}
1173 1173
1174/* Used from an exported function but calls __devinit functions. 1174static int checkcard(int cardnr, char *id, int *busy_flag,
1175 * Tell modpost not to warn (__ref) 1175 struct module *lockowner, hisax_setup_func_t card_setup)
1176 */
1177static int __ref checkcard(int cardnr, char *id, int *busy_flag,
1178 struct module *lockowner,
1179 hisax_setup_func_t card_setup)
1180{ 1176{
1181 int ret; 1177 int ret;
1182 struct IsdnCard *card = cards + cardnr; 1178 struct IsdnCard *card = cards + cardnr;
@@ -1547,9 +1543,7 @@ static void __exit HiSax_exit(void)
1547 printk(KERN_INFO "HiSax module removed\n"); 1543 printk(KERN_INFO "HiSax module removed\n");
1548} 1544}
1549 1545
1550#ifdef CONFIG_HOTPLUG 1546int hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card)
1551
1552int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card)
1553{ 1547{
1554 u_char ids[16]; 1548 u_char ids[16];
1555 int ret = -1; 1549 int ret = -1;
@@ -1568,9 +1562,7 @@ int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *
1568error: 1562error:
1569 return ret; 1563 return ret;
1570} 1564}
1571
1572EXPORT_SYMBOL(hisax_init_pcmcia); 1565EXPORT_SYMBOL(hisax_init_pcmcia);
1573#endif
1574 1566
1575EXPORT_SYMBOL(HiSax_closecard); 1567EXPORT_SYMBOL(HiSax_closecard);
1576 1568
@@ -1917,7 +1909,7 @@ static void EChannel_proc_rcv(struct hisax_d_if *d_if)
1917#ifdef CONFIG_PCI 1909#ifdef CONFIG_PCI
1918#include <linux/pci.h> 1910#include <linux/pci.h>
1919 1911
1920static struct pci_device_id hisax_pci_tbl[] __devinitdata __used = { 1912static struct pci_device_id hisax_pci_tbl[] __used = {
1921#ifdef CONFIG_HISAX_FRITZPCI 1913#ifdef CONFIG_HISAX_FRITZPCI
1922 {PCI_VDEVICE(AVM, PCI_DEVICE_ID_AVM_A1) }, 1914 {PCI_VDEVICE(AVM, PCI_DEVICE_ID_AVM_A1) },
1923#endif 1915#endif
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c
index 62a2945fa7f2..8d0cf6e4dc00 100644
--- a/drivers/isdn/hisax/diva.c
+++ b/drivers/isdn/hisax/diva.c
@@ -904,7 +904,7 @@ Diva_card_msg(struct IsdnCardState *cs, int mt, void *arg)
904 return (0); 904 return (0);
905} 905}
906 906
907static int __devinit setup_diva_common(struct IsdnCardState *cs) 907static int setup_diva_common(struct IsdnCardState *cs)
908{ 908{
909 int bytecnt; 909 int bytecnt;
910 u_char val; 910 u_char val;
@@ -997,7 +997,7 @@ static int __devinit setup_diva_common(struct IsdnCardState *cs)
997 997
998#ifdef CONFIG_ISA 998#ifdef CONFIG_ISA
999 999
1000static int __devinit setup_diva_isa(struct IsdnCard *card) 1000static int setup_diva_isa(struct IsdnCard *card)
1001{ 1001{
1002 struct IsdnCardState *cs = card->cs; 1002 struct IsdnCardState *cs = card->cs;
1003 u_char val; 1003 u_char val;
@@ -1033,7 +1033,7 @@ static int __devinit setup_diva_isa(struct IsdnCard *card)
1033 1033
1034#else /* if !CONFIG_ISA */ 1034#else /* if !CONFIG_ISA */
1035 1035
1036static int __devinit setup_diva_isa(struct IsdnCard *card) 1036static int setup_diva_isa(struct IsdnCard *card)
1037{ 1037{
1038 return (-1); /* card not found; continue search */ 1038 return (-1); /* card not found; continue search */
1039} 1039}
@@ -1041,7 +1041,7 @@ static int __devinit setup_diva_isa(struct IsdnCard *card)
1041#endif /* CONFIG_ISA */ 1041#endif /* CONFIG_ISA */
1042 1042
1043#ifdef __ISAPNP__ 1043#ifdef __ISAPNP__
1044static struct isapnp_device_id diva_ids[] __devinitdata = { 1044static struct isapnp_device_id diva_ids[] = {
1045 { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), 1045 { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51),
1046 ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), 1046 ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51),
1047 (unsigned long) "Diva picola" }, 1047 (unsigned long) "Diva picola" },
@@ -1063,10 +1063,10 @@ static struct isapnp_device_id diva_ids[] __devinitdata = {
1063 { 0, } 1063 { 0, }
1064}; 1064};
1065 1065
1066static struct isapnp_device_id *ipid __devinitdata = &diva_ids[0]; 1066static struct isapnp_device_id *ipid = &diva_ids[0];
1067static struct pnp_card *pnp_c __devinitdata = NULL; 1067static struct pnp_card *pnp_c = NULL;
1068 1068
1069static int __devinit setup_diva_isapnp(struct IsdnCard *card) 1069static int setup_diva_isapnp(struct IsdnCard *card)
1070{ 1070{
1071 struct IsdnCardState *cs = card->cs; 1071 struct IsdnCardState *cs = card->cs;
1072 struct pnp_dev *pnp_d; 1072 struct pnp_dev *pnp_d;
@@ -1141,7 +1141,7 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card)
1141 1141
1142#else /* if !ISAPNP */ 1142#else /* if !ISAPNP */
1143 1143
1144static int __devinit setup_diva_isapnp(struct IsdnCard *card) 1144static int setup_diva_isapnp(struct IsdnCard *card)
1145{ 1145{
1146 return (-1); /* card not found; continue search */ 1146 return (-1); /* card not found; continue search */
1147} 1147}
@@ -1149,12 +1149,12 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card)
1149#endif /* ISAPNP */ 1149#endif /* ISAPNP */
1150 1150
1151#ifdef CONFIG_PCI 1151#ifdef CONFIG_PCI
1152static struct pci_dev *dev_diva __devinitdata = NULL; 1152static struct pci_dev *dev_diva = NULL;
1153static struct pci_dev *dev_diva_u __devinitdata = NULL; 1153static struct pci_dev *dev_diva_u = NULL;
1154static struct pci_dev *dev_diva201 __devinitdata = NULL; 1154static struct pci_dev *dev_diva201 = NULL;
1155static struct pci_dev *dev_diva202 __devinitdata = NULL; 1155static struct pci_dev *dev_diva202 = NULL;
1156 1156
1157static int __devinit setup_diva_pci(struct IsdnCard *card) 1157static int setup_diva_pci(struct IsdnCard *card)
1158{ 1158{
1159 struct IsdnCardState *cs = card->cs; 1159 struct IsdnCardState *cs = card->cs;
1160 1160
@@ -1231,15 +1231,14 @@ static int __devinit setup_diva_pci(struct IsdnCard *card)
1231 1231
1232#else /* if !CONFIG_PCI */ 1232#else /* if !CONFIG_PCI */
1233 1233
1234static int __devinit setup_diva_pci(struct IsdnCard *card) 1234static int setup_diva_pci(struct IsdnCard *card)
1235{ 1235{
1236 return (-1); /* card not found; continue search */ 1236 return (-1); /* card not found; continue search */
1237} 1237}
1238 1238
1239#endif /* CONFIG_PCI */ 1239#endif /* CONFIG_PCI */
1240 1240
1241int __devinit 1241int setup_diva(struct IsdnCard *card)
1242setup_diva(struct IsdnCard *card)
1243{ 1242{
1244 int rc, have_card = 0; 1243 int rc, have_card = 0;
1245 struct IsdnCardState *cs = card->cs; 1244 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c
index 64ba26a4afe6..1df6f9a56ca2 100644
--- a/drivers/isdn/hisax/elsa.c
+++ b/drivers/isdn/hisax/elsa.c
@@ -831,8 +831,7 @@ probe_elsa(struct IsdnCardState *cs)
831 return (CARD_portlist[i]); 831 return (CARD_portlist[i]);
832} 832}
833 833
834static int __devinit 834static int setup_elsa_isa(struct IsdnCard *card)
835setup_elsa_isa(struct IsdnCard *card)
836{ 835{
837 struct IsdnCardState *cs = card->cs; 836 struct IsdnCardState *cs = card->cs;
838 u_char val; 837 u_char val;
@@ -902,7 +901,7 @@ setup_elsa_isa(struct IsdnCard *card)
902} 901}
903 902
904#ifdef __ISAPNP__ 903#ifdef __ISAPNP__
905static struct isapnp_device_id elsa_ids[] __devinitdata = { 904static struct isapnp_device_id elsa_ids[] = {
906 { ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), 905 { ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133),
907 ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), 906 ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133),
908 (unsigned long) "Elsa QS1000" }, 907 (unsigned long) "Elsa QS1000" },
@@ -912,12 +911,11 @@ static struct isapnp_device_id elsa_ids[] __devinitdata = {
912 { 0, } 911 { 0, }
913}; 912};
914 913
915static struct isapnp_device_id *ipid __devinitdata = &elsa_ids[0]; 914static struct isapnp_device_id *ipid = &elsa_ids[0];
916static struct pnp_card *pnp_c __devinitdata = NULL; 915static struct pnp_card *pnp_c = NULL;
917#endif /* __ISAPNP__ */ 916#endif /* __ISAPNP__ */
918 917
919static int __devinit 918static int setup_elsa_isapnp(struct IsdnCard *card)
920setup_elsa_isapnp(struct IsdnCard *card)
921{ 919{
922 struct IsdnCardState *cs = card->cs; 920 struct IsdnCardState *cs = card->cs;
923 921
@@ -994,8 +992,7 @@ setup_elsa_isapnp(struct IsdnCard *card)
994 return (1); 992 return (1);
995} 993}
996 994
997static void __devinit 995static void setup_elsa_pcmcia(struct IsdnCard *card)
998setup_elsa_pcmcia(struct IsdnCard *card)
999{ 996{
1000 struct IsdnCardState *cs = card->cs; 997 struct IsdnCardState *cs = card->cs;
1001 u_char val; 998 u_char val;
@@ -1027,11 +1024,10 @@ setup_elsa_pcmcia(struct IsdnCard *card)
1027} 1024}
1028 1025
1029#ifdef CONFIG_PCI 1026#ifdef CONFIG_PCI
1030static struct pci_dev *dev_qs1000 __devinitdata = NULL; 1027static struct pci_dev *dev_qs1000 = NULL;
1031static struct pci_dev *dev_qs3000 __devinitdata = NULL; 1028static struct pci_dev *dev_qs3000 = NULL;
1032 1029
1033static int __devinit 1030static int setup_elsa_pci(struct IsdnCard *card)
1034setup_elsa_pci(struct IsdnCard *card)
1035{ 1031{
1036 struct IsdnCardState *cs = card->cs; 1032 struct IsdnCardState *cs = card->cs;
1037 1033
@@ -1089,15 +1085,13 @@ setup_elsa_pci(struct IsdnCard *card)
1089 1085
1090#else 1086#else
1091 1087
1092static int __devinit 1088static int setup_elsa_pci(struct IsdnCard *card)
1093setup_elsa_pci(struct IsdnCard *card)
1094{ 1089{
1095 return (1); 1090 return (1);
1096} 1091}
1097#endif /* CONFIG_PCI */ 1092#endif /* CONFIG_PCI */
1098 1093
1099static int __devinit 1094static int setup_elsa_common(struct IsdnCard *card)
1100setup_elsa_common(struct IsdnCard *card)
1101{ 1095{
1102 struct IsdnCardState *cs = card->cs; 1096 struct IsdnCardState *cs = card->cs;
1103 u_char val; 1097 u_char val;
@@ -1212,8 +1206,7 @@ setup_elsa_common(struct IsdnCard *card)
1212 return (1); 1206 return (1);
1213} 1207}
1214 1208
1215int __devinit 1209int setup_elsa(struct IsdnCard *card)
1216setup_elsa(struct IsdnCard *card)
1217{ 1210{
1218 int rc; 1211 int rc;
1219 struct IsdnCardState *cs = card->cs; 1212 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c
index a8c4d3fc9a6d..ebe56918f6fc 100644
--- a/drivers/isdn/hisax/elsa_cs.c
+++ b/drivers/isdn/hisax/elsa_cs.c
@@ -62,9 +62,9 @@ MODULE_LICENSE("Dual MPL/GPL");
62static int protocol = 2; /* EURO-ISDN Default */ 62static int protocol = 2; /* EURO-ISDN Default */
63module_param(protocol, int, 0); 63module_param(protocol, int, 0);
64 64
65static int elsa_cs_config(struct pcmcia_device *link) __devinit; 65static int elsa_cs_config(struct pcmcia_device *link);
66static void elsa_cs_release(struct pcmcia_device *link); 66static void elsa_cs_release(struct pcmcia_device *link);
67static void elsa_cs_detach(struct pcmcia_device *p_dev) __devexit; 67static void elsa_cs_detach(struct pcmcia_device *p_dev);
68 68
69typedef struct local_info_t { 69typedef struct local_info_t {
70 struct pcmcia_device *p_dev; 70 struct pcmcia_device *p_dev;
@@ -72,7 +72,7 @@ typedef struct local_info_t {
72 int cardnr; 72 int cardnr;
73} local_info_t; 73} local_info_t;
74 74
75static int __devinit elsa_cs_probe(struct pcmcia_device *link) 75static int elsa_cs_probe(struct pcmcia_device *link)
76{ 76{
77 local_info_t *local; 77 local_info_t *local;
78 78
@@ -90,7 +90,7 @@ static int __devinit elsa_cs_probe(struct pcmcia_device *link)
90 return elsa_cs_config(link); 90 return elsa_cs_config(link);
91} /* elsa_cs_attach */ 91} /* elsa_cs_attach */
92 92
93static void __devexit elsa_cs_detach(struct pcmcia_device *link) 93static void elsa_cs_detach(struct pcmcia_device *link)
94{ 94{
95 local_info_t *info = link->priv; 95 local_info_t *info = link->priv;
96 96
@@ -126,7 +126,7 @@ static int elsa_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
126 return -ENODEV; 126 return -ENODEV;
127} 127}
128 128
129static int __devinit elsa_cs_config(struct pcmcia_device *link) 129static int elsa_cs_config(struct pcmcia_device *link)
130{ 130{
131 int i; 131 int i;
132 IsdnCard_t icard; 132 IsdnCard_t icard;
@@ -210,7 +210,7 @@ static struct pcmcia_driver elsa_cs_driver = {
210 .owner = THIS_MODULE, 210 .owner = THIS_MODULE,
211 .name = "elsa_cs", 211 .name = "elsa_cs",
212 .probe = elsa_cs_probe, 212 .probe = elsa_cs_probe,
213 .remove = __devexit_p(elsa_cs_detach), 213 .remove = elsa_cs_detach,
214 .id_table = elsa_ids, 214 .id_table = elsa_ids,
215 .suspend = elsa_suspend, 215 .suspend = elsa_suspend,
216 .resume = elsa_resume, 216 .resume = elsa_resume,
diff --git a/drivers/isdn/hisax/enternow_pci.c b/drivers/isdn/hisax/enternow_pci.c
index b1e38b54ebac..e8d431a8302d 100644
--- a/drivers/isdn/hisax/enternow_pci.c
+++ b/drivers/isdn/hisax/enternow_pci.c
@@ -300,8 +300,7 @@ enpci_interrupt(int intno, void *dev_id)
300 return IRQ_HANDLED; 300 return IRQ_HANDLED;
301} 301}
302 302
303static int __devinit en_pci_probe(struct pci_dev *dev_netjet, 303static int en_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs)
304 struct IsdnCardState *cs)
305{ 304{
306 if (pci_enable_device(dev_netjet)) 305 if (pci_enable_device(dev_netjet))
307 return (0); 306 return (0);
@@ -326,8 +325,7 @@ static int __devinit en_pci_probe(struct pci_dev *dev_netjet,
326 return (1); 325 return (1);
327} 326}
328 327
329static void __devinit en_cs_init(struct IsdnCard *card, 328static void en_cs_init(struct IsdnCard *card, struct IsdnCardState *cs)
330 struct IsdnCardState *cs)
331{ 329{
332 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; 330 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA;
333 cs->hw.njet.isac = cs->hw.njet.base + 0xC0; // Fenster zum AMD 331 cs->hw.njet.isac = cs->hw.njet.base + 0xC0; // Fenster zum AMD
@@ -350,8 +348,7 @@ static void __devinit en_cs_init(struct IsdnCard *card,
350 outb(cs->hw.njet.auxd, cs->hw.njet.auxa); 348 outb(cs->hw.njet.auxd, cs->hw.njet.auxa);
351} 349}
352 350
353static int __devinit en_cs_init_rest(struct IsdnCard *card, 351static int en_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs)
354 struct IsdnCardState *cs)
355{ 352{
356 const int bytecnt = 256; 353 const int bytecnt = 256;
357 354
@@ -384,11 +381,10 @@ static int __devinit en_cs_init_rest(struct IsdnCard *card,
384 return (1); 381 return (1);
385} 382}
386 383
387static struct pci_dev *dev_netjet __devinitdata = NULL; 384static struct pci_dev *dev_netjet = NULL;
388 385
389/* called by config.c */ 386/* called by config.c */
390int __devinit 387int setup_enternow_pci(struct IsdnCard *card)
391setup_enternow_pci(struct IsdnCard *card)
392{ 388{
393 int ret; 389 int ret;
394 struct IsdnCardState *cs = card->cs; 390 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/gazel.c b/drivers/isdn/hisax/gazel.c
index 4fef77562554..35c6df6534ec 100644
--- a/drivers/isdn/hisax/gazel.c
+++ b/drivers/isdn/hisax/gazel.c
@@ -483,8 +483,7 @@ error:
483 return 1; 483 return 1;
484} 484}
485 485
486static int __devinit 486static int setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs)
487setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs)
488{ 487{
489 printk(KERN_INFO "Gazel: ISA PnP card automatic recognition\n"); 488 printk(KERN_INFO "Gazel: ISA PnP card automatic recognition\n");
490 // we got an irq parameter, assume it is an ISA card 489 // we got an irq parameter, assume it is an ISA card
@@ -532,10 +531,9 @@ setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs)
532} 531}
533 532
534#ifdef CONFIG_PCI 533#ifdef CONFIG_PCI
535static struct pci_dev *dev_tel __devinitdata = NULL; 534static struct pci_dev *dev_tel = NULL;
536 535
537static int __devinit 536static int setup_gazelpci(struct IsdnCardState *cs)
538setup_gazelpci(struct IsdnCardState *cs)
539{ 537{
540 u_int pci_ioaddr0 = 0, pci_ioaddr1 = 0; 538 u_int pci_ioaddr0 = 0, pci_ioaddr1 = 0;
541 u_char pci_irq = 0, found; 539 u_char pci_irq = 0, found;
@@ -622,8 +620,7 @@ setup_gazelpci(struct IsdnCardState *cs)
622} 620}
623#endif /* CONFIG_PCI */ 621#endif /* CONFIG_PCI */
624 622
625int __devinit 623int setup_gazel(struct IsdnCard *card)
626setup_gazel(struct IsdnCard *card)
627{ 624{
628 struct IsdnCardState *cs = card->cs; 625 struct IsdnCardState *cs = card->cs;
629 char tmp[64]; 626 char tmp[64];
diff --git a/drivers/isdn/hisax/hfc4s8s_l1.c b/drivers/isdn/hisax/hfc4s8s_l1.c
index dea04de8e7ca..c49c294fc81e 100644
--- a/drivers/isdn/hisax/hfc4s8s_l1.c
+++ b/drivers/isdn/hisax/hfc4s8s_l1.c
@@ -1497,7 +1497,7 @@ enable_pci_ports(hfc4s8s_hw *hw)
1497/* initialise the HFC-4s/8s hardware */ 1497/* initialise the HFC-4s/8s hardware */
1498/* return 0 on success. */ 1498/* return 0 on success. */
1499/*************************************/ 1499/*************************************/
1500static int __devinit 1500static int
1501setup_instance(hfc4s8s_hw *hw) 1501setup_instance(hfc4s8s_hw *hw)
1502{ 1502{
1503 int err = -EIO; 1503 int err = -EIO;
@@ -1585,7 +1585,7 @@ out:
1585/*****************************************/ 1585/*****************************************/
1586/* PCI hotplug interface: probe new card */ 1586/* PCI hotplug interface: probe new card */
1587/*****************************************/ 1587/*****************************************/
1588static int __devinit 1588static int
1589hfc4s8s_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 1589hfc4s8s_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1590{ 1590{
1591 int err = -ENOMEM; 1591 int err = -ENOMEM;
@@ -1640,7 +1640,7 @@ out:
1640/**************************************/ 1640/**************************************/
1641/* PCI hotplug interface: remove card */ 1641/* PCI hotplug interface: remove card */
1642/**************************************/ 1642/**************************************/
1643static void __devexit 1643static void
1644hfc4s8s_remove(struct pci_dev *pdev) 1644hfc4s8s_remove(struct pci_dev *pdev)
1645{ 1645{
1646 hfc4s8s_hw *hw = pci_get_drvdata(pdev); 1646 hfc4s8s_hw *hw = pci_get_drvdata(pdev);
@@ -1662,7 +1662,7 @@ hfc4s8s_remove(struct pci_dev *pdev)
1662static struct pci_driver hfc4s8s_driver = { 1662static struct pci_driver hfc4s8s_driver = {
1663 .name = "hfc4s8s_l1", 1663 .name = "hfc4s8s_l1",
1664 .probe = hfc4s8s_probe, 1664 .probe = hfc4s8s_probe,
1665 .remove = __devexit_p(hfc4s8s_remove), 1665 .remove = hfc4s8s_remove,
1666 .id_table = hfc4s8s_ids, 1666 .id_table = hfc4s8s_ids,
1667}; 1667};
1668 1668
@@ -1688,14 +1688,6 @@ hfc4s8s_module_init(void)
1688 } 1688 }
1689 printk(KERN_INFO "HFC-4S/8S: found %d cards\n", card_cnt); 1689 printk(KERN_INFO "HFC-4S/8S: found %d cards\n", card_cnt);
1690 1690
1691#if !defined(CONFIG_HOTPLUG)
1692 if (err == 0) {
1693 err = -ENODEV;
1694 pci_unregister_driver(&hfc4s8s_driver);
1695 goto out;
1696 }
1697#endif
1698
1699 return 0; 1691 return 0;
1700out: 1692out:
1701 return (err); 1693 return (err);
diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
index f60d4be58941..3ccd724ff8c2 100644
--- a/drivers/isdn/hisax/hfc_pci.c
+++ b/drivers/isdn/hisax/hfc_pci.c
@@ -1632,9 +1632,9 @@ hfcpci_card_msg(struct IsdnCardState *cs, int mt, void *arg)
1632 1632
1633 1633
1634/* this variable is used as card index when more than one cards are present */ 1634/* this variable is used as card index when more than one cards are present */
1635static struct pci_dev *dev_hfcpci __devinitdata = NULL; 1635static struct pci_dev *dev_hfcpci = NULL;
1636 1636
1637int __devinit 1637int
1638setup_hfcpci(struct IsdnCard *card) 1638setup_hfcpci(struct IsdnCard *card)
1639{ 1639{
1640 u_long flags; 1640 u_long flags;
diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c
index 4ec279ce052f..90f34ae2b80f 100644
--- a/drivers/isdn/hisax/hfc_sx.c
+++ b/drivers/isdn/hisax/hfc_sx.c
@@ -1381,19 +1381,18 @@ hfcsx_card_msg(struct IsdnCardState *cs, int mt, void *arg)
1381} 1381}
1382 1382
1383#ifdef __ISAPNP__ 1383#ifdef __ISAPNP__
1384static struct isapnp_device_id hfc_ids[] __devinitdata = { 1384static struct isapnp_device_id hfc_ids[] = {
1385 { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), 1385 { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620),
1386 ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), 1386 ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620),
1387 (unsigned long) "Teles 16.3c2" }, 1387 (unsigned long) "Teles 16.3c2" },
1388 { 0, } 1388 { 0, }
1389}; 1389};
1390 1390
1391static struct isapnp_device_id *ipid __devinitdata = &hfc_ids[0]; 1391static struct isapnp_device_id *ipid = &hfc_ids[0];
1392static struct pnp_card *pnp_c __devinitdata = NULL; 1392static struct pnp_card *pnp_c = NULL;
1393#endif 1393#endif
1394 1394
1395int __devinit 1395int setup_hfcsx(struct IsdnCard *card)
1396setup_hfcsx(struct IsdnCard *card)
1397{ 1396{
1398 struct IsdnCardState *cs = card->cs; 1397 struct IsdnCardState *cs = card->cs;
1399 char tmp[64]; 1398 char tmp[64];
diff --git a/drivers/isdn/hisax/hfcscard.c b/drivers/isdn/hisax/hfcscard.c
index a5f048bd2bb3..394da646e97b 100644
--- a/drivers/isdn/hisax/hfcscard.c
+++ b/drivers/isdn/hisax/hfcscard.c
@@ -136,7 +136,7 @@ hfcs_card_msg(struct IsdnCardState *cs, int mt, void *arg)
136} 136}
137 137
138#ifdef __ISAPNP__ 138#ifdef __ISAPNP__
139static struct isapnp_device_id hfc_ids[] __devinitdata = { 139static struct isapnp_device_id hfc_ids[] = {
140 { ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), 140 { ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114),
141 ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), 141 ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114),
142 (unsigned long) "Acer P10" }, 142 (unsigned long) "Acer P10" },
@@ -161,12 +161,11 @@ static struct isapnp_device_id hfc_ids[] __devinitdata = {
161 { 0, } 161 { 0, }
162}; 162};
163 163
164static struct isapnp_device_id *ipid __devinitdata = &hfc_ids[0]; 164static struct isapnp_device_id *ipid = &hfc_ids[0];
165static struct pnp_card *pnp_c __devinitdata = NULL; 165static struct pnp_card *pnp_c = NULL;
166#endif 166#endif
167 167
168int __devinit 168int setup_hfcs(struct IsdnCard *card)
169setup_hfcs(struct IsdnCard *card)
170{ 169{
171 struct IsdnCardState *cs = card->cs; 170 struct IsdnCardState *cs = card->cs;
172 char tmp[64]; 171 char tmp[64];
diff --git a/drivers/isdn/hisax/hisax_fcpcipnp.c b/drivers/isdn/hisax/hisax_fcpcipnp.c
index e4f47fe3f7fd..5e8a5d967162 100644
--- a/drivers/isdn/hisax/hisax_fcpcipnp.c
+++ b/drivers/isdn/hisax/hisax_fcpcipnp.c
@@ -70,7 +70,7 @@ static struct pci_device_id fcpci_ids[] = {
70MODULE_DEVICE_TABLE(pci, fcpci_ids); 70MODULE_DEVICE_TABLE(pci, fcpci_ids);
71 71
72#ifdef CONFIG_PNP 72#ifdef CONFIG_PNP
73static struct pnp_device_id fcpnp_ids[] __devinitdata = { 73static struct pnp_device_id fcpnp_ids[] = {
74 { 74 {
75 .id = "AVM0900", 75 .id = "AVM0900",
76 .driver_data = (unsigned long) "Fritz!Card PnP", 76 .driver_data = (unsigned long) "Fritz!Card PnP",
@@ -712,7 +712,7 @@ static inline void fcpci_init(struct fritz_adapter *adapter)
712 712
713// ---------------------------------------------------------------------- 713// ----------------------------------------------------------------------
714 714
715static int __devinit fcpcipnp_setup(struct fritz_adapter *adapter) 715static int fcpcipnp_setup(struct fritz_adapter *adapter)
716{ 716{
717 u32 val = 0; 717 u32 val = 0;
718 int retval; 718 int retval;
@@ -825,7 +825,7 @@ err:
825 return retval; 825 return retval;
826} 826}
827 827
828static void __devexit fcpcipnp_release(struct fritz_adapter *adapter) 828static void fcpcipnp_release(struct fritz_adapter *adapter)
829{ 829{
830 DBG(1, ""); 830 DBG(1, "");
831 831
@@ -836,8 +836,7 @@ static void __devexit fcpcipnp_release(struct fritz_adapter *adapter)
836 836
837// ---------------------------------------------------------------------- 837// ----------------------------------------------------------------------
838 838
839static struct fritz_adapter * __devinit 839static struct fritz_adapter *new_adapter(void)
840new_adapter(void)
841{ 840{
842 struct fritz_adapter *adapter; 841 struct fritz_adapter *adapter;
843 struct hisax_b_if *b_if[2]; 842 struct hisax_b_if *b_if[2];
@@ -876,8 +875,7 @@ static void delete_adapter(struct fritz_adapter *adapter)
876 kfree(adapter); 875 kfree(adapter);
877} 876}
878 877
879static int __devinit fcpci_probe(struct pci_dev *pdev, 878static int fcpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
880 const struct pci_device_id *ent)
881{ 879{
882 struct fritz_adapter *adapter; 880 struct fritz_adapter *adapter;
883 int retval; 881 int retval;
@@ -917,7 +915,7 @@ err:
917} 915}
918 916
919#ifdef CONFIG_PNP 917#ifdef CONFIG_PNP
920static int __devinit fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) 918static int fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
921{ 919{
922 struct fritz_adapter *adapter; 920 struct fritz_adapter *adapter;
923 int retval; 921 int retval;
@@ -959,7 +957,7 @@ err:
959 return retval; 957 return retval;
960} 958}
961 959
962static void __devexit fcpnp_remove(struct pnp_dev *pdev) 960static void fcpnp_remove(struct pnp_dev *pdev)
963{ 961{
964 struct fritz_adapter *adapter = pnp_get_drvdata(pdev); 962 struct fritz_adapter *adapter = pnp_get_drvdata(pdev);
965 963
@@ -973,12 +971,12 @@ static void __devexit fcpnp_remove(struct pnp_dev *pdev)
973static struct pnp_driver fcpnp_driver = { 971static struct pnp_driver fcpnp_driver = {
974 .name = "fcpnp", 972 .name = "fcpnp",
975 .probe = fcpnp_probe, 973 .probe = fcpnp_probe,
976 .remove = __devexit_p(fcpnp_remove), 974 .remove = fcpnp_remove,
977 .id_table = fcpnp_ids, 975 .id_table = fcpnp_ids,
978}; 976};
979#endif 977#endif
980 978
981static void __devexit fcpci_remove(struct pci_dev *pdev) 979static void fcpci_remove(struct pci_dev *pdev)
982{ 980{
983 struct fritz_adapter *adapter = pci_get_drvdata(pdev); 981 struct fritz_adapter *adapter = pci_get_drvdata(pdev);
984 982
@@ -990,7 +988,7 @@ static void __devexit fcpci_remove(struct pci_dev *pdev)
990static struct pci_driver fcpci_driver = { 988static struct pci_driver fcpci_driver = {
991 .name = "fcpci", 989 .name = "fcpci",
992 .probe = fcpci_probe, 990 .probe = fcpci_probe,
993 .remove = __devexit_p(fcpci_remove), 991 .remove = fcpci_remove,
994 .id_table = fcpci_ids, 992 .id_table = fcpci_ids,
995}; 993};
996 994
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c
index 7be762b17c70..db5321f6379b 100644
--- a/drivers/isdn/hisax/icc.c
+++ b/drivers/isdn/hisax/icc.c
@@ -673,8 +673,7 @@ clear_pending_icc_ints(struct IsdnCardState *cs)
673 cs->writeisac(cs, ICC_MASK, 0xFF); 673 cs->writeisac(cs, ICC_MASK, 0xFF);
674} 674}
675 675
676void __devinit 676void setup_icc(struct IsdnCardState *cs)
677setup_icc(struct IsdnCardState *cs)
678{ 677{
679 INIT_WORK(&cs->tqueue, icc_bh); 678 INIT_WORK(&cs->tqueue, icc_bh);
680 cs->dbusytimer.function = (void *) dbusy_timer_handler; 679 cs->dbusytimer.function = (void *) dbusy_timer_handler;
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c
index bcd70a387307..a365ccc1c99c 100644
--- a/drivers/isdn/hisax/isac.c
+++ b/drivers/isdn/hisax/isac.c
@@ -24,11 +24,11 @@
24#define DBUSY_TIMER_VALUE 80 24#define DBUSY_TIMER_VALUE 80
25#define ARCOFI_USE 1 25#define ARCOFI_USE 1
26 26
27static char *ISACVer[] __devinitdata = 27static char *ISACVer[] =
28{"2086/2186 V1.1", "2085 B1", "2085 B2", 28{"2086/2186 V1.1", "2085 B1", "2085 B2",
29 "2085 V2.3"}; 29 "2085 V2.3"};
30 30
31void __devinit ISACVersion(struct IsdnCardState *cs, char *s) 31void ISACVersion(struct IsdnCardState *cs, char *s)
32{ 32{
33 int val; 33 int val;
34 34
@@ -669,8 +669,7 @@ void clear_pending_isac_ints(struct IsdnCardState *cs)
669 cs->writeisac(cs, ISAC_MASK, 0xFF); 669 cs->writeisac(cs, ISAC_MASK, 0xFF);
670} 670}
671 671
672void __devinit 672void setup_isac(struct IsdnCardState *cs)
673setup_isac(struct IsdnCardState *cs)
674{ 673{
675 INIT_WORK(&cs->tqueue, isac_bh); 674 INIT_WORK(&cs->tqueue, isac_bh);
676 cs->dbusytimer.function = (void *) dbusy_timer_handler; 675 cs->dbusytimer.function = (void *) dbusy_timer_handler;
diff --git a/drivers/isdn/hisax/isurf.c b/drivers/isdn/hisax/isurf.c
index c1530fe248c2..1399ddd4f6cb 100644
--- a/drivers/isdn/hisax/isurf.c
+++ b/drivers/isdn/hisax/isurf.c
@@ -194,11 +194,10 @@ isurf_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) {
194} 194}
195 195
196#ifdef __ISAPNP__ 196#ifdef __ISAPNP__
197static struct pnp_card *pnp_c __devinitdata = NULL; 197static struct pnp_card *pnp_c = NULL;
198#endif 198#endif
199 199
200int __devinit 200int setup_isurf(struct IsdnCard *card)
201setup_isurf(struct IsdnCard *card)
202{ 201{
203 int ver; 202 int ver;
204 struct IsdnCardState *cs = card->cs; 203 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/ix1_micro.c b/drivers/isdn/hisax/ix1_micro.c
index 5f299f82b801..7ae39f5e865d 100644
--- a/drivers/isdn/hisax/ix1_micro.c
+++ b/drivers/isdn/hisax/ix1_micro.c
@@ -209,7 +209,7 @@ ix1_card_msg(struct IsdnCardState *cs, int mt, void *arg)
209} 209}
210 210
211#ifdef __ISAPNP__ 211#ifdef __ISAPNP__
212static struct isapnp_device_id itk_ids[] __devinitdata = { 212static struct isapnp_device_id itk_ids[] = {
213 { ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), 213 { ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25),
214 ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), 214 ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25),
215 (unsigned long) "ITK micro 2" }, 215 (unsigned long) "ITK micro 2" },
@@ -219,13 +219,12 @@ static struct isapnp_device_id itk_ids[] __devinitdata = {
219 { 0, } 219 { 0, }
220}; 220};
221 221
222static struct isapnp_device_id *ipid __devinitdata = &itk_ids[0]; 222static struct isapnp_device_id *ipid = &itk_ids[0];
223static struct pnp_card *pnp_c __devinitdata = NULL; 223static struct pnp_card *pnp_c = NULL;
224#endif 224#endif
225 225
226 226
227int __devinit 227int setup_ix1micro(struct IsdnCard *card)
228setup_ix1micro(struct IsdnCard *card)
229{ 228{
230 struct IsdnCardState *cs = card->cs; 229 struct IsdnCardState *cs = card->cs;
231 char tmp[64]; 230 char tmp[64];
diff --git a/drivers/isdn/hisax/mic.c b/drivers/isdn/hisax/mic.c
index 08a6b7fb17f7..93398676f78f 100644
--- a/drivers/isdn/hisax/mic.c
+++ b/drivers/isdn/hisax/mic.c
@@ -187,8 +187,7 @@ mic_card_msg(struct IsdnCardState *cs, int mt, void *arg)
187 return (0); 187 return (0);
188} 188}
189 189
190int __devinit 190int setup_mic(struct IsdnCard *card)
191setup_mic(struct IsdnCard *card)
192{ 191{
193 int bytecnt; 192 int bytecnt;
194 struct IsdnCardState *cs = card->cs; 193 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/niccy.c b/drivers/isdn/hisax/niccy.c
index 6569e0315cca..e4c33cfe3ef4 100644
--- a/drivers/isdn/hisax/niccy.c
+++ b/drivers/isdn/hisax/niccy.c
@@ -223,10 +223,10 @@ static int niccy_card_msg(struct IsdnCardState *cs, int mt, void *arg)
223} 223}
224 224
225#ifdef __ISAPNP__ 225#ifdef __ISAPNP__
226static struct pnp_card *pnp_c __devinitdata = NULL; 226static struct pnp_card *pnp_c = NULL;
227#endif 227#endif
228 228
229int __devinit setup_niccy(struct IsdnCard *card) 229int setup_niccy(struct IsdnCard *card)
230{ 230{
231 struct IsdnCardState *cs = card->cs; 231 struct IsdnCardState *cs = card->cs;
232 char tmp[64]; 232 char tmp[64];
@@ -298,7 +298,7 @@ int __devinit setup_niccy(struct IsdnCard *card)
298 } 298 }
299 } else { 299 } else {
300#ifdef CONFIG_PCI 300#ifdef CONFIG_PCI
301 static struct pci_dev *niccy_dev __devinitdata; 301 static struct pci_dev *niccy_dev;
302 302
303 u_int pci_ioaddr; 303 u_int pci_ioaddr;
304 cs->subtyp = 0; 304 cs->subtyp = 0;
diff --git a/drivers/isdn/hisax/nj_s.c b/drivers/isdn/hisax/nj_s.c
index f36ff69c07e1..32b4bbd18eb9 100644
--- a/drivers/isdn/hisax/nj_s.c
+++ b/drivers/isdn/hisax/nj_s.c
@@ -148,8 +148,7 @@ NETjet_S_card_msg(struct IsdnCardState *cs, int mt, void *arg)
148 return (0); 148 return (0);
149} 149}
150 150
151static int __devinit njs_pci_probe(struct pci_dev *dev_netjet, 151static int njs_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs)
152 struct IsdnCardState *cs)
153{ 152{
154 u32 cfg; 153 u32 cfg;
155 154
@@ -187,8 +186,7 @@ static int __devinit njs_pci_probe(struct pci_dev *dev_netjet,
187 return (1); 186 return (1);
188} 187}
189 188
190static int __devinit njs_cs_init(struct IsdnCard *card, 189static int njs_cs_init(struct IsdnCard *card, struct IsdnCardState *cs)
191 struct IsdnCardState *cs)
192{ 190{
193 191
194 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; 192 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA;
@@ -225,8 +223,7 @@ static int __devinit njs_cs_init(struct IsdnCard *card,
225 return 1; /* end loop */ 223 return 1; /* end loop */
226} 224}
227 225
228static int __devinit njs_cs_init_rest(struct IsdnCard *card, 226static int njs_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs)
229 struct IsdnCardState *cs)
230{ 227{
231 const int bytecnt = 256; 228 const int bytecnt = 256;
232 229
@@ -256,10 +253,9 @@ static int __devinit njs_cs_init_rest(struct IsdnCard *card,
256 return (1); 253 return (1);
257} 254}
258 255
259static struct pci_dev *dev_netjet __devinitdata = NULL; 256static struct pci_dev *dev_netjet = NULL;
260 257
261int __devinit 258int setup_netjet_s(struct IsdnCard *card)
262setup_netjet_s(struct IsdnCard *card)
263{ 259{
264 int ret; 260 int ret;
265 struct IsdnCardState *cs = card->cs; 261 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/nj_u.c b/drivers/isdn/hisax/nj_u.c
index 333484aef425..4e8adbede361 100644
--- a/drivers/isdn/hisax/nj_u.c
+++ b/drivers/isdn/hisax/nj_u.c
@@ -128,8 +128,7 @@ NETjet_U_card_msg(struct IsdnCardState *cs, int mt, void *arg)
128 return (0); 128 return (0);
129} 129}
130 130
131static int __devinit nju_pci_probe(struct pci_dev *dev_netjet, 131static int nju_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs)
132 struct IsdnCardState *cs)
133{ 132{
134 if (pci_enable_device(dev_netjet)) 133 if (pci_enable_device(dev_netjet))
135 return (0); 134 return (0);
@@ -148,8 +147,7 @@ static int __devinit nju_pci_probe(struct pci_dev *dev_netjet,
148 return (1); 147 return (1);
149} 148}
150 149
151static int __devinit nju_cs_init(struct IsdnCard *card, 150static int nju_cs_init(struct IsdnCard *card, struct IsdnCardState *cs)
152 struct IsdnCardState *cs)
153{ 151{
154 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; 152 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA;
155 cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF; 153 cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF;
@@ -187,8 +185,7 @@ static int __devinit nju_cs_init(struct IsdnCard *card,
187 return 1; /* end loop */ 185 return 1; /* end loop */
188} 186}
189 187
190static int __devinit nju_cs_init_rest(struct IsdnCard *card, 188static int nju_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs)
191 struct IsdnCardState *cs)
192{ 189{
193 const int bytecnt = 256; 190 const int bytecnt = 256;
194 191
@@ -219,10 +216,9 @@ static int __devinit nju_cs_init_rest(struct IsdnCard *card,
219 return (1); 216 return (1);
220} 217}
221 218
222static struct pci_dev *dev_netjet __devinitdata = NULL; 219static struct pci_dev *dev_netjet = NULL;
223 220
224int __devinit 221int setup_netjet_u(struct IsdnCard *card)
225setup_netjet_u(struct IsdnCard *card)
226{ 222{
227 int ret; 223 int ret;
228 struct IsdnCardState *cs = card->cs; 224 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/s0box.c b/drivers/isdn/hisax/s0box.c
index 383c4e7ce50b..4e7d0aa227ad 100644
--- a/drivers/isdn/hisax/s0box.c
+++ b/drivers/isdn/hisax/s0box.c
@@ -210,8 +210,7 @@ S0Box_card_msg(struct IsdnCardState *cs, int mt, void *arg)
210 return (0); 210 return (0);
211} 211}
212 212
213int __devinit 213int setup_s0box(struct IsdnCard *card)
214setup_s0box(struct IsdnCard *card)
215{ 214{
216 struct IsdnCardState *cs = card->cs; 215 struct IsdnCardState *cs = card->cs;
217 char tmp[64]; 216 char tmp[64];
diff --git a/drivers/isdn/hisax/saphir.c b/drivers/isdn/hisax/saphir.c
index 75dcae6d36e0..6b2d0eccdd56 100644
--- a/drivers/isdn/hisax/saphir.c
+++ b/drivers/isdn/hisax/saphir.c
@@ -240,8 +240,7 @@ saphir_card_msg(struct IsdnCardState *cs, int mt, void *arg)
240} 240}
241 241
242 242
243int __devinit 243int setup_saphir(struct IsdnCard *card)
244setup_saphir(struct IsdnCard *card)
245{ 244{
246 struct IsdnCardState *cs = card->cs; 245 struct IsdnCardState *cs = card->cs;
247 char tmp[64]; 246 char tmp[64];
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c
index 1ee531b6be99..f16a47bcef48 100644
--- a/drivers/isdn/hisax/sedlbauer.c
+++ b/drivers/isdn/hisax/sedlbauer.c
@@ -517,7 +517,7 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg)
517} 517}
518 518
519#ifdef __ISAPNP__ 519#ifdef __ISAPNP__
520static struct isapnp_device_id sedl_ids[] __devinitdata = { 520static struct isapnp_device_id sedl_ids[] = {
521 { ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), 521 { ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01),
522 ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), 522 ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01),
523 (unsigned long) "Speed win" }, 523 (unsigned long) "Speed win" },
@@ -527,11 +527,10 @@ static struct isapnp_device_id sedl_ids[] __devinitdata = {
527 { 0, } 527 { 0, }
528}; 528};
529 529
530static struct isapnp_device_id *ipid __devinitdata = &sedl_ids[0]; 530static struct isapnp_device_id *ipid = &sedl_ids[0];
531static struct pnp_card *pnp_c __devinitdata = NULL; 531static struct pnp_card *pnp_c = NULL;
532 532
533static int __devinit 533static int setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
534setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
535{ 534{
536 struct IsdnCardState *cs = card->cs; 535 struct IsdnCardState *cs = card->cs;
537 struct pnp_dev *pnp_d; 536 struct pnp_dev *pnp_d;
@@ -591,18 +590,16 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
591} 590}
592#else 591#else
593 592
594static int __devinit 593static int setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
595setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
596{ 594{
597 return -1; 595 return -1;
598} 596}
599#endif /* __ISAPNP__ */ 597#endif /* __ISAPNP__ */
600 598
601#ifdef CONFIG_PCI 599#ifdef CONFIG_PCI
602static struct pci_dev *dev_sedl __devinitdata = NULL; 600static struct pci_dev *dev_sedl = NULL;
603 601
604static int __devinit 602static int setup_sedlbauer_pci(struct IsdnCard *card)
605setup_sedlbauer_pci(struct IsdnCard *card)
606{ 603{
607 struct IsdnCardState *cs = card->cs; 604 struct IsdnCardState *cs = card->cs;
608 u16 sub_vendor_id, sub_id; 605 u16 sub_vendor_id, sub_id;
@@ -667,16 +664,14 @@ setup_sedlbauer_pci(struct IsdnCard *card)
667 664
668#else 665#else
669 666
670static int __devinit 667static int setup_sedlbauer_pci(struct IsdnCard *card)
671setup_sedlbauer_pci(struct IsdnCard *card)
672{ 668{
673 return (1); 669 return (1);
674} 670}
675 671
676#endif /* CONFIG_PCI */ 672#endif /* CONFIG_PCI */
677 673
678int __devinit 674int setup_sedlbauer(struct IsdnCard *card)
679setup_sedlbauer(struct IsdnCard *card)
680{ 675{
681 int bytecnt = 8, ver, val, rc; 676 int bytecnt = 8, ver, val, rc;
682 struct IsdnCardState *cs = card->cs; 677 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index f0dfc0c976eb..90f81291641b 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -62,10 +62,10 @@ MODULE_LICENSE("Dual MPL/GPL");
62static int protocol = 2; /* EURO-ISDN Default */ 62static int protocol = 2; /* EURO-ISDN Default */
63module_param(protocol, int, 0); 63module_param(protocol, int, 0);
64 64
65static int sedlbauer_config(struct pcmcia_device *link) __devinit; 65static int sedlbauer_config(struct pcmcia_device *link);
66static void sedlbauer_release(struct pcmcia_device *link); 66static void sedlbauer_release(struct pcmcia_device *link);
67 67
68static void sedlbauer_detach(struct pcmcia_device *p_dev) __devexit; 68static void sedlbauer_detach(struct pcmcia_device *p_dev);
69 69
70typedef struct local_info_t { 70typedef struct local_info_t {
71 struct pcmcia_device *p_dev; 71 struct pcmcia_device *p_dev;
@@ -73,7 +73,7 @@ typedef struct local_info_t {
73 int cardnr; 73 int cardnr;
74} local_info_t; 74} local_info_t;
75 75
76static int __devinit sedlbauer_probe(struct pcmcia_device *link) 76static int sedlbauer_probe(struct pcmcia_device *link)
77{ 77{
78 local_info_t *local; 78 local_info_t *local;
79 79
@@ -90,7 +90,7 @@ static int __devinit sedlbauer_probe(struct pcmcia_device *link)
90 return sedlbauer_config(link); 90 return sedlbauer_config(link);
91} /* sedlbauer_attach */ 91} /* sedlbauer_attach */
92 92
93static void __devexit sedlbauer_detach(struct pcmcia_device *link) 93static void sedlbauer_detach(struct pcmcia_device *link)
94{ 94{
95 dev_dbg(&link->dev, "sedlbauer_detach(0x%p)\n", link); 95 dev_dbg(&link->dev, "sedlbauer_detach(0x%p)\n", link);
96 96
@@ -110,7 +110,7 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev, void *priv_data)
110 return pcmcia_request_io(p_dev); 110 return pcmcia_request_io(p_dev);
111} 111}
112 112
113static int __devinit sedlbauer_config(struct pcmcia_device *link) 113static int sedlbauer_config(struct pcmcia_device *link)
114{ 114{
115 int ret; 115 int ret;
116 IsdnCard_t icard; 116 IsdnCard_t icard;
@@ -201,7 +201,7 @@ static struct pcmcia_driver sedlbauer_driver = {
201 .owner = THIS_MODULE, 201 .owner = THIS_MODULE,
202 .name = "sedlbauer_cs", 202 .name = "sedlbauer_cs",
203 .probe = sedlbauer_probe, 203 .probe = sedlbauer_probe,
204 .remove = __devexit_p(sedlbauer_detach), 204 .remove = sedlbauer_detach,
205 .id_table = sedlbauer_ids, 205 .id_table = sedlbauer_ids,
206 .suspend = sedlbauer_suspend, 206 .suspend = sedlbauer_suspend,
207 .resume = sedlbauer_resume, 207 .resume = sedlbauer_resume,
diff --git a/drivers/isdn/hisax/sportster.c b/drivers/isdn/hisax/sportster.c
index 1267298ef551..18cee6360d0a 100644
--- a/drivers/isdn/hisax/sportster.c
+++ b/drivers/isdn/hisax/sportster.c
@@ -183,8 +183,7 @@ Sportster_card_msg(struct IsdnCardState *cs, int mt, void *arg)
183 return (0); 183 return (0);
184} 184}
185 185
186static int __devinit 186static int get_io_range(struct IsdnCardState *cs)
187get_io_range(struct IsdnCardState *cs)
188{ 187{
189 int i, j, adr; 188 int i, j, adr;
190 189
@@ -208,8 +207,7 @@ get_io_range(struct IsdnCardState *cs)
208 } 207 }
209} 208}
210 209
211int __devinit 210int setup_sportster(struct IsdnCard *card)
212setup_sportster(struct IsdnCard *card)
213{ 211{
214 struct IsdnCardState *cs = card->cs; 212 struct IsdnCardState *cs = card->cs;
215 char tmp[64]; 213 char tmp[64];
diff --git a/drivers/isdn/hisax/teleint.c b/drivers/isdn/hisax/teleint.c
index fa329e27cc5b..bf647545c70c 100644
--- a/drivers/isdn/hisax/teleint.c
+++ b/drivers/isdn/hisax/teleint.c
@@ -259,8 +259,7 @@ TeleInt_card_msg(struct IsdnCardState *cs, int mt, void *arg)
259 return (0); 259 return (0);
260} 260}
261 261
262int __devinit 262int setup_TeleInt(struct IsdnCard *card)
263setup_TeleInt(struct IsdnCard *card)
264{ 263{
265 struct IsdnCardState *cs = card->cs; 264 struct IsdnCardState *cs = card->cs;
266 char tmp[64]; 265 char tmp[64];
diff --git a/drivers/isdn/hisax/teles0.c b/drivers/isdn/hisax/teles0.c
index 49b4a26f91e0..ce9eabdd2f6e 100644
--- a/drivers/isdn/hisax/teles0.c
+++ b/drivers/isdn/hisax/teles0.c
@@ -263,8 +263,7 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg)
263 return (0); 263 return (0);
264} 264}
265 265
266int __devinit 266int setup_teles0(struct IsdnCard *card)
267setup_teles0(struct IsdnCard *card)
268{ 267{
269 u_char val; 268 u_char val;
270 struct IsdnCardState *cs = card->cs; 269 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/teles3.c b/drivers/isdn/hisax/teles3.c
index 220b919fafc3..38fb2c1a3f0f 100644
--- a/drivers/isdn/hisax/teles3.c
+++ b/drivers/isdn/hisax/teles3.c
@@ -253,7 +253,7 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg)
253 253
254#ifdef __ISAPNP__ 254#ifdef __ISAPNP__
255 255
256static struct isapnp_device_id teles_ids[] __devinitdata = { 256static struct isapnp_device_id teles_ids[] = {
257 { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), 257 { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110),
258 ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), 258 ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110),
259 (unsigned long) "Teles 16.3 PnP" }, 259 (unsigned long) "Teles 16.3 PnP" },
@@ -266,12 +266,11 @@ static struct isapnp_device_id teles_ids[] __devinitdata = {
266 { 0, } 266 { 0, }
267}; 267};
268 268
269static struct isapnp_device_id *ipid __devinitdata = &teles_ids[0]; 269static struct isapnp_device_id *ipid = &teles_ids[0];
270static struct pnp_card *pnp_c __devinitdata = NULL; 270static struct pnp_card *pnp_c = NULL;
271#endif 271#endif
272 272
273int __devinit 273int setup_teles3(struct IsdnCard *card)
274setup_teles3(struct IsdnCard *card)
275{ 274{
276 u_char val; 275 u_char val;
277 struct IsdnCardState *cs = card->cs; 276 struct IsdnCardState *cs = card->cs;
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index 4deac451807c..f2476ffb04fd 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -43,9 +43,9 @@ MODULE_LICENSE("GPL");
43static int protocol = 2; /* EURO-ISDN Default */ 43static int protocol = 2; /* EURO-ISDN Default */
44module_param(protocol, int, 0); 44module_param(protocol, int, 0);
45 45
46static int teles_cs_config(struct pcmcia_device *link) __devinit; 46static int teles_cs_config(struct pcmcia_device *link);
47static void teles_cs_release(struct pcmcia_device *link); 47static void teles_cs_release(struct pcmcia_device *link);
48static void teles_detach(struct pcmcia_device *p_dev) __devexit; 48static void teles_detach(struct pcmcia_device *p_dev);
49 49
50typedef struct local_info_t { 50typedef struct local_info_t {
51 struct pcmcia_device *p_dev; 51 struct pcmcia_device *p_dev;
@@ -53,7 +53,7 @@ typedef struct local_info_t {
53 int cardnr; 53 int cardnr;
54} local_info_t; 54} local_info_t;
55 55
56static int __devinit teles_probe(struct pcmcia_device *link) 56static int teles_probe(struct pcmcia_device *link)
57{ 57{
58 local_info_t *local; 58 local_info_t *local;
59 59
@@ -72,7 +72,7 @@ static int __devinit teles_probe(struct pcmcia_device *link)
72 return teles_cs_config(link); 72 return teles_cs_config(link);
73} /* teles_attach */ 73} /* teles_attach */
74 74
75static void __devexit teles_detach(struct pcmcia_device *link) 75static void teles_detach(struct pcmcia_device *link)
76{ 76{
77 local_info_t *info = link->priv; 77 local_info_t *info = link->priv;
78 78
@@ -108,7 +108,7 @@ static int teles_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
108 return -ENODEV; 108 return -ENODEV;
109} 109}
110 110
111static int __devinit teles_cs_config(struct pcmcia_device *link) 111static int teles_cs_config(struct pcmcia_device *link)
112{ 112{
113 int i; 113 int i;
114 IsdnCard_t icard; 114 IsdnCard_t icard;
@@ -192,7 +192,7 @@ static struct pcmcia_driver teles_cs_driver = {
192 .owner = THIS_MODULE, 192 .owner = THIS_MODULE,
193 .name = "teles_cs", 193 .name = "teles_cs",
194 .probe = teles_probe, 194 .probe = teles_probe,
195 .remove = __devexit_p(teles_detach), 195 .remove = teles_detach,
196 .id_table = teles_ids, 196 .id_table = teles_ids,
197 .suspend = teles_suspend, 197 .suspend = teles_suspend,
198 .resume = teles_resume, 198 .resume = teles_resume,
diff --git a/drivers/isdn/hisax/telespci.c b/drivers/isdn/hisax/telespci.c
index 9c002c9dc771..f6ab63aa6995 100644
--- a/drivers/isdn/hisax/telespci.c
+++ b/drivers/isdn/hisax/telespci.c
@@ -283,10 +283,9 @@ TelesPCI_card_msg(struct IsdnCardState *cs, int mt, void *arg)
283 return (0); 283 return (0);
284} 284}
285 285
286static struct pci_dev *dev_tel __devinitdata = NULL; 286static struct pci_dev *dev_tel = NULL;
287 287
288int __devinit 288int setup_telespci(struct IsdnCard *card)
289setup_telespci(struct IsdnCard *card)
290{ 289{
291 struct IsdnCardState *cs = card->cs; 290 struct IsdnCardState *cs = card->cs;
292 char tmp[64]; 291 char tmp[64];
diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c
index 0f0d094af85b..d8cac6935818 100644
--- a/drivers/isdn/hisax/w6692.c
+++ b/drivers/isdn/hisax/w6692.c
@@ -991,10 +991,9 @@ w6692_card_msg(struct IsdnCardState *cs, int mt, void *arg)
991 991
992static int id_idx; 992static int id_idx;
993 993
994static struct pci_dev *dev_w6692 __devinitdata = NULL; 994static struct pci_dev *dev_w6692 = NULL;
995 995
996int __devinit 996int setup_w6692(struct IsdnCard *card)
997setup_w6692(struct IsdnCard *card)
998{ 997{
999 struct IsdnCardState *cs = card->cs; 998 struct IsdnCardState *cs = card->cs;
1000 char tmp[64]; 999 char tmp[64];
diff --git a/drivers/isdn/hysdn/hysdn_init.c b/drivers/isdn/hysdn/hysdn_init.c
index b61bbb4bb52b..0db2f7506250 100644
--- a/drivers/isdn/hysdn/hysdn_init.c
+++ b/drivers/isdn/hysdn/hysdn_init.c
@@ -56,8 +56,8 @@ static hysdn_card *card_last = NULL; /* pointer to first card */
56/* is assumed and the module will not be kept in memory. */ 56/* is assumed and the module will not be kept in memory. */
57/****************************************************************************/ 57/****************************************************************************/
58 58
59static int __devinit hysdn_pci_init_one(struct pci_dev *akt_pcidev, 59static int hysdn_pci_init_one(struct pci_dev *akt_pcidev,
60 const struct pci_device_id *ent) 60 const struct pci_device_id *ent)
61{ 61{
62 hysdn_card *card; 62 hysdn_card *card;
63 int rc; 63 int rc;
@@ -109,7 +109,7 @@ err_out:
109 return rc; 109 return rc;
110} 110}
111 111
112static void __devexit hysdn_pci_remove_one(struct pci_dev *akt_pcidev) 112static void hysdn_pci_remove_one(struct pci_dev *akt_pcidev)
113{ 113{
114 hysdn_card *card = pci_get_drvdata(akt_pcidev); 114 hysdn_card *card = pci_get_drvdata(akt_pcidev);
115 115
@@ -147,7 +147,7 @@ static struct pci_driver hysdn_pci_driver = {
147 .name = "hysdn", 147 .name = "hysdn",
148 .id_table = hysdn_pci_tbl, 148 .id_table = hysdn_pci_tbl,
149 .probe = hysdn_pci_init_one, 149 .probe = hysdn_pci_init_one,
150 .remove = __devexit_p(hysdn_pci_remove_one), 150 .remove = hysdn_pci_remove_one,
151}; 151};
152 152
153static int hysdn_have_procfs; 153static int hysdn_have_procfs;
diff --git a/drivers/isdn/i4l/Kconfig b/drivers/isdn/i4l/Kconfig
index 2302fbe70ac6..9c6650ea848e 100644
--- a/drivers/isdn/i4l/Kconfig
+++ b/drivers/isdn/i4l/Kconfig
@@ -6,7 +6,7 @@ if ISDN_I4L
6 6
7config ISDN_PPP 7config ISDN_PPP
8 bool "Support synchronous PPP" 8 bool "Support synchronous PPP"
9 depends on INET && NETDEVICES 9 depends on INET
10 select SLHC 10 select SLHC
11 help 11 help
12 Over digital connections such as ISDN, there is no need to 12 Over digital connections such as ISDN, there is no need to
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 8c610fa6782b..e2a945ee9f05 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -1312,7 +1312,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
1312 } else 1312 } else
1313 return -EINVAL; 1313 return -EINVAL;
1314 break; 1314 break;
1315#ifdef CONFIG_NETDEVICES
1316 case IIOCNETGPN: 1315 case IIOCNETGPN:
1317 /* Get peer phone number of a connected 1316 /* Get peer phone number of a connected
1318 * isdn network interface */ 1317 * isdn network interface */
@@ -1322,7 +1321,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
1322 return isdn_net_getpeer(&phone, argp); 1321 return isdn_net_getpeer(&phone, argp);
1323 } else 1322 } else
1324 return -EINVAL; 1323 return -EINVAL;
1325#endif
1326 default: 1324 default:
1327 return -EINVAL; 1325 return -EINVAL;
1328 } 1326 }
@@ -1352,7 +1350,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
1352 case IIOCNETLCR: 1350 case IIOCNETLCR:
1353 printk(KERN_INFO "INFO: ISDN_ABC_LCR_SUPPORT not enabled\n"); 1351 printk(KERN_INFO "INFO: ISDN_ABC_LCR_SUPPORT not enabled\n");
1354 return -ENODEV; 1352 return -ENODEV;
1355#ifdef CONFIG_NETDEVICES
1356 case IIOCNETAIF: 1353 case IIOCNETAIF:
1357 /* Add a network-interface */ 1354 /* Add a network-interface */
1358 if (arg) { 1355 if (arg) {
@@ -1491,7 +1488,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
1491 return -EFAULT; 1488 return -EFAULT;
1492 return isdn_net_force_hangup(name); 1489 return isdn_net_force_hangup(name);
1493 break; 1490 break;
1494#endif /* CONFIG_NETDEVICES */
1495 case IIOCSETVER: 1491 case IIOCSETVER:
1496 dev->net_verbose = arg; 1492 dev->net_verbose = arg;
1497 printk(KERN_INFO "isdn: Verbose-Level is %d\n", dev->net_verbose); 1493 printk(KERN_INFO "isdn: Verbose-Level is %d\n", dev->net_verbose);
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
index b817809f763c..e09dc8a5e743 100644
--- a/drivers/isdn/i4l/isdn_tty.c
+++ b/drivers/isdn/i4l/isdn_tty.c
@@ -1849,6 +1849,8 @@ err_unregister:
1849 kfree(info->fax); 1849 kfree(info->fax);
1850#endif 1850#endif
1851 kfree(info->port.xmit_buf - 4); 1851 kfree(info->port.xmit_buf - 4);
1852 info->port.xmit_buf = NULL;
1853 tty_port_destroy(&info->port);
1852 } 1854 }
1853 tty_unregister_driver(m->tty_modem); 1855 tty_unregister_driver(m->tty_modem);
1854err: 1856err:
@@ -1870,6 +1872,8 @@ isdn_tty_exit(void)
1870 kfree(info->fax); 1872 kfree(info->fax);
1871#endif 1873#endif
1872 kfree(info->port.xmit_buf - 4); 1874 kfree(info->port.xmit_buf - 4);
1875 info->port.xmit_buf = NULL;
1876 tty_port_destroy(&info->port);
1873 } 1877 }
1874 tty_unregister_driver(dev->mdm.tty_modem); 1878 tty_unregister_driver(dev->mdm.tty_modem);
1875 put_tty_driver(dev->mdm.tty_modem); 1879 put_tty_driver(dev->mdm.tty_modem);
diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c
index c401634c00ec..3e245712bba7 100644
--- a/drivers/isdn/mISDN/core.c
+++ b/drivers/isdn/mISDN/core.c
@@ -140,7 +140,6 @@ static struct device_attribute mISDN_dev_attrs[] = {
140 {} 140 {}
141}; 141};
142 142
143#ifdef CONFIG_HOTPLUG
144static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) 143static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env)
145{ 144{
146 struct mISDNdevice *mdev = dev_to_mISDN(dev); 145 struct mISDNdevice *mdev = dev_to_mISDN(dev);
@@ -153,7 +152,6 @@ static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env)
153 152
154 return 0; 153 return 0;
155} 154}
156#endif
157 155
158static void mISDN_class_release(struct class *cls) 156static void mISDN_class_release(struct class *cls)
159{ 157{
@@ -163,9 +161,7 @@ static void mISDN_class_release(struct class *cls)
163static struct class mISDN_class = { 161static struct class mISDN_class = {
164 .name = "mISDN", 162 .name = "mISDN",
165 .owner = THIS_MODULE, 163 .owner = THIS_MODULE,
166#ifdef CONFIG_HOTPLUG
167 .dev_uevent = mISDN_uevent, 164 .dev_uevent = mISDN_uevent,
168#endif
169 .dev_attrs = mISDN_dev_attrs, 165 .dev_attrs = mISDN_dev_attrs,
170 .dev_release = mISDN_dev_release, 166 .dev_release = mISDN_dev_release,
171 .class_release = mISDN_class_release, 167 .class_release = mISDN_class_release,
diff --git a/drivers/isdn/mISDN/dsp_core.c b/drivers/isdn/mISDN/dsp_core.c
index 28c99c623bcd..22b720ec80cb 100644
--- a/drivers/isdn/mISDN/dsp_core.c
+++ b/drivers/isdn/mISDN/dsp_core.c
@@ -1217,8 +1217,7 @@ static void __exit dsp_cleanup(void)
1217{ 1217{
1218 mISDN_unregister_Bprotocol(&DSP); 1218 mISDN_unregister_Bprotocol(&DSP);
1219 1219
1220 if (timer_pending(&dsp_spl_tl)) 1220 del_timer_sync(&dsp_spl_tl);
1221 del_timer(&dsp_spl_tl);
1222 1221
1223 if (!list_empty(&dsp_ilist)) { 1222 if (!list_empty(&dsp_ilist)) {
1224 printk(KERN_ERR "mISDN_dsp: Audio DSP object inst list not " 1223 printk(KERN_ERR "mISDN_dsp: Audio DSP object inst list not "
diff --git a/drivers/isdn/mISDN/l1oip_core.c b/drivers/isdn/mISDN/l1oip_core.c
index d67126dbbb04..2c0d2c2bf946 100644
--- a/drivers/isdn/mISDN/l1oip_core.c
+++ b/drivers/isdn/mISDN/l1oip_core.c
@@ -277,7 +277,6 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
277 u16 timebase, u8 *buf, int len) 277 u16 timebase, u8 *buf, int len)
278{ 278{
279 u8 *p; 279 u8 *p;
280 int multi = 0;
281 u8 frame[len + 32]; 280 u8 frame[len + 32];
282 struct socket *socket = NULL; 281 struct socket *socket = NULL;
283 282
@@ -317,9 +316,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
317 *p++ = hc->id >> 8; 316 *p++ = hc->id >> 8;
318 *p++ = hc->id; 317 *p++ = hc->id;
319 } 318 }
320 *p++ = (multi == 1) ? 0x80 : 0x00 + channel; /* m-flag, channel */ 319 *p++ = 0x00 + channel; /* m-flag, channel */
321 if (multi == 1)
322 *p++ = len; /* length */
323 *p++ = timebase >> 8; /* time base */ 320 *p++ = timebase >> 8; /* time base */
324 *p++ = timebase; 321 *p++ = timebase;
325 322
diff --git a/drivers/isdn/mISDN/tei.c b/drivers/isdn/mISDN/tei.c
index be88728f1106..592f597d8951 100644
--- a/drivers/isdn/mISDN/tei.c
+++ b/drivers/isdn/mISDN/tei.c
@@ -250,7 +250,7 @@ tei_debug(struct FsmInst *fi, char *fmt, ...)
250static int 250static int
251get_free_id(struct manager *mgr) 251get_free_id(struct manager *mgr)
252{ 252{
253 u64 ids = 0; 253 DECLARE_BITMAP(ids, 64) = { [0 ... BITS_TO_LONGS(64) - 1] = 0 };
254 int i; 254 int i;
255 struct layer2 *l2; 255 struct layer2 *l2;
256 256
@@ -261,11 +261,11 @@ get_free_id(struct manager *mgr)
261 __func__); 261 __func__);
262 return -EBUSY; 262 return -EBUSY;
263 } 263 }
264 test_and_set_bit(l2->ch.nr, (u_long *)&ids); 264 __set_bit(l2->ch.nr, ids);
265 } 265 }
266 for (i = 1; i < 64; i++) 266 i = find_next_zero_bit(ids, 64, 1);
267 if (!test_bit(i, (u_long *)&ids)) 267 if (i < 64)
268 return i; 268 return i;
269 printk(KERN_WARNING "%s: more as 63 layer2 for one device\n", 269 printk(KERN_WARNING "%s: more as 63 layer2 for one device\n",
270 __func__); 270 __func__);
271 return -EBUSY; 271 return -EBUSY;
@@ -274,7 +274,7 @@ get_free_id(struct manager *mgr)
274static int 274static int
275get_free_tei(struct manager *mgr) 275get_free_tei(struct manager *mgr)
276{ 276{
277 u64 ids = 0; 277 DECLARE_BITMAP(ids, 64) = { [0 ... BITS_TO_LONGS(64) - 1] = 0 };
278 int i; 278 int i;
279 struct layer2 *l2; 279 struct layer2 *l2;
280 280
@@ -288,11 +288,11 @@ get_free_tei(struct manager *mgr)
288 continue; 288 continue;
289 i -= 64; 289 i -= 64;
290 290
291 test_and_set_bit(i, (u_long *)&ids); 291 __set_bit(i, ids);
292 } 292 }
293 for (i = 0; i < 64; i++) 293 i = find_first_zero_bit(ids, 64);
294 if (!test_bit(i, (u_long *)&ids)) 294 if (i < 64)
295 return i + 64; 295 return i + 64;
296 printk(KERN_WARNING "%s: more as 63 dynamic tei for one device\n", 296 printk(KERN_WARNING "%s: more as 63 dynamic tei for one device\n",
297 __func__); 297 __func__);
298 return -1; 298 return -1;