diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-10-24 09:53:36 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-11-09 02:30:02 -0500 |
commit | 2caff14713d53abba273e6095495788e2720f756 (patch) | |
tree | d22eeea544d7a746a8c107322602d0da77450dff /drivers | |
parent | 624dd66957e53e15cf40e937b50597c4d41f0e99 (diff) |
pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (wireless)
Convert PCMCIA drivers to use the dynamic debug infrastructure, instead of
requiring manual settings of PCMCIA_DEBUG.
Also, remove all usages of the CS_CHECK macro and replace them with proper
Linux style calling and return value checking. The extra error reporting may
be dropped, as the PCMCIA core already complains about any (non-driver-author)
errors.
CC: linux-wireless@vger.kernel.org
CC: netdev@vger.kernel.org
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/airo_cs.c | 48 | ||||
-rw-r--r-- | drivers/net/wireless/atmel_cs.c | 46 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_cs.c | 23 | ||||
-rw-r--r-- | drivers/net/wireless/netwave_cs.c | 88 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/orinoco_cs.c | 27 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/spectrum_cs.c | 54 | ||||
-rw-r--r-- | drivers/net/wireless/wavelan_cs.c | 24 | ||||
-rw-r--r-- | drivers/net/wireless/wl3501_cs.c | 67 |
8 files changed, 136 insertions, 241 deletions
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c index d0593ed9170e..a1b84fc48afd 100644 --- a/drivers/net/wireless/airo_cs.c +++ b/drivers/net/wireless/airo_cs.c | |||
@@ -43,21 +43,6 @@ | |||
43 | 43 | ||
44 | #include "airo.h" | 44 | #include "airo.h" |
45 | 45 | ||
46 | /* | ||
47 | All the PCMCIA modules use PCMCIA_DEBUG to control debugging. If | ||
48 | you do not define PCMCIA_DEBUG at all, all the debug code will be | ||
49 | left out. If you compile with PCMCIA_DEBUG=0, the debug code will | ||
50 | be present but disabled -- but it can then be enabled for specific | ||
51 | modules at load time with a 'pc_debug=#' option to insmod. | ||
52 | */ | ||
53 | #ifdef PCMCIA_DEBUG | ||
54 | static int pc_debug = PCMCIA_DEBUG; | ||
55 | module_param(pc_debug, int, 0); | ||
56 | static char *version = "$Revision: 1.2 $"; | ||
57 | #define DEBUG(n, args...) if (pc_debug > (n)) printk(KERN_DEBUG args); | ||
58 | #else | ||
59 | #define DEBUG(n, args...) | ||
60 | #endif | ||
61 | 46 | ||
62 | /*====================================================================*/ | 47 | /*====================================================================*/ |
63 | 48 | ||
@@ -145,7 +130,7 @@ static int airo_probe(struct pcmcia_device *p_dev) | |||
145 | { | 130 | { |
146 | local_info_t *local; | 131 | local_info_t *local; |
147 | 132 | ||
148 | DEBUG(0, "airo_attach()\n"); | 133 | dev_dbg(&p_dev->dev, "airo_attach()\n"); |
149 | 134 | ||
150 | /* Interrupt setup */ | 135 | /* Interrupt setup */ |
151 | p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; | 136 | p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
@@ -184,7 +169,7 @@ static int airo_probe(struct pcmcia_device *p_dev) | |||
184 | 169 | ||
185 | static void airo_detach(struct pcmcia_device *link) | 170 | static void airo_detach(struct pcmcia_device *link) |
186 | { | 171 | { |
187 | DEBUG(0, "airo_detach(0x%p)\n", link); | 172 | dev_dbg(&link->dev, "airo_detach\n"); |
188 | 173 | ||
189 | airo_release(link); | 174 | airo_release(link); |
190 | 175 | ||
@@ -204,9 +189,6 @@ static void airo_detach(struct pcmcia_device *link) | |||
204 | 189 | ||
205 | ======================================================================*/ | 190 | ======================================================================*/ |
206 | 191 | ||
207 | #define CS_CHECK(fn, ret) \ | ||
208 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
209 | |||
210 | static int airo_cs_config_check(struct pcmcia_device *p_dev, | 192 | static int airo_cs_config_check(struct pcmcia_device *p_dev, |
211 | cistpl_cftable_entry_t *cfg, | 193 | cistpl_cftable_entry_t *cfg, |
212 | cistpl_cftable_entry_t *dflt, | 194 | cistpl_cftable_entry_t *dflt, |
@@ -291,11 +273,11 @@ static int airo_config(struct pcmcia_device *link) | |||
291 | { | 273 | { |
292 | local_info_t *dev; | 274 | local_info_t *dev; |
293 | win_req_t *req; | 275 | win_req_t *req; |
294 | int last_fn, last_ret; | 276 | int ret; |
295 | 277 | ||
296 | dev = link->priv; | 278 | dev = link->priv; |
297 | 279 | ||
298 | DEBUG(0, "airo_config(0x%p)\n", link); | 280 | dev_dbg(&link->dev, "airo_config\n"); |
299 | 281 | ||
300 | req = kzalloc(sizeof(win_req_t), GFP_KERNEL); | 282 | req = kzalloc(sizeof(win_req_t), GFP_KERNEL); |
301 | if (!req) | 283 | if (!req) |
@@ -315,8 +297,8 @@ static int airo_config(struct pcmcia_device *link) | |||
315 | * and most client drivers will only use the CIS to fill in | 297 | * and most client drivers will only use the CIS to fill in |
316 | * implementation-defined details. | 298 | * implementation-defined details. |
317 | */ | 299 | */ |
318 | last_ret = pcmcia_loop_config(link, airo_cs_config_check, req); | 300 | ret = pcmcia_loop_config(link, airo_cs_config_check, req); |
319 | if (last_ret) | 301 | if (ret) |
320 | goto failed; | 302 | goto failed; |
321 | 303 | ||
322 | /* | 304 | /* |
@@ -324,21 +306,25 @@ static int airo_config(struct pcmcia_device *link) | |||
324 | handler to the interrupt, unless the 'Handler' member of the | 306 | handler to the interrupt, unless the 'Handler' member of the |
325 | irq structure is initialized. | 307 | irq structure is initialized. |
326 | */ | 308 | */ |
327 | if (link->conf.Attributes & CONF_ENABLE_IRQ) | 309 | if (link->conf.Attributes & CONF_ENABLE_IRQ) { |
328 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 310 | ret = pcmcia_request_irq(link, &link->irq); |
311 | if (ret) | ||
312 | goto failed; | ||
313 | } | ||
329 | 314 | ||
330 | /* | 315 | /* |
331 | This actually configures the PCMCIA socket -- setting up | 316 | This actually configures the PCMCIA socket -- setting up |
332 | the I/O windows and the interrupt mapping, and putting the | 317 | the I/O windows and the interrupt mapping, and putting the |
333 | card and host interface into "Memory and IO" mode. | 318 | card and host interface into "Memory and IO" mode. |
334 | */ | 319 | */ |
335 | CS_CHECK(RequestConfiguration, | 320 | ret = pcmcia_request_configuration(link, &link->conf); |
336 | pcmcia_request_configuration(link, &link->conf)); | 321 | if (ret) |
322 | goto failed; | ||
337 | ((local_info_t *)link->priv)->eth_dev = | 323 | ((local_info_t *)link->priv)->eth_dev = |
338 | init_airo_card(link->irq.AssignedIRQ, | 324 | init_airo_card(link->irq.AssignedIRQ, |
339 | link->io.BasePort1, 1, &handle_to_dev(link)); | 325 | link->io.BasePort1, 1, &handle_to_dev(link)); |
340 | if (!((local_info_t *)link->priv)->eth_dev) | 326 | if (!((local_info_t *)link->priv)->eth_dev) |
341 | goto cs_failed; | 327 | goto failed; |
342 | 328 | ||
343 | /* | 329 | /* |
344 | At this point, the dev_node_t structure(s) need to be | 330 | At this point, the dev_node_t structure(s) need to be |
@@ -368,8 +354,6 @@ static int airo_config(struct pcmcia_device *link) | |||
368 | kfree(req); | 354 | kfree(req); |
369 | return 0; | 355 | return 0; |
370 | 356 | ||
371 | cs_failed: | ||
372 | cs_error(link, last_fn, last_ret); | ||
373 | failed: | 357 | failed: |
374 | airo_release(link); | 358 | airo_release(link); |
375 | kfree(req); | 359 | kfree(req); |
@@ -386,7 +370,7 @@ static int airo_config(struct pcmcia_device *link) | |||
386 | 370 | ||
387 | static void airo_release(struct pcmcia_device *link) | 371 | static void airo_release(struct pcmcia_device *link) |
388 | { | 372 | { |
389 | DEBUG(0, "airo_release(0x%p)\n", link); | 373 | dev_dbg(&link->dev, "airo_release\n"); |
390 | pcmcia_disable_device(link); | 374 | pcmcia_disable_device(link); |
391 | } | 375 | } |
392 | 376 | ||
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c index ddaa859c3491..78385722a768 100644 --- a/drivers/net/wireless/atmel_cs.c +++ b/drivers/net/wireless/atmel_cs.c | |||
@@ -55,22 +55,6 @@ | |||
55 | 55 | ||
56 | #include "atmel.h" | 56 | #include "atmel.h" |
57 | 57 | ||
58 | /* | ||
59 | All the PCMCIA modules use PCMCIA_DEBUG to control debugging. If | ||
60 | you do not define PCMCIA_DEBUG at all, all the debug code will be | ||
61 | left out. If you compile with PCMCIA_DEBUG=0, the debug code will | ||
62 | be present but disabled -- but it can then be enabled for specific | ||
63 | modules at load time with a 'pc_debug=#' option to insmod. | ||
64 | */ | ||
65 | |||
66 | #ifdef PCMCIA_DEBUG | ||
67 | static int pc_debug = PCMCIA_DEBUG; | ||
68 | module_param(pc_debug, int, 0); | ||
69 | static char *version = "$Revision: 1.2 $"; | ||
70 | #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args); | ||
71 | #else | ||
72 | #define DEBUG(n, args...) | ||
73 | #endif | ||
74 | 58 | ||
75 | /*====================================================================*/ | 59 | /*====================================================================*/ |
76 | 60 | ||
@@ -155,7 +139,7 @@ static int atmel_probe(struct pcmcia_device *p_dev) | |||
155 | { | 139 | { |
156 | local_info_t *local; | 140 | local_info_t *local; |
157 | 141 | ||
158 | DEBUG(0, "atmel_attach()\n"); | 142 | dev_dbg(&p_dev->dev, "atmel_attach()\n"); |
159 | 143 | ||
160 | /* Interrupt setup */ | 144 | /* Interrupt setup */ |
161 | p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; | 145 | p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
@@ -194,7 +178,7 @@ static int atmel_probe(struct pcmcia_device *p_dev) | |||
194 | 178 | ||
195 | static void atmel_detach(struct pcmcia_device *link) | 179 | static void atmel_detach(struct pcmcia_device *link) |
196 | { | 180 | { |
197 | DEBUG(0, "atmel_detach(0x%p)\n", link); | 181 | dev_dbg(&link->dev, "atmel_detach\n"); |
198 | 182 | ||
199 | atmel_release(link); | 183 | atmel_release(link); |
200 | 184 | ||
@@ -209,9 +193,6 @@ static void atmel_detach(struct pcmcia_device *link) | |||
209 | 193 | ||
210 | ======================================================================*/ | 194 | ======================================================================*/ |
211 | 195 | ||
212 | #define CS_CHECK(fn, ret) \ | ||
213 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
214 | |||
215 | /* Call-back function to interrogate PCMCIA-specific information | 196 | /* Call-back function to interrogate PCMCIA-specific information |
216 | about the current existance of the card */ | 197 | about the current existance of the card */ |
217 | static int card_present(void *arg) | 198 | static int card_present(void *arg) |
@@ -275,13 +256,13 @@ static int atmel_config_check(struct pcmcia_device *p_dev, | |||
275 | static int atmel_config(struct pcmcia_device *link) | 256 | static int atmel_config(struct pcmcia_device *link) |
276 | { | 257 | { |
277 | local_info_t *dev; | 258 | local_info_t *dev; |
278 | int last_fn, last_ret; | 259 | int ret; |
279 | struct pcmcia_device_id *did; | 260 | struct pcmcia_device_id *did; |
280 | 261 | ||
281 | dev = link->priv; | 262 | dev = link->priv; |
282 | did = dev_get_drvdata(&handle_to_dev(link)); | 263 | did = dev_get_drvdata(&handle_to_dev(link)); |
283 | 264 | ||
284 | DEBUG(0, "atmel_config(0x%p)\n", link); | 265 | dev_dbg(&link->dev, "atmel_config\n"); |
285 | 266 | ||
286 | /* | 267 | /* |
287 | In this loop, we scan the CIS for configuration table entries, | 268 | In this loop, we scan the CIS for configuration table entries, |
@@ -303,20 +284,25 @@ static int atmel_config(struct pcmcia_device *link) | |||
303 | handler to the interrupt, unless the 'Handler' member of the | 284 | handler to the interrupt, unless the 'Handler' member of the |
304 | irq structure is initialized. | 285 | irq structure is initialized. |
305 | */ | 286 | */ |
306 | if (link->conf.Attributes & CONF_ENABLE_IRQ) | 287 | if (link->conf.Attributes & CONF_ENABLE_IRQ) { |
307 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 288 | ret = pcmcia_request_irq(link, &link->irq); |
289 | if (ret) | ||
290 | goto failed; | ||
291 | } | ||
308 | 292 | ||
309 | /* | 293 | /* |
310 | This actually configures the PCMCIA socket -- setting up | 294 | This actually configures the PCMCIA socket -- setting up |
311 | the I/O windows and the interrupt mapping, and putting the | 295 | the I/O windows and the interrupt mapping, and putting the |
312 | card and host interface into "Memory and IO" mode. | 296 | card and host interface into "Memory and IO" mode. |
313 | */ | 297 | */ |
314 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 298 | ret = pcmcia_request_configuration(link, &link->conf); |
299 | if (ret) | ||
300 | goto failed; | ||
315 | 301 | ||
316 | if (link->irq.AssignedIRQ == 0) { | 302 | if (link->irq.AssignedIRQ == 0) { |
317 | printk(KERN_ALERT | 303 | printk(KERN_ALERT |
318 | "atmel: cannot assign IRQ: check that CONFIG_ISA is set in kernel config."); | 304 | "atmel: cannot assign IRQ: check that CONFIG_ISA is set in kernel config."); |
319 | goto cs_failed; | 305 | goto failed; |
320 | } | 306 | } |
321 | 307 | ||
322 | ((local_info_t*)link->priv)->eth_dev = | 308 | ((local_info_t*)link->priv)->eth_dev = |
@@ -327,7 +313,7 @@ static int atmel_config(struct pcmcia_device *link) | |||
327 | card_present, | 313 | card_present, |
328 | link); | 314 | link); |
329 | if (!((local_info_t*)link->priv)->eth_dev) | 315 | if (!((local_info_t*)link->priv)->eth_dev) |
330 | goto cs_failed; | 316 | goto failed; |
331 | 317 | ||
332 | 318 | ||
333 | /* | 319 | /* |
@@ -340,8 +326,6 @@ static int atmel_config(struct pcmcia_device *link) | |||
340 | 326 | ||
341 | return 0; | 327 | return 0; |
342 | 328 | ||
343 | cs_failed: | ||
344 | cs_error(link, last_fn, last_ret); | ||
345 | failed: | 329 | failed: |
346 | atmel_release(link); | 330 | atmel_release(link); |
347 | return -ENODEV; | 331 | return -ENODEV; |
@@ -359,7 +343,7 @@ static void atmel_release(struct pcmcia_device *link) | |||
359 | { | 343 | { |
360 | struct net_device *dev = ((local_info_t*)link->priv)->eth_dev; | 344 | struct net_device *dev = ((local_info_t*)link->priv)->eth_dev; |
361 | 345 | ||
362 | DEBUG(0, "atmel_release(0x%p)\n", link); | 346 | dev_dbg(&link->dev, "atmel_release\n"); |
363 | 347 | ||
364 | if (dev) | 348 | if (dev) |
365 | stop_atmel_card(dev); | 349 | stop_atmel_card(dev); |
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c index 31b60dd87bfe..ca3ab849ac03 100644 --- a/drivers/net/wireless/hostap/hostap_cs.c +++ b/drivers/net/wireless/hostap/hostap_cs.c | |||
@@ -510,10 +510,6 @@ static void prism2_detach(struct pcmcia_device *link) | |||
510 | } | 510 | } |
511 | 511 | ||
512 | 512 | ||
513 | #define CS_CHECK(fn, ret) \ | ||
514 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
515 | |||
516 | |||
517 | /* run after a CARD_INSERTION event is received to configure the PCMCIA | 513 | /* run after a CARD_INSERTION event is received to configure the PCMCIA |
518 | * socket and make the device available to the system */ | 514 | * socket and make the device available to the system */ |
519 | 515 | ||
@@ -605,7 +601,6 @@ static int prism2_config(struct pcmcia_device *link) | |||
605 | struct hostap_interface *iface; | 601 | struct hostap_interface *iface; |
606 | local_info_t *local; | 602 | local_info_t *local; |
607 | int ret = 1; | 603 | int ret = 1; |
608 | int last_fn, last_ret; | ||
609 | struct hostap_cs_priv *hw_priv; | 604 | struct hostap_cs_priv *hw_priv; |
610 | 605 | ||
611 | PDEBUG(DEBUG_FLOW, "prism2_config()\n"); | 606 | PDEBUG(DEBUG_FLOW, "prism2_config()\n"); |
@@ -617,13 +612,12 @@ static int prism2_config(struct pcmcia_device *link) | |||
617 | } | 612 | } |
618 | 613 | ||
619 | /* Look for an appropriate configuration table entry in the CIS */ | 614 | /* Look for an appropriate configuration table entry in the CIS */ |
620 | last_ret = pcmcia_loop_config(link, prism2_config_check, NULL); | 615 | ret = pcmcia_loop_config(link, prism2_config_check, NULL); |
621 | if (last_ret) { | 616 | if (ret) { |
622 | if (!ignore_cis_vcc) | 617 | if (!ignore_cis_vcc) |
623 | printk(KERN_ERR "GetNextTuple(): No matching " | 618 | printk(KERN_ERR "GetNextTuple(): No matching " |
624 | "CIS configuration. Maybe you need the " | 619 | "CIS configuration. Maybe you need the " |
625 | "ignore_cis_vcc=1 parameter.\n"); | 620 | "ignore_cis_vcc=1 parameter.\n"); |
626 | cs_error(link, RequestIO, last_ret); | ||
627 | goto failed; | 621 | goto failed; |
628 | } | 622 | } |
629 | 623 | ||
@@ -652,8 +646,9 @@ static int prism2_config(struct pcmcia_device *link) | |||
652 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | 646 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; |
653 | link->irq.Handler = prism2_interrupt; | 647 | link->irq.Handler = prism2_interrupt; |
654 | link->irq.Instance = dev; | 648 | link->irq.Instance = dev; |
655 | CS_CHECK(RequestIRQ, | 649 | ret = pcmcia_request_irq(link, &link->irq); |
656 | pcmcia_request_irq(link, &link->irq)); | 650 | if (ret) |
651 | goto failed; | ||
657 | } | 652 | } |
658 | 653 | ||
659 | /* | 654 | /* |
@@ -661,8 +656,9 @@ static int prism2_config(struct pcmcia_device *link) | |||
661 | * the I/O windows and the interrupt mapping, and putting the | 656 | * the I/O windows and the interrupt mapping, and putting the |
662 | * card and host interface into "Memory and IO" mode. | 657 | * card and host interface into "Memory and IO" mode. |
663 | */ | 658 | */ |
664 | CS_CHECK(RequestConfiguration, | 659 | ret = pcmcia_request_configuration(link, &link->conf); |
665 | pcmcia_request_configuration(link, &link->conf)); | 660 | if (ret) |
661 | goto failed; | ||
666 | 662 | ||
667 | dev->irq = link->irq.AssignedIRQ; | 663 | dev->irq = link->irq.AssignedIRQ; |
668 | dev->base_addr = link->io.BasePort1; | 664 | dev->base_addr = link->io.BasePort1; |
@@ -695,9 +691,6 @@ static int prism2_config(struct pcmcia_device *link) | |||
695 | } | 691 | } |
696 | return ret; | 692 | return ret; |
697 | 693 | ||
698 | cs_failed: | ||
699 | cs_error(link, last_fn, last_ret); | ||
700 | |||
701 | failed: | 694 | failed: |
702 | kfree(hw_priv); | 695 | kfree(hw_priv); |
703 | prism2_release((u_long)link); | 696 | prism2_release((u_long)link); |
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c index 9498b46c99a4..cbd85de0c601 100644 --- a/drivers/net/wireless/netwave_cs.c +++ b/drivers/net/wireless/netwave_cs.c | |||
@@ -145,23 +145,6 @@ static const unsigned int txConfEUD = 0x10; /* Enable Uni-Data packets */ | |||
145 | static const unsigned int txConfKey = 0x02; /* Scramble data packets */ | 145 | static const unsigned int txConfKey = 0x02; /* Scramble data packets */ |
146 | static const unsigned int txConfLoop = 0x01; /* Loopback mode */ | 146 | static const unsigned int txConfLoop = 0x01; /* Loopback mode */ |
147 | 147 | ||
148 | /* | ||
149 | All the PCMCIA modules use PCMCIA_DEBUG to control debugging. If | ||
150 | you do not define PCMCIA_DEBUG at all, all the debug code will be | ||
151 | left out. If you compile with PCMCIA_DEBUG=0, the debug code will | ||
152 | be present but disabled -- but it can then be enabled for specific | ||
153 | modules at load time with a 'pc_debug=#' option to insmod. | ||
154 | */ | ||
155 | |||
156 | #ifdef PCMCIA_DEBUG | ||
157 | static int pc_debug = PCMCIA_DEBUG; | ||
158 | module_param(pc_debug, int, 0); | ||
159 | #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args) | ||
160 | static char *version = | ||
161 | "netwave_cs.c 0.3.0 Thu Jul 17 14:36:02 1997 (John Markus Bjørndalen)\n"; | ||
162 | #else | ||
163 | #define DEBUG(n, args...) | ||
164 | #endif | ||
165 | 148 | ||
166 | /*====================================================================*/ | 149 | /*====================================================================*/ |
167 | 150 | ||
@@ -383,7 +366,7 @@ static int netwave_probe(struct pcmcia_device *link) | |||
383 | struct net_device *dev; | 366 | struct net_device *dev; |
384 | netwave_private *priv; | 367 | netwave_private *priv; |
385 | 368 | ||
386 | DEBUG(0, "netwave_attach()\n"); | 369 | dev_dbg(&link->dev, "netwave_attach()\n"); |
387 | 370 | ||
388 | /* Initialize the struct pcmcia_device structure */ | 371 | /* Initialize the struct pcmcia_device structure */ |
389 | dev = alloc_etherdev(sizeof(netwave_private)); | 372 | dev = alloc_etherdev(sizeof(netwave_private)); |
@@ -438,7 +421,7 @@ static void netwave_detach(struct pcmcia_device *link) | |||
438 | { | 421 | { |
439 | struct net_device *dev = link->priv; | 422 | struct net_device *dev = link->priv; |
440 | 423 | ||
441 | DEBUG(0, "netwave_detach(0x%p)\n", link); | 424 | dev_dbg(&link->dev, "netwave_detach\n"); |
442 | 425 | ||
443 | netwave_release(link); | 426 | netwave_release(link); |
444 | 427 | ||
@@ -725,18 +708,15 @@ static const struct iw_handler_def netwave_handler_def = | |||
725 | * | 708 | * |
726 | */ | 709 | */ |
727 | 710 | ||
728 | #define CS_CHECK(fn, ret) \ | ||
729 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
730 | |||
731 | static int netwave_pcmcia_config(struct pcmcia_device *link) { | 711 | static int netwave_pcmcia_config(struct pcmcia_device *link) { |
732 | struct net_device *dev = link->priv; | 712 | struct net_device *dev = link->priv; |
733 | netwave_private *priv = netdev_priv(dev); | 713 | netwave_private *priv = netdev_priv(dev); |
734 | int i, j, last_ret, last_fn; | 714 | int i, j, ret; |
735 | win_req_t req; | 715 | win_req_t req; |
736 | memreq_t mem; | 716 | memreq_t mem; |
737 | u_char __iomem *ramBase = NULL; | 717 | u_char __iomem *ramBase = NULL; |
738 | 718 | ||
739 | DEBUG(0, "netwave_pcmcia_config(0x%p)\n", link); | 719 | dev_dbg(&link->dev, "netwave_pcmcia_config\n"); |
740 | 720 | ||
741 | /* | 721 | /* |
742 | * Try allocating IO ports. This tries a few fixed addresses. | 722 | * Try allocating IO ports. This tries a few fixed addresses. |
@@ -749,22 +729,24 @@ static int netwave_pcmcia_config(struct pcmcia_device *link) { | |||
749 | if (i == 0) | 729 | if (i == 0) |
750 | break; | 730 | break; |
751 | } | 731 | } |
752 | if (i != 0) { | 732 | if (i != 0) |
753 | cs_error(link, RequestIO, i); | ||
754 | goto failed; | 733 | goto failed; |
755 | } | ||
756 | 734 | ||
757 | /* | 735 | /* |
758 | * Now allocate an interrupt line. Note that this does not | 736 | * Now allocate an interrupt line. Note that this does not |
759 | * actually assign a handler to the interrupt. | 737 | * actually assign a handler to the interrupt. |
760 | */ | 738 | */ |
761 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 739 | ret = pcmcia_request_irq(link, &link->irq); |
740 | if (ret) | ||
741 | goto failed; | ||
762 | 742 | ||
763 | /* | 743 | /* |
764 | * This actually configures the PCMCIA socket -- setting up | 744 | * This actually configures the PCMCIA socket -- setting up |
765 | * the I/O windows and the interrupt mapping. | 745 | * the I/O windows and the interrupt mapping. |
766 | */ | 746 | */ |
767 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 747 | ret = pcmcia_request_configuration(link, &link->conf); |
748 | if (ret) | ||
749 | goto failed; | ||
768 | 750 | ||
769 | /* | 751 | /* |
770 | * Allocate a 32K memory window. Note that the struct pcmcia_device | 752 | * Allocate a 32K memory window. Note that the struct pcmcia_device |
@@ -772,14 +754,18 @@ static int netwave_pcmcia_config(struct pcmcia_device *link) { | |||
772 | * device needs several windows, you'll need to keep track of | 754 | * device needs several windows, you'll need to keep track of |
773 | * the handles in your private data structure, dev->priv. | 755 | * the handles in your private data structure, dev->priv. |
774 | */ | 756 | */ |
775 | DEBUG(1, "Setting mem speed of %d\n", mem_speed); | 757 | dev_dbg(&link->dev, "Setting mem speed of %d\n", mem_speed); |
776 | 758 | ||
777 | req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_CM|WIN_ENABLE; | 759 | req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_CM|WIN_ENABLE; |
778 | req.Base = 0; req.Size = 0x8000; | 760 | req.Base = 0; req.Size = 0x8000; |
779 | req.AccessSpeed = mem_speed; | 761 | req.AccessSpeed = mem_speed; |
780 | CS_CHECK(RequestWindow, pcmcia_request_window(&link, &req, &link->win)); | 762 | ret = pcmcia_request_window(&link, &req, &link->win); |
763 | if (ret) | ||
764 | goto failed; | ||
781 | mem.CardOffset = 0x20000; mem.Page = 0; | 765 | mem.CardOffset = 0x20000; mem.Page = 0; |
782 | CS_CHECK(MapMemPage, pcmcia_map_mem_page(link->win, &mem)); | 766 | ret = pcmcia_map_mem_page(link->win, &mem); |
767 | if (ret) | ||
768 | goto failed; | ||
783 | 769 | ||
784 | /* Store base address of the common window frame */ | 770 | /* Store base address of the common window frame */ |
785 | ramBase = ioremap(req.Base, 0x8000); | 771 | ramBase = ioremap(req.Base, 0x8000); |
@@ -818,8 +804,6 @@ static int netwave_pcmcia_config(struct pcmcia_device *link) { | |||
818 | get_uint16(ramBase + NETWAVE_EREG_ARW+2)); | 804 | get_uint16(ramBase + NETWAVE_EREG_ARW+2)); |
819 | return 0; | 805 | return 0; |
820 | 806 | ||
821 | cs_failed: | ||
822 | cs_error(link, last_fn, last_ret); | ||
823 | failed: | 807 | failed: |
824 | netwave_release(link); | 808 | netwave_release(link); |
825 | return -ENODEV; | 809 | return -ENODEV; |
@@ -837,7 +821,7 @@ static void netwave_release(struct pcmcia_device *link) | |||
837 | struct net_device *dev = link->priv; | 821 | struct net_device *dev = link->priv; |
838 | netwave_private *priv = netdev_priv(dev); | 822 | netwave_private *priv = netdev_priv(dev); |
839 | 823 | ||
840 | DEBUG(0, "netwave_release(0x%p)\n", link); | 824 | dev_dbg(&link->dev, "netwave_release\n"); |
841 | 825 | ||
842 | pcmcia_disable_device(link); | 826 | pcmcia_disable_device(link); |
843 | if (link->win) | 827 | if (link->win) |
@@ -892,7 +876,7 @@ static void netwave_reset(struct net_device *dev) { | |||
892 | u_char __iomem *ramBase = priv->ramBase; | 876 | u_char __iomem *ramBase = priv->ramBase; |
893 | unsigned int iobase = dev->base_addr; | 877 | unsigned int iobase = dev->base_addr; |
894 | 878 | ||
895 | DEBUG(0, "netwave_reset: Done with hardware reset\n"); | 879 | pr_debug("netwave_reset: Done with hardware reset\n"); |
896 | 880 | ||
897 | priv->timeoutCounter = 0; | 881 | priv->timeoutCounter = 0; |
898 | 882 | ||
@@ -988,7 +972,7 @@ static int netwave_hw_xmit(unsigned char* data, int len, | |||
988 | 972 | ||
989 | dev->stats.tx_bytes += len; | 973 | dev->stats.tx_bytes += len; |
990 | 974 | ||
991 | DEBUG(3, "Transmitting with SPCQ %x SPU %x LIF %x ISPLQ %x\n", | 975 | pr_debug("Transmitting with SPCQ %x SPU %x LIF %x ISPLQ %x\n", |
992 | readb(ramBase + NETWAVE_EREG_SPCQ), | 976 | readb(ramBase + NETWAVE_EREG_SPCQ), |
993 | readb(ramBase + NETWAVE_EREG_SPU), | 977 | readb(ramBase + NETWAVE_EREG_SPU), |
994 | readb(ramBase + NETWAVE_EREG_LIF), | 978 | readb(ramBase + NETWAVE_EREG_LIF), |
@@ -1000,7 +984,7 @@ static int netwave_hw_xmit(unsigned char* data, int len, | |||
1000 | MaxData = get_uint16(ramBase + NETWAVE_EREG_TDP+2); | 984 | MaxData = get_uint16(ramBase + NETWAVE_EREG_TDP+2); |
1001 | DataOffset = get_uint16(ramBase + NETWAVE_EREG_TDP+4); | 985 | DataOffset = get_uint16(ramBase + NETWAVE_EREG_TDP+4); |
1002 | 986 | ||
1003 | DEBUG(3, "TxFreeList %x, MaxData %x, DataOffset %x\n", | 987 | pr_debug("TxFreeList %x, MaxData %x, DataOffset %x\n", |
1004 | TxFreeList, MaxData, DataOffset); | 988 | TxFreeList, MaxData, DataOffset); |
1005 | 989 | ||
1006 | /* Copy packet to the adapter fragment buffers */ | 990 | /* Copy packet to the adapter fragment buffers */ |
@@ -1088,7 +1072,7 @@ static irqreturn_t netwave_interrupt(int irq, void* dev_id) | |||
1088 | status = inb(iobase + NETWAVE_REG_ASR); | 1072 | status = inb(iobase + NETWAVE_REG_ASR); |
1089 | 1073 | ||
1090 | if (!pcmcia_dev_present(link)) { | 1074 | if (!pcmcia_dev_present(link)) { |
1091 | DEBUG(1, "netwave_interrupt: Interrupt with status 0x%x " | 1075 | pr_debug("netwave_interrupt: Interrupt with status 0x%x " |
1092 | "from removed or suspended card!\n", status); | 1076 | "from removed or suspended card!\n", status); |
1093 | break; | 1077 | break; |
1094 | } | 1078 | } |
@@ -1132,7 +1116,7 @@ static irqreturn_t netwave_interrupt(int irq, void* dev_id) | |||
1132 | int txStatus; | 1116 | int txStatus; |
1133 | 1117 | ||
1134 | txStatus = readb(ramBase + NETWAVE_EREG_TSER); | 1118 | txStatus = readb(ramBase + NETWAVE_EREG_TSER); |
1135 | DEBUG(3, "Transmit done. TSER = %x id %x\n", | 1119 | pr_debug("Transmit done. TSER = %x id %x\n", |
1136 | txStatus, readb(ramBase + NETWAVE_EREG_TSER + 1)); | 1120 | txStatus, readb(ramBase + NETWAVE_EREG_TSER + 1)); |
1137 | 1121 | ||
1138 | if (txStatus & 0x20) { | 1122 | if (txStatus & 0x20) { |
@@ -1156,7 +1140,7 @@ static irqreturn_t netwave_interrupt(int irq, void* dev_id) | |||
1156 | * TxGU and TxNOAP is set. (Those are the only ones | 1140 | * TxGU and TxNOAP is set. (Those are the only ones |
1157 | * to set TxErr). | 1141 | * to set TxErr). |
1158 | */ | 1142 | */ |
1159 | DEBUG(3, "netwave_interrupt: TxDN with error status %x\n", | 1143 | pr_debug("netwave_interrupt: TxDN with error status %x\n", |
1160 | txStatus); | 1144 | txStatus); |
1161 | 1145 | ||
1162 | /* Clear out TxGU, TxNOAP, TxErr and TxTrys */ | 1146 | /* Clear out TxGU, TxNOAP, TxErr and TxTrys */ |
@@ -1164,7 +1148,7 @@ static irqreturn_t netwave_interrupt(int irq, void* dev_id) | |||
1164 | writeb(0xdf & txStatus, ramBase+NETWAVE_EREG_TSER+4); | 1148 | writeb(0xdf & txStatus, ramBase+NETWAVE_EREG_TSER+4); |
1165 | ++dev->stats.tx_errors; | 1149 | ++dev->stats.tx_errors; |
1166 | } | 1150 | } |
1167 | DEBUG(3, "New status is TSER %x ASR %x\n", | 1151 | pr_debug("New status is TSER %x ASR %x\n", |
1168 | readb(ramBase + NETWAVE_EREG_TSER), | 1152 | readb(ramBase + NETWAVE_EREG_TSER), |
1169 | inb(iobase + NETWAVE_REG_ASR)); | 1153 | inb(iobase + NETWAVE_REG_ASR)); |
1170 | 1154 | ||
@@ -1172,7 +1156,7 @@ static irqreturn_t netwave_interrupt(int irq, void* dev_id) | |||
1172 | } | 1156 | } |
1173 | /* TxBA, this would trigger on all error packets received */ | 1157 | /* TxBA, this would trigger on all error packets received */ |
1174 | /* if (status & 0x01) { | 1158 | /* if (status & 0x01) { |
1175 | DEBUG(4, "Transmit buffers available, %x\n", status); | 1159 | pr_debug("Transmit buffers available, %x\n", status); |
1176 | } | 1160 | } |
1177 | */ | 1161 | */ |
1178 | } | 1162 | } |
@@ -1190,7 +1174,7 @@ static irqreturn_t netwave_interrupt(int irq, void* dev_id) | |||
1190 | */ | 1174 | */ |
1191 | static void netwave_watchdog(struct net_device *dev) { | 1175 | static void netwave_watchdog(struct net_device *dev) { |
1192 | 1176 | ||
1193 | DEBUG(1, "%s: netwave_watchdog: watchdog timer expired\n", dev->name); | 1177 | pr_debug("%s: netwave_watchdog: watchdog timer expired\n", dev->name); |
1194 | netwave_reset(dev); | 1178 | netwave_reset(dev); |
1195 | dev->trans_start = jiffies; | 1179 | dev->trans_start = jiffies; |
1196 | netif_wake_queue(dev); | 1180 | netif_wake_queue(dev); |
@@ -1211,7 +1195,7 @@ static int netwave_rx(struct net_device *dev) | |||
1211 | int i; | 1195 | int i; |
1212 | u_char *ptr; | 1196 | u_char *ptr; |
1213 | 1197 | ||
1214 | DEBUG(3, "xinw_rx: Receiving ... \n"); | 1198 | pr_debug("xinw_rx: Receiving ... \n"); |
1215 | 1199 | ||
1216 | /* Receive max 10 packets for now. */ | 1200 | /* Receive max 10 packets for now. */ |
1217 | for (i = 0; i < 10; i++) { | 1201 | for (i = 0; i < 10; i++) { |
@@ -1237,7 +1221,7 @@ static int netwave_rx(struct net_device *dev) | |||
1237 | 1221 | ||
1238 | skb = dev_alloc_skb(rcvLen+5); | 1222 | skb = dev_alloc_skb(rcvLen+5); |
1239 | if (skb == NULL) { | 1223 | if (skb == NULL) { |
1240 | DEBUG(1, "netwave_rx: Could not allocate an sk_buff of " | 1224 | pr_debug("netwave_rx: Could not allocate an sk_buff of " |
1241 | "length %d\n", rcvLen); | 1225 | "length %d\n", rcvLen); |
1242 | ++dev->stats.rx_dropped; | 1226 | ++dev->stats.rx_dropped; |
1243 | /* Tell the adapter to skip the packet */ | 1227 | /* Tell the adapter to skip the packet */ |
@@ -1279,7 +1263,7 @@ static int netwave_rx(struct net_device *dev) | |||
1279 | wait_WOC(iobase); | 1263 | wait_WOC(iobase); |
1280 | writeb(NETWAVE_CMD_SRP, ramBase + NETWAVE_EREG_CB + 0); | 1264 | writeb(NETWAVE_CMD_SRP, ramBase + NETWAVE_EREG_CB + 0); |
1281 | writeb(NETWAVE_CMD_EOC, ramBase + NETWAVE_EREG_CB + 1); | 1265 | writeb(NETWAVE_CMD_EOC, ramBase + NETWAVE_EREG_CB + 1); |
1282 | DEBUG(3, "Packet reception ok\n"); | 1266 | pr_debug("Packet reception ok\n"); |
1283 | } | 1267 | } |
1284 | return 0; | 1268 | return 0; |
1285 | } | 1269 | } |
@@ -1288,7 +1272,7 @@ static int netwave_open(struct net_device *dev) { | |||
1288 | netwave_private *priv = netdev_priv(dev); | 1272 | netwave_private *priv = netdev_priv(dev); |
1289 | struct pcmcia_device *link = priv->p_dev; | 1273 | struct pcmcia_device *link = priv->p_dev; |
1290 | 1274 | ||
1291 | DEBUG(1, "netwave_open: starting.\n"); | 1275 | dev_dbg(&link->dev, "netwave_open: starting.\n"); |
1292 | 1276 | ||
1293 | if (!pcmcia_dev_present(link)) | 1277 | if (!pcmcia_dev_present(link)) |
1294 | return -ENODEV; | 1278 | return -ENODEV; |
@@ -1305,7 +1289,7 @@ static int netwave_close(struct net_device *dev) { | |||
1305 | netwave_private *priv = netdev_priv(dev); | 1289 | netwave_private *priv = netdev_priv(dev); |
1306 | struct pcmcia_device *link = priv->p_dev; | 1290 | struct pcmcia_device *link = priv->p_dev; |
1307 | 1291 | ||
1308 | DEBUG(1, "netwave_close: finishing.\n"); | 1292 | dev_dbg(&link->dev, "netwave_close: finishing.\n"); |
1309 | 1293 | ||
1310 | link->open--; | 1294 | link->open--; |
1311 | netif_stop_queue(dev); | 1295 | netif_stop_queue(dev); |
@@ -1358,11 +1342,11 @@ static void set_multicast_list(struct net_device *dev) | |||
1358 | u_char rcvMode = 0; | 1342 | u_char rcvMode = 0; |
1359 | 1343 | ||
1360 | #ifdef PCMCIA_DEBUG | 1344 | #ifdef PCMCIA_DEBUG |
1361 | if (pc_debug > 2) { | 1345 | { |
1362 | static int old; | 1346 | xstatic int old; |
1363 | if (old != dev->mc_count) { | 1347 | if (old != dev->mc_count) { |
1364 | old = dev->mc_count; | 1348 | old = dev->mc_count; |
1365 | DEBUG(0, "%s: setting Rx mode to %d addresses.\n", | 1349 | pr_debug("%s: setting Rx mode to %d addresses.\n", |
1366 | dev->name, dev->mc_count); | 1350 | dev->name, dev->mc_count); |
1367 | } | 1351 | } |
1368 | } | 1352 | } |
diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c index 38c1c9d2abb8..da626ec663d0 100644 --- a/drivers/net/wireless/orinoco/orinoco_cs.c +++ b/drivers/net/wireless/orinoco/orinoco_cs.c | |||
@@ -160,12 +160,6 @@ static void orinoco_cs_detach(struct pcmcia_device *link) | |||
160 | * device available to the system. | 160 | * device available to the system. |
161 | */ | 161 | */ |
162 | 162 | ||
163 | #define CS_CHECK(fn, ret) do { \ | ||
164 | last_fn = (fn); \ | ||
165 | if ((last_ret = (ret)) != 0) \ | ||
166 | goto cs_failed; \ | ||
167 | } while (0) | ||
168 | |||
169 | static int orinoco_cs_config_check(struct pcmcia_device *p_dev, | 163 | static int orinoco_cs_config_check(struct pcmcia_device *p_dev, |
170 | cistpl_cftable_entry_t *cfg, | 164 | cistpl_cftable_entry_t *cfg, |
171 | cistpl_cftable_entry_t *dflt, | 165 | cistpl_cftable_entry_t *dflt, |
@@ -240,7 +234,7 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
240 | struct orinoco_private *priv = link->priv; | 234 | struct orinoco_private *priv = link->priv; |
241 | struct orinoco_pccard *card = priv->card; | 235 | struct orinoco_pccard *card = priv->card; |
242 | hermes_t *hw = &priv->hw; | 236 | hermes_t *hw = &priv->hw; |
243 | int last_fn, last_ret; | 237 | int ret; |
244 | void __iomem *mem; | 238 | void __iomem *mem; |
245 | 239 | ||
246 | /* | 240 | /* |
@@ -257,13 +251,12 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
257 | * and most client drivers will only use the CIS to fill in | 251 | * and most client drivers will only use the CIS to fill in |
258 | * implementation-defined details. | 252 | * implementation-defined details. |
259 | */ | 253 | */ |
260 | last_ret = pcmcia_loop_config(link, orinoco_cs_config_check, NULL); | 254 | ret = pcmcia_loop_config(link, orinoco_cs_config_check, NULL); |
261 | if (last_ret) { | 255 | if (ret) { |
262 | if (!ignore_cis_vcc) | 256 | if (!ignore_cis_vcc) |
263 | printk(KERN_ERR PFX "GetNextTuple(): No matching " | 257 | printk(KERN_ERR PFX "GetNextTuple(): No matching " |
264 | "CIS configuration. Maybe you need the " | 258 | "CIS configuration. Maybe you need the " |
265 | "ignore_cis_vcc=1 parameter.\n"); | 259 | "ignore_cis_vcc=1 parameter.\n"); |
266 | cs_error(link, RequestIO, last_ret); | ||
267 | goto failed; | 260 | goto failed; |
268 | } | 261 | } |
269 | 262 | ||
@@ -272,14 +265,16 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
272 | * a handler to the interrupt, unless the 'Handler' member of | 265 | * a handler to the interrupt, unless the 'Handler' member of |
273 | * the irq structure is initialized. | 266 | * the irq structure is initialized. |
274 | */ | 267 | */ |
275 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 268 | ret = pcmcia_request_irq(link, &link->irq); |
269 | if (ret) | ||
270 | goto failed; | ||
276 | 271 | ||
277 | /* We initialize the hermes structure before completing PCMCIA | 272 | /* We initialize the hermes structure before completing PCMCIA |
278 | * configuration just in case the interrupt handler gets | 273 | * configuration just in case the interrupt handler gets |
279 | * called. */ | 274 | * called. */ |
280 | mem = ioport_map(link->io.BasePort1, link->io.NumPorts1); | 275 | mem = ioport_map(link->io.BasePort1, link->io.NumPorts1); |
281 | if (!mem) | 276 | if (!mem) |
282 | goto cs_failed; | 277 | goto failed; |
283 | 278 | ||
284 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); | 279 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); |
285 | 280 | ||
@@ -288,8 +283,9 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
288 | * the I/O windows and the interrupt mapping, and putting the | 283 | * the I/O windows and the interrupt mapping, and putting the |
289 | * card and host interface into "Memory and IO" mode. | 284 | * card and host interface into "Memory and IO" mode. |
290 | */ | 285 | */ |
291 | CS_CHECK(RequestConfiguration, | 286 | ret = pcmcia_request_configuration(link, &link->conf); |
292 | pcmcia_request_configuration(link, &link->conf)); | 287 | if (ret) |
288 | goto failed; | ||
293 | 289 | ||
294 | /* Ok, we have the configuration, prepare to register the netdev */ | 290 | /* Ok, we have the configuration, prepare to register the netdev */ |
295 | card->node.major = card->node.minor = 0; | 291 | card->node.major = card->node.minor = 0; |
@@ -315,9 +311,6 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
315 | * net_device has been registered */ | 311 | * net_device has been registered */ |
316 | return 0; | 312 | return 0; |
317 | 313 | ||
318 | cs_failed: | ||
319 | cs_error(link, last_fn, last_ret); | ||
320 | |||
321 | failed: | 314 | failed: |
322 | orinoco_cs_release(link); | 315 | orinoco_cs_release(link); |
323 | return -ENODEV; | 316 | return -ENODEV; |
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c index c361310b885d..700010e9e346 100644 --- a/drivers/net/wireless/orinoco/spectrum_cs.c +++ b/drivers/net/wireless/orinoco/spectrum_cs.c | |||
@@ -73,9 +73,6 @@ static void spectrum_cs_release(struct pcmcia_device *link); | |||
73 | #define HCR_MEM16 0x10 /* memory width bit, should be preserved */ | 73 | #define HCR_MEM16 0x10 /* memory width bit, should be preserved */ |
74 | 74 | ||
75 | 75 | ||
76 | #define CS_CHECK(fn, ret) \ | ||
77 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
78 | |||
79 | /* | 76 | /* |
80 | * Reset the card using configuration registers COR and CCSR. | 77 | * Reset the card using configuration registers COR and CCSR. |
81 | * If IDLE is 1, stop the firmware, so that it can be safely rewritten. | 78 | * If IDLE is 1, stop the firmware, so that it can be safely rewritten. |
@@ -83,7 +80,7 @@ static void spectrum_cs_release(struct pcmcia_device *link); | |||
83 | static int | 80 | static int |
84 | spectrum_reset(struct pcmcia_device *link, int idle) | 81 | spectrum_reset(struct pcmcia_device *link, int idle) |
85 | { | 82 | { |
86 | int last_ret, last_fn; | 83 | int ret; |
87 | conf_reg_t reg; | 84 | conf_reg_t reg; |
88 | u_int save_cor; | 85 | u_int save_cor; |
89 | 86 | ||
@@ -95,23 +92,26 @@ spectrum_reset(struct pcmcia_device *link, int idle) | |||
95 | reg.Function = 0; | 92 | reg.Function = 0; |
96 | reg.Action = CS_READ; | 93 | reg.Action = CS_READ; |
97 | reg.Offset = CISREG_COR; | 94 | reg.Offset = CISREG_COR; |
98 | CS_CHECK(AccessConfigurationRegister, | 95 | ret = pcmcia_access_configuration_register(link, ®); |
99 | pcmcia_access_configuration_register(link, ®)); | 96 | if (ret) |
97 | goto failed; | ||
100 | save_cor = reg.Value; | 98 | save_cor = reg.Value; |
101 | 99 | ||
102 | /* Soft-Reset card */ | 100 | /* Soft-Reset card */ |
103 | reg.Action = CS_WRITE; | 101 | reg.Action = CS_WRITE; |
104 | reg.Offset = CISREG_COR; | 102 | reg.Offset = CISREG_COR; |
105 | reg.Value = (save_cor | COR_SOFT_RESET); | 103 | reg.Value = (save_cor | COR_SOFT_RESET); |
106 | CS_CHECK(AccessConfigurationRegister, | 104 | ret = pcmcia_access_configuration_register(link, ®); |
107 | pcmcia_access_configuration_register(link, ®)); | 105 | if (ret) |
106 | goto failed; | ||
108 | udelay(1000); | 107 | udelay(1000); |
109 | 108 | ||
110 | /* Read CCSR */ | 109 | /* Read CCSR */ |
111 | reg.Action = CS_READ; | 110 | reg.Action = CS_READ; |
112 | reg.Offset = CISREG_CCSR; | 111 | reg.Offset = CISREG_CCSR; |
113 | CS_CHECK(AccessConfigurationRegister, | 112 | ret = pcmcia_access_configuration_register(link, ®); |
114 | pcmcia_access_configuration_register(link, ®)); | 113 | if (ret) |
114 | goto failed; | ||
115 | 115 | ||
116 | /* | 116 | /* |
117 | * Start or stop the firmware. Memory width bit should be | 117 | * Start or stop the firmware. Memory width bit should be |
@@ -120,21 +120,22 @@ spectrum_reset(struct pcmcia_device *link, int idle) | |||
120 | reg.Action = CS_WRITE; | 120 | reg.Action = CS_WRITE; |
121 | reg.Offset = CISREG_CCSR; | 121 | reg.Offset = CISREG_CCSR; |
122 | reg.Value = (idle ? HCR_IDLE : HCR_RUN) | (reg.Value & HCR_MEM16); | 122 | reg.Value = (idle ? HCR_IDLE : HCR_RUN) | (reg.Value & HCR_MEM16); |
123 | CS_CHECK(AccessConfigurationRegister, | 123 | ret = pcmcia_access_configuration_register(link, ®); |
124 | pcmcia_access_configuration_register(link, ®)); | 124 | if (ret) |
125 | goto failed; | ||
125 | udelay(1000); | 126 | udelay(1000); |
126 | 127 | ||
127 | /* Restore original COR configuration index */ | 128 | /* Restore original COR configuration index */ |
128 | reg.Action = CS_WRITE; | 129 | reg.Action = CS_WRITE; |
129 | reg.Offset = CISREG_COR; | 130 | reg.Offset = CISREG_COR; |
130 | reg.Value = (save_cor & ~COR_SOFT_RESET); | 131 | reg.Value = (save_cor & ~COR_SOFT_RESET); |
131 | CS_CHECK(AccessConfigurationRegister, | 132 | ret = pcmcia_access_configuration_register(link, ®); |
132 | pcmcia_access_configuration_register(link, ®)); | 133 | if (ret) |
134 | goto failed; | ||
133 | udelay(1000); | 135 | udelay(1000); |
134 | return 0; | 136 | return 0; |
135 | 137 | ||
136 | cs_failed: | 138 | failed: |
137 | cs_error(link, last_fn, last_ret); | ||
138 | return -ENODEV; | 139 | return -ENODEV; |
139 | } | 140 | } |
140 | 141 | ||
@@ -307,7 +308,7 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
307 | struct orinoco_private *priv = link->priv; | 308 | struct orinoco_private *priv = link->priv; |
308 | struct orinoco_pccard *card = priv->card; | 309 | struct orinoco_pccard *card = priv->card; |
309 | hermes_t *hw = &priv->hw; | 310 | hermes_t *hw = &priv->hw; |
310 | int last_fn, last_ret; | 311 | int ret; |
311 | void __iomem *mem; | 312 | void __iomem *mem; |
312 | 313 | ||
313 | /* | 314 | /* |
@@ -324,13 +325,12 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
324 | * and most client drivers will only use the CIS to fill in | 325 | * and most client drivers will only use the CIS to fill in |
325 | * implementation-defined details. | 326 | * implementation-defined details. |
326 | */ | 327 | */ |
327 | last_ret = pcmcia_loop_config(link, spectrum_cs_config_check, NULL); | 328 | ret = pcmcia_loop_config(link, spectrum_cs_config_check, NULL); |
328 | if (last_ret) { | 329 | if (ret) { |
329 | if (!ignore_cis_vcc) | 330 | if (!ignore_cis_vcc) |
330 | printk(KERN_ERR PFX "GetNextTuple(): No matching " | 331 | printk(KERN_ERR PFX "GetNextTuple(): No matching " |
331 | "CIS configuration. Maybe you need the " | 332 | "CIS configuration. Maybe you need the " |
332 | "ignore_cis_vcc=1 parameter.\n"); | 333 | "ignore_cis_vcc=1 parameter.\n"); |
333 | cs_error(link, RequestIO, last_ret); | ||
334 | goto failed; | 334 | goto failed; |
335 | } | 335 | } |
336 | 336 | ||
@@ -339,14 +339,16 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
339 | * a handler to the interrupt, unless the 'Handler' member of | 339 | * a handler to the interrupt, unless the 'Handler' member of |
340 | * the irq structure is initialized. | 340 | * the irq structure is initialized. |
341 | */ | 341 | */ |
342 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 342 | ret = pcmcia_request_irq(link, &link->irq); |
343 | if (ret) | ||
344 | goto failed; | ||
343 | 345 | ||
344 | /* We initialize the hermes structure before completing PCMCIA | 346 | /* We initialize the hermes structure before completing PCMCIA |
345 | * configuration just in case the interrupt handler gets | 347 | * configuration just in case the interrupt handler gets |
346 | * called. */ | 348 | * called. */ |
347 | mem = ioport_map(link->io.BasePort1, link->io.NumPorts1); | 349 | mem = ioport_map(link->io.BasePort1, link->io.NumPorts1); |
348 | if (!mem) | 350 | if (!mem) |
349 | goto cs_failed; | 351 | goto failed; |
350 | 352 | ||
351 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); | 353 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); |
352 | 354 | ||
@@ -355,8 +357,9 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
355 | * the I/O windows and the interrupt mapping, and putting the | 357 | * the I/O windows and the interrupt mapping, and putting the |
356 | * card and host interface into "Memory and IO" mode. | 358 | * card and host interface into "Memory and IO" mode. |
357 | */ | 359 | */ |
358 | CS_CHECK(RequestConfiguration, | 360 | ret = pcmcia_request_configuration(link, &link->conf); |
359 | pcmcia_request_configuration(link, &link->conf)); | 361 | if (ret) |
362 | goto failed; | ||
360 | 363 | ||
361 | /* Ok, we have the configuration, prepare to register the netdev */ | 364 | /* Ok, we have the configuration, prepare to register the netdev */ |
362 | card->node.major = card->node.minor = 0; | 365 | card->node.major = card->node.minor = 0; |
@@ -386,9 +389,6 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
386 | * net_device has been registered */ | 389 | * net_device has been registered */ |
387 | return 0; | 390 | return 0; |
388 | 391 | ||
389 | cs_failed: | ||
390 | cs_error(link, last_fn, last_ret); | ||
391 | |||
392 | failed: | 392 | failed: |
393 | spectrum_cs_release(link); | 393 | spectrum_cs_release(link); |
394 | return -ENODEV; | 394 | return -ENODEV; |
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c index 431a20ec6db6..2fad4ac89827 100644 --- a/drivers/net/wireless/wavelan_cs.c +++ b/drivers/net/wireless/wavelan_cs.c | |||
@@ -3656,10 +3656,7 @@ wv_pcmcia_reset(struct net_device * dev) | |||
3656 | 3656 | ||
3657 | i = pcmcia_access_configuration_register(link, ®); | 3657 | i = pcmcia_access_configuration_register(link, ®); |
3658 | if (i != 0) | 3658 | if (i != 0) |
3659 | { | ||
3660 | cs_error(link, AccessConfigurationRegister, i); | ||
3661 | return FALSE; | 3659 | return FALSE; |
3662 | } | ||
3663 | 3660 | ||
3664 | #ifdef DEBUG_CONFIG_INFO | 3661 | #ifdef DEBUG_CONFIG_INFO |
3665 | printk(KERN_DEBUG "%s: wavelan_pcmcia_reset(): Config reg is 0x%x\n", | 3662 | printk(KERN_DEBUG "%s: wavelan_pcmcia_reset(): Config reg is 0x%x\n", |
@@ -3670,19 +3667,13 @@ wv_pcmcia_reset(struct net_device * dev) | |||
3670 | reg.Value = reg.Value | COR_SW_RESET; | 3667 | reg.Value = reg.Value | COR_SW_RESET; |
3671 | i = pcmcia_access_configuration_register(link, ®); | 3668 | i = pcmcia_access_configuration_register(link, ®); |
3672 | if (i != 0) | 3669 | if (i != 0) |
3673 | { | ||
3674 | cs_error(link, AccessConfigurationRegister, i); | ||
3675 | return FALSE; | 3670 | return FALSE; |
3676 | } | ||
3677 | 3671 | ||
3678 | reg.Action = CS_WRITE; | 3672 | reg.Action = CS_WRITE; |
3679 | reg.Value = COR_LEVEL_IRQ | COR_CONFIG; | 3673 | reg.Value = COR_LEVEL_IRQ | COR_CONFIG; |
3680 | i = pcmcia_access_configuration_register(link, ®); | 3674 | i = pcmcia_access_configuration_register(link, ®); |
3681 | if (i != 0) | 3675 | if (i != 0) |
3682 | { | ||
3683 | cs_error(link, AccessConfigurationRegister, i); | ||
3684 | return FALSE; | 3676 | return FALSE; |
3685 | } | ||
3686 | 3677 | ||
3687 | #ifdef DEBUG_CONFIG_TRACE | 3678 | #ifdef DEBUG_CONFIG_TRACE |
3688 | printk(KERN_DEBUG "%s: <-wv_pcmcia_reset()\n", dev->name); | 3679 | printk(KERN_DEBUG "%s: <-wv_pcmcia_reset()\n", dev->name); |
@@ -3857,10 +3848,7 @@ wv_pcmcia_config(struct pcmcia_device * link) | |||
3857 | { | 3848 | { |
3858 | i = pcmcia_request_io(link, &link->io); | 3849 | i = pcmcia_request_io(link, &link->io); |
3859 | if (i != 0) | 3850 | if (i != 0) |
3860 | { | ||
3861 | cs_error(link, RequestIO, i); | ||
3862 | break; | 3851 | break; |
3863 | } | ||
3864 | 3852 | ||
3865 | /* | 3853 | /* |
3866 | * Now allocate an interrupt line. Note that this does not | 3854 | * Now allocate an interrupt line. Note that this does not |
@@ -3868,10 +3856,7 @@ wv_pcmcia_config(struct pcmcia_device * link) | |||
3868 | */ | 3856 | */ |
3869 | i = pcmcia_request_irq(link, &link->irq); | 3857 | i = pcmcia_request_irq(link, &link->irq); |
3870 | if (i != 0) | 3858 | if (i != 0) |
3871 | { | ||
3872 | cs_error(link, RequestIRQ, i); | ||
3873 | break; | 3859 | break; |
3874 | } | ||
3875 | 3860 | ||
3876 | /* | 3861 | /* |
3877 | * This actually configures the PCMCIA socket -- setting up | 3862 | * This actually configures the PCMCIA socket -- setting up |
@@ -3880,10 +3865,7 @@ wv_pcmcia_config(struct pcmcia_device * link) | |||
3880 | link->conf.ConfigIndex = 1; | 3865 | link->conf.ConfigIndex = 1; |
3881 | i = pcmcia_request_configuration(link, &link->conf); | 3866 | i = pcmcia_request_configuration(link, &link->conf); |
3882 | if (i != 0) | 3867 | if (i != 0) |
3883 | { | ||
3884 | cs_error(link, RequestConfiguration, i); | ||
3885 | break; | 3868 | break; |
3886 | } | ||
3887 | 3869 | ||
3888 | /* | 3870 | /* |
3889 | * Allocate a small memory window. Note that the struct pcmcia_device | 3871 | * Allocate a small memory window. Note that the struct pcmcia_device |
@@ -3896,10 +3878,7 @@ wv_pcmcia_config(struct pcmcia_device * link) | |||
3896 | req.AccessSpeed = mem_speed; | 3878 | req.AccessSpeed = mem_speed; |
3897 | i = pcmcia_request_window(&link, &req, &link->win); | 3879 | i = pcmcia_request_window(&link, &req, &link->win); |
3898 | if (i != 0) | 3880 | if (i != 0) |
3899 | { | ||
3900 | cs_error(link, RequestWindow, i); | ||
3901 | break; | 3881 | break; |
3902 | } | ||
3903 | 3882 | ||
3904 | lp->mem = ioremap(req.Base, req.Size); | 3883 | lp->mem = ioremap(req.Base, req.Size); |
3905 | dev->mem_start = (u_long)lp->mem; | 3884 | dev->mem_start = (u_long)lp->mem; |
@@ -3908,10 +3887,7 @@ wv_pcmcia_config(struct pcmcia_device * link) | |||
3908 | mem.CardOffset = 0; mem.Page = 0; | 3887 | mem.CardOffset = 0; mem.Page = 0; |
3909 | i = pcmcia_map_mem_page(link->win, &mem); | 3888 | i = pcmcia_map_mem_page(link->win, &mem); |
3910 | if (i != 0) | 3889 | if (i != 0) |
3911 | { | ||
3912 | cs_error(link, MapMemPage, i); | ||
3913 | break; | 3890 | break; |
3914 | } | ||
3915 | 3891 | ||
3916 | /* Feed device with this info... */ | 3892 | /* Feed device with this info... */ |
3917 | dev->irq = link->irq.AssignedIRQ; | 3893 | dev->irq = link->irq.AssignedIRQ; |
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c index 4f1e0cfe609b..7e8e269b4cb6 100644 --- a/drivers/net/wireless/wl3501_cs.c +++ b/drivers/net/wireless/wl3501_cs.c | |||
@@ -67,23 +67,7 @@ | |||
67 | /* For rough constant delay */ | 67 | /* For rough constant delay */ |
68 | #define WL3501_NOPLOOP(n) { int x = 0; while (x++ < n) slow_down_io(); } | 68 | #define WL3501_NOPLOOP(n) { int x = 0; while (x++ < n) slow_down_io(); } |
69 | 69 | ||
70 | /* | 70 | |
71 | * All the PCMCIA modules use PCMCIA_DEBUG to control debugging. If you do not | ||
72 | * define PCMCIA_DEBUG at all, all the debug code will be left out. If you | ||
73 | * compile with PCMCIA_DEBUG=0, the debug code will be present but disabled -- | ||
74 | * but it can then be enabled for specific modules at load time with a | ||
75 | * 'pc_debug=#' option to insmod. | ||
76 | */ | ||
77 | #define PCMCIA_DEBUG 0 | ||
78 | #ifdef PCMCIA_DEBUG | ||
79 | static int pc_debug = PCMCIA_DEBUG; | ||
80 | module_param(pc_debug, int, 0); | ||
81 | #define dprintk(n, format, args...) \ | ||
82 | { if (pc_debug > (n)) \ | ||
83 | printk(KERN_INFO "%s: " format "\n", __func__ , ##args); } | ||
84 | #else | ||
85 | #define dprintk(n, format, args...) | ||
86 | #endif | ||
87 | 71 | ||
88 | #define wl3501_outb(a, b) { outb(a, b); slow_down_io(); } | 72 | #define wl3501_outb(a, b) { outb(a, b); slow_down_io(); } |
89 | #define wl3501_outb_p(a, b) { outb_p(a, b); slow_down_io(); } | 73 | #define wl3501_outb_p(a, b) { outb_p(a, b); slow_down_io(); } |
@@ -684,10 +668,10 @@ static void wl3501_mgmt_scan_confirm(struct wl3501_card *this, u16 addr) | |||
684 | int matchflag = 0; | 668 | int matchflag = 0; |
685 | struct wl3501_scan_confirm sig; | 669 | struct wl3501_scan_confirm sig; |
686 | 670 | ||
687 | dprintk(3, "entry"); | 671 | pr_debug("entry"); |
688 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); | 672 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); |
689 | if (sig.status == WL3501_STATUS_SUCCESS) { | 673 | if (sig.status == WL3501_STATUS_SUCCESS) { |
690 | dprintk(3, "success"); | 674 | pr_debug("success"); |
691 | if ((this->net_type == IW_MODE_INFRA && | 675 | if ((this->net_type == IW_MODE_INFRA && |
692 | (sig.cap_info & WL3501_MGMT_CAPABILITY_ESS)) || | 676 | (sig.cap_info & WL3501_MGMT_CAPABILITY_ESS)) || |
693 | (this->net_type == IW_MODE_ADHOC && | 677 | (this->net_type == IW_MODE_ADHOC && |
@@ -722,7 +706,7 @@ static void wl3501_mgmt_scan_confirm(struct wl3501_card *this, u16 addr) | |||
722 | } | 706 | } |
723 | } | 707 | } |
724 | } else if (sig.status == WL3501_STATUS_TIMEOUT) { | 708 | } else if (sig.status == WL3501_STATUS_TIMEOUT) { |
725 | dprintk(3, "timeout"); | 709 | pr_debug("timeout"); |
726 | this->join_sta_bss = 0; | 710 | this->join_sta_bss = 0; |
727 | for (i = this->join_sta_bss; i < this->bss_cnt; i++) | 711 | for (i = this->join_sta_bss; i < this->bss_cnt; i++) |
728 | if (!wl3501_mgmt_join(this, i)) | 712 | if (!wl3501_mgmt_join(this, i)) |
@@ -879,7 +863,7 @@ static int wl3501_mgmt_auth(struct wl3501_card *this) | |||
879 | .timeout = 1000, | 863 | .timeout = 1000, |
880 | }; | 864 | }; |
881 | 865 | ||
882 | dprintk(3, "entry"); | 866 | pr_debug("entry"); |
883 | memcpy(sig.mac_addr, this->bssid, ETH_ALEN); | 867 | memcpy(sig.mac_addr, this->bssid, ETH_ALEN); |
884 | return wl3501_esbq_exec(this, &sig, sizeof(sig)); | 868 | return wl3501_esbq_exec(this, &sig, sizeof(sig)); |
885 | } | 869 | } |
@@ -893,7 +877,7 @@ static int wl3501_mgmt_association(struct wl3501_card *this) | |||
893 | .cap_info = this->cap_info, | 877 | .cap_info = this->cap_info, |
894 | }; | 878 | }; |
895 | 879 | ||
896 | dprintk(3, "entry"); | 880 | pr_debug("entry"); |
897 | memcpy(sig.mac_addr, this->bssid, ETH_ALEN); | 881 | memcpy(sig.mac_addr, this->bssid, ETH_ALEN); |
898 | return wl3501_esbq_exec(this, &sig, sizeof(sig)); | 882 | return wl3501_esbq_exec(this, &sig, sizeof(sig)); |
899 | } | 883 | } |
@@ -903,7 +887,7 @@ static void wl3501_mgmt_join_confirm(struct net_device *dev, u16 addr) | |||
903 | struct wl3501_card *this = netdev_priv(dev); | 887 | struct wl3501_card *this = netdev_priv(dev); |
904 | struct wl3501_join_confirm sig; | 888 | struct wl3501_join_confirm sig; |
905 | 889 | ||
906 | dprintk(3, "entry"); | 890 | pr_debug("entry"); |
907 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); | 891 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); |
908 | if (sig.status == WL3501_STATUS_SUCCESS) { | 892 | if (sig.status == WL3501_STATUS_SUCCESS) { |
909 | if (this->net_type == IW_MODE_INFRA) { | 893 | if (this->net_type == IW_MODE_INFRA) { |
@@ -962,7 +946,7 @@ static inline void wl3501_md_confirm_interrupt(struct net_device *dev, | |||
962 | { | 946 | { |
963 | struct wl3501_md_confirm sig; | 947 | struct wl3501_md_confirm sig; |
964 | 948 | ||
965 | dprintk(3, "entry"); | 949 | pr_debug("entry"); |
966 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); | 950 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); |
967 | wl3501_free_tx_buffer(this, sig.data); | 951 | wl3501_free_tx_buffer(this, sig.data); |
968 | if (netif_queue_stopped(dev)) | 952 | if (netif_queue_stopped(dev)) |
@@ -1017,7 +1001,7 @@ static inline void wl3501_md_ind_interrupt(struct net_device *dev, | |||
1017 | static inline void wl3501_get_confirm_interrupt(struct wl3501_card *this, | 1001 | static inline void wl3501_get_confirm_interrupt(struct wl3501_card *this, |
1018 | u16 addr, void *sig, int size) | 1002 | u16 addr, void *sig, int size) |
1019 | { | 1003 | { |
1020 | dprintk(3, "entry"); | 1004 | pr_debug("entry"); |
1021 | wl3501_get_from_wla(this, addr, &this->sig_get_confirm, | 1005 | wl3501_get_from_wla(this, addr, &this->sig_get_confirm, |
1022 | sizeof(this->sig_get_confirm)); | 1006 | sizeof(this->sig_get_confirm)); |
1023 | wake_up(&this->wait); | 1007 | wake_up(&this->wait); |
@@ -1029,7 +1013,7 @@ static inline void wl3501_start_confirm_interrupt(struct net_device *dev, | |||
1029 | { | 1013 | { |
1030 | struct wl3501_start_confirm sig; | 1014 | struct wl3501_start_confirm sig; |
1031 | 1015 | ||
1032 | dprintk(3, "entry"); | 1016 | pr_debug("entry"); |
1033 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); | 1017 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); |
1034 | if (sig.status == WL3501_STATUS_SUCCESS) | 1018 | if (sig.status == WL3501_STATUS_SUCCESS) |
1035 | netif_wake_queue(dev); | 1019 | netif_wake_queue(dev); |
@@ -1041,7 +1025,7 @@ static inline void wl3501_assoc_confirm_interrupt(struct net_device *dev, | |||
1041 | struct wl3501_card *this = netdev_priv(dev); | 1025 | struct wl3501_card *this = netdev_priv(dev); |
1042 | struct wl3501_assoc_confirm sig; | 1026 | struct wl3501_assoc_confirm sig; |
1043 | 1027 | ||
1044 | dprintk(3, "entry"); | 1028 | pr_debug("entry"); |
1045 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); | 1029 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); |
1046 | 1030 | ||
1047 | if (sig.status == WL3501_STATUS_SUCCESS) | 1031 | if (sig.status == WL3501_STATUS_SUCCESS) |
@@ -1053,7 +1037,7 @@ static inline void wl3501_auth_confirm_interrupt(struct wl3501_card *this, | |||
1053 | { | 1037 | { |
1054 | struct wl3501_auth_confirm sig; | 1038 | struct wl3501_auth_confirm sig; |
1055 | 1039 | ||
1056 | dprintk(3, "entry"); | 1040 | pr_debug("entry"); |
1057 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); | 1041 | wl3501_get_from_wla(this, addr, &sig, sizeof(sig)); |
1058 | 1042 | ||
1059 | if (sig.status == WL3501_STATUS_SUCCESS) | 1043 | if (sig.status == WL3501_STATUS_SUCCESS) |
@@ -1069,7 +1053,7 @@ static inline void wl3501_rx_interrupt(struct net_device *dev) | |||
1069 | u8 sig_id; | 1053 | u8 sig_id; |
1070 | struct wl3501_card *this = netdev_priv(dev); | 1054 | struct wl3501_card *this = netdev_priv(dev); |
1071 | 1055 | ||
1072 | dprintk(3, "entry"); | 1056 | pr_debug("entry"); |
1073 | loop: | 1057 | loop: |
1074 | morepkts = 0; | 1058 | morepkts = 0; |
1075 | if (!wl3501_esbq_confirm(this)) | 1059 | if (!wl3501_esbq_confirm(this)) |
@@ -1302,7 +1286,7 @@ static int wl3501_reset(struct net_device *dev) | |||
1302 | wl3501_ack_interrupt(this); | 1286 | wl3501_ack_interrupt(this); |
1303 | wl3501_unblock_interrupt(this); | 1287 | wl3501_unblock_interrupt(this); |
1304 | wl3501_mgmt_scan(this, 100); | 1288 | wl3501_mgmt_scan(this, 100); |
1305 | dprintk(1, "%s: device reset", dev->name); | 1289 | pr_debug("%s: device reset", dev->name); |
1306 | rc = 0; | 1290 | rc = 0; |
1307 | out: | 1291 | out: |
1308 | return rc; | 1292 | return rc; |
@@ -1376,7 +1360,7 @@ static int wl3501_open(struct net_device *dev) | |||
1376 | link->open++; | 1360 | link->open++; |
1377 | 1361 | ||
1378 | /* Initial WL3501 firmware */ | 1362 | /* Initial WL3501 firmware */ |
1379 | dprintk(1, "%s: Initialize WL3501 firmware...", dev->name); | 1363 | pr_debug("%s: Initialize WL3501 firmware...", dev->name); |
1380 | if (wl3501_init_firmware(this)) | 1364 | if (wl3501_init_firmware(this)) |
1381 | goto fail; | 1365 | goto fail; |
1382 | /* Initial device variables */ | 1366 | /* Initial device variables */ |
@@ -1388,7 +1372,7 @@ static int wl3501_open(struct net_device *dev) | |||
1388 | wl3501_unblock_interrupt(this); | 1372 | wl3501_unblock_interrupt(this); |
1389 | wl3501_mgmt_scan(this, 100); | 1373 | wl3501_mgmt_scan(this, 100); |
1390 | rc = 0; | 1374 | rc = 0; |
1391 | dprintk(1, "%s: WL3501 opened", dev->name); | 1375 | pr_debug("%s: WL3501 opened", dev->name); |
1392 | printk(KERN_INFO "%s: Card Name: %s\n" | 1376 | printk(KERN_INFO "%s: Card Name: %s\n" |
1393 | "%s: Firmware Date: %s\n", | 1377 | "%s: Firmware Date: %s\n", |
1394 | dev->name, this->card_name, | 1378 | dev->name, this->card_name, |
@@ -1945,9 +1929,6 @@ out_link: | |||
1945 | return -ENOMEM; | 1929 | return -ENOMEM; |
1946 | } | 1930 | } |
1947 | 1931 | ||
1948 | #define CS_CHECK(fn, ret) \ | ||
1949 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
1950 | |||
1951 | /** | 1932 | /** |
1952 | * wl3501_config - configure the PCMCIA socket and make eth device available | 1933 | * wl3501_config - configure the PCMCIA socket and make eth device available |
1953 | * @link - FILL_IN | 1934 | * @link - FILL_IN |
@@ -1959,7 +1940,7 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | |||
1959 | static int wl3501_config(struct pcmcia_device *link) | 1940 | static int wl3501_config(struct pcmcia_device *link) |
1960 | { | 1941 | { |
1961 | struct net_device *dev = link->priv; | 1942 | struct net_device *dev = link->priv; |
1962 | int i = 0, j, last_fn, last_ret; | 1943 | int i = 0, j, ret; |
1963 | struct wl3501_card *this; | 1944 | struct wl3501_card *this; |
1964 | 1945 | ||
1965 | /* Try allocating IO ports. This tries a few fixed addresses. If you | 1946 | /* Try allocating IO ports. This tries a few fixed addresses. If you |
@@ -1975,20 +1956,22 @@ static int wl3501_config(struct pcmcia_device *link) | |||
1975 | if (i == 0) | 1956 | if (i == 0) |
1976 | break; | 1957 | break; |
1977 | } | 1958 | } |
1978 | if (i != 0) { | 1959 | if (i != 0) |
1979 | cs_error(link, RequestIO, i); | ||
1980 | goto failed; | 1960 | goto failed; |
1981 | } | ||
1982 | 1961 | ||
1983 | /* Now allocate an interrupt line. Note that this does not actually | 1962 | /* Now allocate an interrupt line. Note that this does not actually |
1984 | * assign a handler to the interrupt. */ | 1963 | * assign a handler to the interrupt. */ |
1985 | 1964 | ||
1986 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 1965 | ret = pcmcia_request_irq(link, &link->irq); |
1966 | if (ret) | ||
1967 | goto failed; | ||
1987 | 1968 | ||
1988 | /* This actually configures the PCMCIA socket -- setting up the I/O | 1969 | /* This actually configures the PCMCIA socket -- setting up the I/O |
1989 | * windows and the interrupt mapping. */ | 1970 | * windows and the interrupt mapping. */ |
1990 | 1971 | ||
1991 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 1972 | ret = pcmcia_request_configuration(link, &link->conf); |
1973 | if (ret) | ||
1974 | goto failed; | ||
1992 | 1975 | ||
1993 | dev->irq = link->irq.AssignedIRQ; | 1976 | dev->irq = link->irq.AssignedIRQ; |
1994 | dev->base_addr = link->io.BasePort1; | 1977 | dev->base_addr = link->io.BasePort1; |
@@ -2041,8 +2024,6 @@ static int wl3501_config(struct pcmcia_device *link) | |||
2041 | netif_start_queue(dev); | 2024 | netif_start_queue(dev); |
2042 | return 0; | 2025 | return 0; |
2043 | 2026 | ||
2044 | cs_failed: | ||
2045 | cs_error(link, last_fn, last_ret); | ||
2046 | failed: | 2027 | failed: |
2047 | wl3501_release(link); | 2028 | wl3501_release(link); |
2048 | return -ENODEV; | 2029 | return -ENODEV; |