diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-05-24 00:29:57 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-05-24 00:29:57 -0400 |
commit | db21e578e551421d76641d72cb3f8296ed3f9e61 (patch) | |
tree | 73968aeda7ed0051b5cff6950ad513011a3c7a5f /drivers/net | |
parent | 6ed14254cb6e269030ff09bed8673473b7be0283 (diff) | |
parent | df8ccb9bf1ca360581a94c2245efb9fa613fbb29 (diff) |
Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/airo.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_main.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_80211_tx.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_ap.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_cs.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_main.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco_cs.c | 33 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco_nortel.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco_pci.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco_pci.h | 31 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco_plx.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco_tmd.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/spectrum_cs.c | 33 |
13 files changed, 49 insertions, 98 deletions
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index 7f2dacf634ee..4069b79d8259 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c | |||
@@ -2768,7 +2768,7 @@ static int airo_test_wpa_capable(struct airo_info *ai) | |||
2768 | 2768 | ||
2769 | /* Only firmware versions 5.30.17 or better can do WPA */ | 2769 | /* Only firmware versions 5.30.17 or better can do WPA */ |
2770 | if ((cap_rid.softVer > 0x530) | 2770 | if ((cap_rid.softVer > 0x530) |
2771 | || ((cap_rid.softVer == 0x530) && (cap_rid.softSubVer >= 0x17))) { | 2771 | || ((cap_rid.softVer == 0x530) && (cap_rid.softSubVer >= 17))) { |
2772 | airo_print_info(name, "WPA is supported."); | 2772 | airo_print_info(name, "WPA is supported."); |
2773 | return 1; | 2773 | return 1; |
2774 | } | 2774 | } |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 2adf02ac400e..c0502905a956 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c | |||
@@ -128,13 +128,15 @@ MODULE_PARM_DESC(fwpostfix, "Postfix for .fw files. Useful for debugging."); | |||
128 | static struct pci_device_id bcm43xx_pci_tbl[] = { | 128 | static struct pci_device_id bcm43xx_pci_tbl[] = { |
129 | /* Broadcom 4303 802.11b */ | 129 | /* Broadcom 4303 802.11b */ |
130 | { PCI_VENDOR_ID_BROADCOM, 0x4301, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 130 | { PCI_VENDOR_ID_BROADCOM, 0x4301, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
131 | /* Broadcom 4307 802.11b */ | 131 | /* Broadcom 4307 802.11b */ |
132 | { PCI_VENDOR_ID_BROADCOM, 0x4307, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 132 | { PCI_VENDOR_ID_BROADCOM, 0x4307, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
133 | /* Broadcom 4318 802.11b/g */ | 133 | /* Broadcom 4318 802.11b/g */ |
134 | { PCI_VENDOR_ID_BROADCOM, 0x4318, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 134 | { PCI_VENDOR_ID_BROADCOM, 0x4318, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
135 | /* Broadcom 4319 802.11a/b/g */ | ||
136 | { PCI_VENDOR_ID_BROADCOM, 0x4319, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | ||
135 | /* Broadcom 4306 802.11b/g */ | 137 | /* Broadcom 4306 802.11b/g */ |
136 | { PCI_VENDOR_ID_BROADCOM, 0x4320, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 138 | { PCI_VENDOR_ID_BROADCOM, 0x4320, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
137 | /* Broadcom 4306 802.11a */ | 139 | /* Broadcom 4306 802.11a */ |
138 | // { PCI_VENDOR_ID_BROADCOM, 0x4321, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 140 | // { PCI_VENDOR_ID_BROADCOM, 0x4321, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
139 | /* Broadcom 4309 802.11a/b/g */ | 141 | /* Broadcom 4309 802.11a/b/g */ |
140 | { PCI_VENDOR_ID_BROADCOM, 0x4324, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 142 | { PCI_VENDOR_ID_BROADCOM, 0x4324, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
diff --git a/drivers/net/wireless/hostap/hostap_80211_tx.c b/drivers/net/wireless/hostap/hostap_80211_tx.c index 06a5214145e3..4a5be70c0419 100644 --- a/drivers/net/wireless/hostap/hostap_80211_tx.c +++ b/drivers/net/wireless/hostap/hostap_80211_tx.c | |||
@@ -534,5 +534,4 @@ int hostap_master_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
534 | } | 534 | } |
535 | 535 | ||
536 | 536 | ||
537 | EXPORT_SYMBOL(hostap_dump_tx_80211); | ||
538 | EXPORT_SYMBOL(hostap_master_start_xmit); | 537 | EXPORT_SYMBOL(hostap_master_start_xmit); |
diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c index 06c3fa32b310..ba13125024cb 100644 --- a/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c | |||
@@ -3276,17 +3276,6 @@ EXPORT_SYMBOL(hostap_init_data); | |||
3276 | EXPORT_SYMBOL(hostap_init_ap_proc); | 3276 | EXPORT_SYMBOL(hostap_init_ap_proc); |
3277 | EXPORT_SYMBOL(hostap_free_data); | 3277 | EXPORT_SYMBOL(hostap_free_data); |
3278 | EXPORT_SYMBOL(hostap_check_sta_fw_version); | 3278 | EXPORT_SYMBOL(hostap_check_sta_fw_version); |
3279 | EXPORT_SYMBOL(hostap_handle_sta_tx); | ||
3280 | EXPORT_SYMBOL(hostap_handle_sta_release); | ||
3281 | EXPORT_SYMBOL(hostap_handle_sta_tx_exc); | 3279 | EXPORT_SYMBOL(hostap_handle_sta_tx_exc); |
3282 | EXPORT_SYMBOL(hostap_update_sta_ps); | ||
3283 | EXPORT_SYMBOL(hostap_handle_sta_rx); | ||
3284 | EXPORT_SYMBOL(hostap_is_sta_assoc); | ||
3285 | EXPORT_SYMBOL(hostap_is_sta_authorized); | ||
3286 | EXPORT_SYMBOL(hostap_add_sta); | ||
3287 | EXPORT_SYMBOL(hostap_update_rates); | ||
3288 | EXPORT_SYMBOL(hostap_add_wds_links); | ||
3289 | EXPORT_SYMBOL(hostap_wds_link_oper); | ||
3290 | #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT | 3280 | #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT |
3291 | EXPORT_SYMBOL(hostap_deauth_all_stas); | ||
3292 | #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */ | 3281 | #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */ |
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c index 55bed923fbe9..db03dc2646df 100644 --- a/drivers/net/wireless/hostap/hostap_cs.c +++ b/drivers/net/wireless/hostap/hostap_cs.c | |||
@@ -881,6 +881,12 @@ static struct pcmcia_device_id hostap_cs_ids[] = { | |||
881 | PCMCIA_DEVICE_PROD_ID12( | 881 | PCMCIA_DEVICE_PROD_ID12( |
882 | "ZoomAir 11Mbps High", "Rate wireless Networking", | 882 | "ZoomAir 11Mbps High", "Rate wireless Networking", |
883 | 0x273fe3db, 0x32a1eaee), | 883 | 0x273fe3db, 0x32a1eaee), |
884 | PCMCIA_DEVICE_PROD_ID123( | ||
885 | "Pretec", "CompactWLAN Card 802.11b", "2.5", | ||
886 | 0x1cadd3e5, 0xe697636c, 0x7a5bfcf1), | ||
887 | PCMCIA_DEVICE_PROD_ID123( | ||
888 | "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02", | ||
889 | 0xc7b8df9d, 0x1700d087, 0x4b74baa0), | ||
884 | PCMCIA_DEVICE_NULL | 890 | PCMCIA_DEVICE_NULL |
885 | }; | 891 | }; |
886 | MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids); | 892 | MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids); |
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index 8dd4c4446a64..93786f4218f0 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c | |||
@@ -1125,11 +1125,9 @@ EXPORT_SYMBOL(hostap_set_auth_algs); | |||
1125 | EXPORT_SYMBOL(hostap_dump_rx_header); | 1125 | EXPORT_SYMBOL(hostap_dump_rx_header); |
1126 | EXPORT_SYMBOL(hostap_dump_tx_header); | 1126 | EXPORT_SYMBOL(hostap_dump_tx_header); |
1127 | EXPORT_SYMBOL(hostap_80211_header_parse); | 1127 | EXPORT_SYMBOL(hostap_80211_header_parse); |
1128 | EXPORT_SYMBOL(hostap_80211_prism_header_parse); | ||
1129 | EXPORT_SYMBOL(hostap_80211_get_hdrlen); | 1128 | EXPORT_SYMBOL(hostap_80211_get_hdrlen); |
1130 | EXPORT_SYMBOL(hostap_get_stats); | 1129 | EXPORT_SYMBOL(hostap_get_stats); |
1131 | EXPORT_SYMBOL(hostap_setup_dev); | 1130 | EXPORT_SYMBOL(hostap_setup_dev); |
1132 | EXPORT_SYMBOL(hostap_proc); | ||
1133 | EXPORT_SYMBOL(hostap_set_multicast_list_queue); | 1131 | EXPORT_SYMBOL(hostap_set_multicast_list_queue); |
1134 | EXPORT_SYMBOL(hostap_set_hostapd); | 1132 | EXPORT_SYMBOL(hostap_set_hostapd); |
1135 | EXPORT_SYMBOL(hostap_set_hostapd_sta); | 1133 | EXPORT_SYMBOL(hostap_set_hostapd_sta); |
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c index d2c48ac60f46..b2aec4d9fbb1 100644 --- a/drivers/net/wireless/orinoco_cs.c +++ b/drivers/net/wireless/orinoco_cs.c | |||
@@ -147,14 +147,11 @@ static void orinoco_cs_detach(struct pcmcia_device *link) | |||
147 | { | 147 | { |
148 | struct net_device *dev = link->priv; | 148 | struct net_device *dev = link->priv; |
149 | 149 | ||
150 | if (link->dev_node) | ||
151 | unregister_netdev(dev); | ||
152 | |||
150 | orinoco_cs_release(link); | 153 | orinoco_cs_release(link); |
151 | 154 | ||
152 | DEBUG(0, PFX "detach: link=%p link->dev_node=%p\n", link, link->dev_node); | ||
153 | if (link->dev_node) { | ||
154 | DEBUG(0, PFX "About to unregister net device %p\n", | ||
155 | dev); | ||
156 | unregister_netdev(dev); | ||
157 | } | ||
158 | free_orinocodev(dev); | 155 | free_orinocodev(dev); |
159 | } /* orinoco_cs_detach */ | 156 | } /* orinoco_cs_detach */ |
160 | 157 | ||
@@ -346,19 +343,10 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
346 | net_device has been registered */ | 343 | net_device has been registered */ |
347 | 344 | ||
348 | /* Finally, report what we've done */ | 345 | /* Finally, report what we've done */ |
349 | printk(KERN_DEBUG "%s: index 0x%02x: ", | 346 | printk(KERN_DEBUG "%s: " DRIVER_NAME " at %s, irq %d, io " |
350 | dev->name, link->conf.ConfigIndex); | 347 | "0x%04x-0x%04x\n", dev->name, dev->class_dev.dev->bus_id, |
351 | if (link->conf.Vpp) | 348 | link->irq.AssignedIRQ, link->io.BasePort1, |
352 | printk(", Vpp %d.%d", link->conf.Vpp / 10, | 349 | link->io.BasePort1 + link->io.NumPorts1 - 1); |
353 | link->conf.Vpp % 10); | ||
354 | printk(", irq %d", link->irq.AssignedIRQ); | ||
355 | if (link->io.NumPorts1) | ||
356 | printk(", io 0x%04x-0x%04x", link->io.BasePort1, | ||
357 | link->io.BasePort1 + link->io.NumPorts1 - 1); | ||
358 | if (link->io.NumPorts2) | ||
359 | printk(" & 0x%04x-0x%04x", link->io.BasePort2, | ||
360 | link->io.BasePort2 + link->io.NumPorts2 - 1); | ||
361 | printk("\n"); | ||
362 | 350 | ||
363 | return 0; | 351 | return 0; |
364 | 352 | ||
@@ -427,7 +415,6 @@ static int orinoco_cs_resume(struct pcmcia_device *link) | |||
427 | struct orinoco_private *priv = netdev_priv(dev); | 415 | struct orinoco_private *priv = netdev_priv(dev); |
428 | struct orinoco_pccard *card = priv->card; | 416 | struct orinoco_pccard *card = priv->card; |
429 | int err = 0; | 417 | int err = 0; |
430 | unsigned long flags; | ||
431 | 418 | ||
432 | if (! test_bit(0, &card->hard_reset_in_progress)) { | 419 | if (! test_bit(0, &card->hard_reset_in_progress)) { |
433 | err = orinoco_reinit_firmware(dev); | 420 | err = orinoco_reinit_firmware(dev); |
@@ -437,7 +424,7 @@ static int orinoco_cs_resume(struct pcmcia_device *link) | |||
437 | return -EIO; | 424 | return -EIO; |
438 | } | 425 | } |
439 | 426 | ||
440 | spin_lock_irqsave(&priv->lock, flags); | 427 | spin_lock(&priv->lock); |
441 | 428 | ||
442 | netif_device_attach(dev); | 429 | netif_device_attach(dev); |
443 | priv->hw_unavailable--; | 430 | priv->hw_unavailable--; |
@@ -449,10 +436,10 @@ static int orinoco_cs_resume(struct pcmcia_device *link) | |||
449 | dev->name, err); | 436 | dev->name, err); |
450 | } | 437 | } |
451 | 438 | ||
452 | spin_unlock_irqrestore(&priv->lock, flags); | 439 | spin_unlock(&priv->lock); |
453 | } | 440 | } |
454 | 441 | ||
455 | return 0; | 442 | return err; |
456 | } | 443 | } |
457 | 444 | ||
458 | 445 | ||
diff --git a/drivers/net/wireless/orinoco_nortel.c b/drivers/net/wireless/orinoco_nortel.c index 1596182f7412..74b9d5b2ba9e 100644 --- a/drivers/net/wireless/orinoco_nortel.c +++ b/drivers/net/wireless/orinoco_nortel.c | |||
@@ -206,7 +206,6 @@ static int orinoco_nortel_init_one(struct pci_dev *pdev, | |||
206 | err = -EBUSY; | 206 | err = -EBUSY; |
207 | goto fail_irq; | 207 | goto fail_irq; |
208 | } | 208 | } |
209 | orinoco_pci_setup_netdev(dev, pdev, 2); | ||
210 | 209 | ||
211 | err = orinoco_nortel_hw_init(card); | 210 | err = orinoco_nortel_hw_init(card); |
212 | if (err) { | 211 | if (err) { |
@@ -227,6 +226,8 @@ static int orinoco_nortel_init_one(struct pci_dev *pdev, | |||
227 | } | 226 | } |
228 | 227 | ||
229 | pci_set_drvdata(pdev, dev); | 228 | pci_set_drvdata(pdev, dev); |
229 | printk(KERN_DEBUG "%s: " DRIVER_NAME " at %s\n", dev->name, | ||
230 | pci_name(pdev)); | ||
230 | 231 | ||
231 | return 0; | 232 | return 0; |
232 | 233 | ||
@@ -265,7 +266,7 @@ static void __devexit orinoco_nortel_remove_one(struct pci_dev *pdev) | |||
265 | iowrite16(0, card->bridge_io + 10); | 266 | iowrite16(0, card->bridge_io + 10); |
266 | 267 | ||
267 | unregister_netdev(dev); | 268 | unregister_netdev(dev); |
268 | free_irq(dev->irq, dev); | 269 | free_irq(pdev->irq, dev); |
269 | pci_set_drvdata(pdev, NULL); | 270 | pci_set_drvdata(pdev, NULL); |
270 | free_orinocodev(dev); | 271 | free_orinocodev(dev); |
271 | pci_iounmap(pdev, priv->hw.iobase); | 272 | pci_iounmap(pdev, priv->hw.iobase); |
diff --git a/drivers/net/wireless/orinoco_pci.c b/drivers/net/wireless/orinoco_pci.c index df37b95607ff..1c105f40f8d5 100644 --- a/drivers/net/wireless/orinoco_pci.c +++ b/drivers/net/wireless/orinoco_pci.c | |||
@@ -161,7 +161,6 @@ static int orinoco_pci_init_one(struct pci_dev *pdev, | |||
161 | err = -EBUSY; | 161 | err = -EBUSY; |
162 | goto fail_irq; | 162 | goto fail_irq; |
163 | } | 163 | } |
164 | orinoco_pci_setup_netdev(dev, pdev, 0); | ||
165 | 164 | ||
166 | err = orinoco_pci_cor_reset(priv); | 165 | err = orinoco_pci_cor_reset(priv); |
167 | if (err) { | 166 | if (err) { |
@@ -176,6 +175,8 @@ static int orinoco_pci_init_one(struct pci_dev *pdev, | |||
176 | } | 175 | } |
177 | 176 | ||
178 | pci_set_drvdata(pdev, dev); | 177 | pci_set_drvdata(pdev, dev); |
178 | printk(KERN_DEBUG "%s: " DRIVER_NAME " at %s\n", dev->name, | ||
179 | pci_name(pdev)); | ||
179 | 180 | ||
180 | return 0; | 181 | return 0; |
181 | 182 | ||
@@ -204,7 +205,7 @@ static void __devexit orinoco_pci_remove_one(struct pci_dev *pdev) | |||
204 | struct orinoco_private *priv = netdev_priv(dev); | 205 | struct orinoco_private *priv = netdev_priv(dev); |
205 | 206 | ||
206 | unregister_netdev(dev); | 207 | unregister_netdev(dev); |
207 | free_irq(dev->irq, dev); | 208 | free_irq(pdev->irq, dev); |
208 | pci_set_drvdata(pdev, NULL); | 209 | pci_set_drvdata(pdev, NULL); |
209 | free_orinocodev(dev); | 210 | free_orinocodev(dev); |
210 | pci_iounmap(pdev, priv->hw.iobase); | 211 | pci_iounmap(pdev, priv->hw.iobase); |
diff --git a/drivers/net/wireless/orinoco_pci.h b/drivers/net/wireless/orinoco_pci.h index b05a9a5b1f5f..7eb1e08113e0 100644 --- a/drivers/net/wireless/orinoco_pci.h +++ b/drivers/net/wireless/orinoco_pci.h | |||
@@ -18,32 +18,7 @@ struct orinoco_pci_card { | |||
18 | void __iomem *attr_io; | 18 | void __iomem *attr_io; |
19 | }; | 19 | }; |
20 | 20 | ||
21 | /* Set base address or memory range of the network device based on | 21 | #ifdef CONFIG_PM |
22 | * the PCI device it's using. Specify BAR of the "main" resource. | ||
23 | * To be used after request_irq(). */ | ||
24 | static inline void orinoco_pci_setup_netdev(struct net_device *dev, | ||
25 | struct pci_dev *pdev, int bar) | ||
26 | { | ||
27 | char *range_type; | ||
28 | unsigned long start = pci_resource_start(pdev, bar); | ||
29 | unsigned long len = pci_resource_len(pdev, bar); | ||
30 | unsigned long flags = pci_resource_flags(pdev, bar); | ||
31 | unsigned long end = start + len - 1; | ||
32 | |||
33 | dev->irq = pdev->irq; | ||
34 | if (flags & IORESOURCE_IO) { | ||
35 | dev->base_addr = start; | ||
36 | range_type = "ports"; | ||
37 | } else { | ||
38 | dev->mem_start = start; | ||
39 | dev->mem_end = end; | ||
40 | range_type = "memory"; | ||
41 | } | ||
42 | |||
43 | printk(KERN_DEBUG PFX "%s: irq %d, %s 0x%lx-0x%lx\n", | ||
44 | pci_name(pdev), pdev->irq, range_type, start, end); | ||
45 | } | ||
46 | |||
47 | static int orinoco_pci_suspend(struct pci_dev *pdev, pm_message_t state) | 22 | static int orinoco_pci_suspend(struct pci_dev *pdev, pm_message_t state) |
48 | { | 23 | { |
49 | struct net_device *dev = pci_get_drvdata(pdev); | 24 | struct net_device *dev = pci_get_drvdata(pdev); |
@@ -121,5 +96,9 @@ static int orinoco_pci_resume(struct pci_dev *pdev) | |||
121 | 96 | ||
122 | return 0; | 97 | return 0; |
123 | } | 98 | } |
99 | #else | ||
100 | #define orinoco_pci_suspend NULL | ||
101 | #define orinoco_pci_resume NULL | ||
102 | #endif | ||
124 | 103 | ||
125 | #endif /* _ORINOCO_PCI_H */ | 104 | #endif /* _ORINOCO_PCI_H */ |
diff --git a/drivers/net/wireless/orinoco_plx.c b/drivers/net/wireless/orinoco_plx.c index 7b9405096389..84f696c77551 100644 --- a/drivers/net/wireless/orinoco_plx.c +++ b/drivers/net/wireless/orinoco_plx.c | |||
@@ -245,7 +245,6 @@ static int orinoco_plx_init_one(struct pci_dev *pdev, | |||
245 | err = -EBUSY; | 245 | err = -EBUSY; |
246 | goto fail_irq; | 246 | goto fail_irq; |
247 | } | 247 | } |
248 | orinoco_pci_setup_netdev(dev, pdev, 2); | ||
249 | 248 | ||
250 | err = orinoco_plx_hw_init(card); | 249 | err = orinoco_plx_hw_init(card); |
251 | if (err) { | 250 | if (err) { |
@@ -266,6 +265,8 @@ static int orinoco_plx_init_one(struct pci_dev *pdev, | |||
266 | } | 265 | } |
267 | 266 | ||
268 | pci_set_drvdata(pdev, dev); | 267 | pci_set_drvdata(pdev, dev); |
268 | printk(KERN_DEBUG "%s: " DRIVER_NAME " at %s\n", dev->name, | ||
269 | pci_name(pdev)); | ||
269 | 270 | ||
270 | return 0; | 271 | return 0; |
271 | 272 | ||
@@ -301,7 +302,7 @@ static void __devexit orinoco_plx_remove_one(struct pci_dev *pdev) | |||
301 | struct orinoco_pci_card *card = priv->card; | 302 | struct orinoco_pci_card *card = priv->card; |
302 | 303 | ||
303 | unregister_netdev(dev); | 304 | unregister_netdev(dev); |
304 | free_irq(dev->irq, dev); | 305 | free_irq(pdev->irq, dev); |
305 | pci_set_drvdata(pdev, NULL); | 306 | pci_set_drvdata(pdev, NULL); |
306 | free_orinocodev(dev); | 307 | free_orinocodev(dev); |
307 | pci_iounmap(pdev, priv->hw.iobase); | 308 | pci_iounmap(pdev, priv->hw.iobase); |
diff --git a/drivers/net/wireless/orinoco_tmd.c b/drivers/net/wireless/orinoco_tmd.c index 0496663e837c..d2b4decb7a7d 100644 --- a/drivers/net/wireless/orinoco_tmd.c +++ b/drivers/net/wireless/orinoco_tmd.c | |||
@@ -147,7 +147,6 @@ static int orinoco_tmd_init_one(struct pci_dev *pdev, | |||
147 | err = -EBUSY; | 147 | err = -EBUSY; |
148 | goto fail_irq; | 148 | goto fail_irq; |
149 | } | 149 | } |
150 | orinoco_pci_setup_netdev(dev, pdev, 2); | ||
151 | 150 | ||
152 | err = orinoco_tmd_cor_reset(priv); | 151 | err = orinoco_tmd_cor_reset(priv); |
153 | if (err) { | 152 | if (err) { |
@@ -162,6 +161,8 @@ static int orinoco_tmd_init_one(struct pci_dev *pdev, | |||
162 | } | 161 | } |
163 | 162 | ||
164 | pci_set_drvdata(pdev, dev); | 163 | pci_set_drvdata(pdev, dev); |
164 | printk(KERN_DEBUG "%s: " DRIVER_NAME " at %s\n", dev->name, | ||
165 | pci_name(pdev)); | ||
165 | 166 | ||
166 | return 0; | 167 | return 0; |
167 | 168 | ||
@@ -194,7 +195,7 @@ static void __devexit orinoco_tmd_remove_one(struct pci_dev *pdev) | |||
194 | struct orinoco_pci_card *card = priv->card; | 195 | struct orinoco_pci_card *card = priv->card; |
195 | 196 | ||
196 | unregister_netdev(dev); | 197 | unregister_netdev(dev); |
197 | free_irq(dev->irq, dev); | 198 | free_irq(pdev->irq, dev); |
198 | pci_set_drvdata(pdev, NULL); | 199 | pci_set_drvdata(pdev, NULL); |
199 | free_orinocodev(dev); | 200 | free_orinocodev(dev); |
200 | pci_iounmap(pdev, priv->hw.iobase); | 201 | pci_iounmap(pdev, priv->hw.iobase); |
diff --git a/drivers/net/wireless/spectrum_cs.c b/drivers/net/wireless/spectrum_cs.c index aeb38d938832..7f9aa139c347 100644 --- a/drivers/net/wireless/spectrum_cs.c +++ b/drivers/net/wireless/spectrum_cs.c | |||
@@ -625,14 +625,11 @@ static void spectrum_cs_detach(struct pcmcia_device *link) | |||
625 | { | 625 | { |
626 | struct net_device *dev = link->priv; | 626 | struct net_device *dev = link->priv; |
627 | 627 | ||
628 | if (link->dev_node) | ||
629 | unregister_netdev(dev); | ||
630 | |||
628 | spectrum_cs_release(link); | 631 | spectrum_cs_release(link); |
629 | 632 | ||
630 | DEBUG(0, PFX "detach: link=%p link->dev_node=%p\n", link, link->dev_node); | ||
631 | if (link->dev_node) { | ||
632 | DEBUG(0, PFX "About to unregister net device %p\n", | ||
633 | dev); | ||
634 | unregister_netdev(dev); | ||
635 | } | ||
636 | free_orinocodev(dev); | 633 | free_orinocodev(dev); |
637 | } /* spectrum_cs_detach */ | 634 | } /* spectrum_cs_detach */ |
638 | 635 | ||
@@ -825,19 +822,10 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
825 | net_device has been registered */ | 822 | net_device has been registered */ |
826 | 823 | ||
827 | /* Finally, report what we've done */ | 824 | /* Finally, report what we've done */ |
828 | printk(KERN_DEBUG "%s: index 0x%02x: ", | 825 | printk(KERN_DEBUG "%s: " DRIVER_NAME " at %s, irq %d, io " |
829 | dev->name, link->conf.ConfigIndex); | 826 | "0x%04x-0x%04x\n", dev->name, dev->class_dev.dev->bus_id, |
830 | if (link->conf.Vpp) | 827 | link->irq.AssignedIRQ, link->io.BasePort1, |
831 | printk(", Vpp %d.%d", link->conf.Vpp / 10, | 828 | link->io.BasePort1 + link->io.NumPorts1 - 1); |
832 | link->conf.Vpp % 10); | ||
833 | printk(", irq %d", link->irq.AssignedIRQ); | ||
834 | if (link->io.NumPorts1) | ||
835 | printk(", io 0x%04x-0x%04x", link->io.BasePort1, | ||
836 | link->io.BasePort1 + link->io.NumPorts1 - 1); | ||
837 | if (link->io.NumPorts2) | ||
838 | printk(" & 0x%04x-0x%04x", link->io.BasePort2, | ||
839 | link->io.BasePort2 + link->io.NumPorts2 - 1); | ||
840 | printk("\n"); | ||
841 | 829 | ||
842 | return 0; | 830 | return 0; |
843 | 831 | ||
@@ -878,11 +866,10 @@ spectrum_cs_suspend(struct pcmcia_device *link) | |||
878 | { | 866 | { |
879 | struct net_device *dev = link->priv; | 867 | struct net_device *dev = link->priv; |
880 | struct orinoco_private *priv = netdev_priv(dev); | 868 | struct orinoco_private *priv = netdev_priv(dev); |
881 | unsigned long flags; | ||
882 | int err = 0; | 869 | int err = 0; |
883 | 870 | ||
884 | /* Mark the device as stopped, to block IO until later */ | 871 | /* Mark the device as stopped, to block IO until later */ |
885 | spin_lock_irqsave(&priv->lock, flags); | 872 | spin_lock(&priv->lock); |
886 | 873 | ||
887 | err = __orinoco_down(dev); | 874 | err = __orinoco_down(dev); |
888 | if (err) | 875 | if (err) |
@@ -892,9 +879,9 @@ spectrum_cs_suspend(struct pcmcia_device *link) | |||
892 | netif_device_detach(dev); | 879 | netif_device_detach(dev); |
893 | priv->hw_unavailable++; | 880 | priv->hw_unavailable++; |
894 | 881 | ||
895 | spin_unlock_irqrestore(&priv->lock, flags); | 882 | spin_unlock(&priv->lock); |
896 | 883 | ||
897 | return 0; | 884 | return err; |
898 | } | 885 | } |
899 | 886 | ||
900 | static int | 887 | static int |