diff options
Diffstat (limited to 'drivers/net/wireless/atmel_cs.c')
| -rw-r--r-- | drivers/net/wireless/atmel_cs.c | 51 |
1 files changed, 17 insertions, 34 deletions
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c index ddaa859c3491..32407911842f 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,11 +139,10 @@ 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; |
| 162 | p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
| 163 | p_dev->irq.Handler = NULL; | 146 | p_dev->irq.Handler = NULL; |
| 164 | 147 | ||
| 165 | /* | 148 | /* |
| @@ -194,7 +177,7 @@ static int atmel_probe(struct pcmcia_device *p_dev) | |||
| 194 | 177 | ||
| 195 | static void atmel_detach(struct pcmcia_device *link) | 178 | static void atmel_detach(struct pcmcia_device *link) |
| 196 | { | 179 | { |
| 197 | DEBUG(0, "atmel_detach(0x%p)\n", link); | 180 | dev_dbg(&link->dev, "atmel_detach\n"); |
| 198 | 181 | ||
| 199 | atmel_release(link); | 182 | atmel_release(link); |
| 200 | 183 | ||
| @@ -209,9 +192,6 @@ static void atmel_detach(struct pcmcia_device *link) | |||
| 209 | 192 | ||
| 210 | ======================================================================*/ | 193 | ======================================================================*/ |
| 211 | 194 | ||
| 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 | 195 | /* Call-back function to interrogate PCMCIA-specific information |
| 216 | about the current existance of the card */ | 196 | about the current existance of the card */ |
| 217 | static int card_present(void *arg) | 197 | static int card_present(void *arg) |
| @@ -275,13 +255,13 @@ static int atmel_config_check(struct pcmcia_device *p_dev, | |||
| 275 | static int atmel_config(struct pcmcia_device *link) | 255 | static int atmel_config(struct pcmcia_device *link) |
| 276 | { | 256 | { |
| 277 | local_info_t *dev; | 257 | local_info_t *dev; |
| 278 | int last_fn, last_ret; | 258 | int ret; |
| 279 | struct pcmcia_device_id *did; | 259 | struct pcmcia_device_id *did; |
| 280 | 260 | ||
| 281 | dev = link->priv; | 261 | dev = link->priv; |
| 282 | did = dev_get_drvdata(&handle_to_dev(link)); | 262 | did = dev_get_drvdata(&link->dev); |
| 283 | 263 | ||
| 284 | DEBUG(0, "atmel_config(0x%p)\n", link); | 264 | dev_dbg(&link->dev, "atmel_config\n"); |
| 285 | 265 | ||
| 286 | /* | 266 | /* |
| 287 | In this loop, we scan the CIS for configuration table entries, | 267 | In this loop, we scan the CIS for configuration table entries, |
| @@ -303,31 +283,36 @@ static int atmel_config(struct pcmcia_device *link) | |||
| 303 | handler to the interrupt, unless the 'Handler' member of the | 283 | handler to the interrupt, unless the 'Handler' member of the |
| 304 | irq structure is initialized. | 284 | irq structure is initialized. |
| 305 | */ | 285 | */ |
| 306 | if (link->conf.Attributes & CONF_ENABLE_IRQ) | 286 | if (link->conf.Attributes & CONF_ENABLE_IRQ) { |
| 307 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 287 | ret = pcmcia_request_irq(link, &link->irq); |
| 288 | if (ret) | ||
| 289 | goto failed; | ||
| 290 | } | ||
| 308 | 291 | ||
| 309 | /* | 292 | /* |
| 310 | This actually configures the PCMCIA socket -- setting up | 293 | This actually configures the PCMCIA socket -- setting up |
| 311 | the I/O windows and the interrupt mapping, and putting the | 294 | the I/O windows and the interrupt mapping, and putting the |
| 312 | card and host interface into "Memory and IO" mode. | 295 | card and host interface into "Memory and IO" mode. |
| 313 | */ | 296 | */ |
| 314 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 297 | ret = pcmcia_request_configuration(link, &link->conf); |
| 298 | if (ret) | ||
| 299 | goto failed; | ||
| 315 | 300 | ||
| 316 | if (link->irq.AssignedIRQ == 0) { | 301 | if (link->irq.AssignedIRQ == 0) { |
| 317 | printk(KERN_ALERT | 302 | printk(KERN_ALERT |
| 318 | "atmel: cannot assign IRQ: check that CONFIG_ISA is set in kernel config."); | 303 | "atmel: cannot assign IRQ: check that CONFIG_ISA is set in kernel config."); |
| 319 | goto cs_failed; | 304 | goto failed; |
| 320 | } | 305 | } |
| 321 | 306 | ||
| 322 | ((local_info_t*)link->priv)->eth_dev = | 307 | ((local_info_t*)link->priv)->eth_dev = |
| 323 | init_atmel_card(link->irq.AssignedIRQ, | 308 | init_atmel_card(link->irq.AssignedIRQ, |
| 324 | link->io.BasePort1, | 309 | link->io.BasePort1, |
| 325 | did ? did->driver_info : ATMEL_FW_TYPE_NONE, | 310 | did ? did->driver_info : ATMEL_FW_TYPE_NONE, |
| 326 | &handle_to_dev(link), | 311 | &link->dev, |
| 327 | card_present, | 312 | card_present, |
| 328 | link); | 313 | link); |
| 329 | if (!((local_info_t*)link->priv)->eth_dev) | 314 | if (!((local_info_t*)link->priv)->eth_dev) |
| 330 | goto cs_failed; | 315 | goto failed; |
| 331 | 316 | ||
| 332 | 317 | ||
| 333 | /* | 318 | /* |
| @@ -340,8 +325,6 @@ static int atmel_config(struct pcmcia_device *link) | |||
| 340 | 325 | ||
| 341 | return 0; | 326 | return 0; |
| 342 | 327 | ||
| 343 | cs_failed: | ||
| 344 | cs_error(link, last_fn, last_ret); | ||
| 345 | failed: | 328 | failed: |
| 346 | atmel_release(link); | 329 | atmel_release(link); |
| 347 | return -ENODEV; | 330 | return -ENODEV; |
| @@ -359,7 +342,7 @@ static void atmel_release(struct pcmcia_device *link) | |||
| 359 | { | 342 | { |
| 360 | struct net_device *dev = ((local_info_t*)link->priv)->eth_dev; | 343 | struct net_device *dev = ((local_info_t*)link->priv)->eth_dev; |
| 361 | 344 | ||
| 362 | DEBUG(0, "atmel_release(0x%p)\n", link); | 345 | dev_dbg(&link->dev, "atmel_release\n"); |
| 363 | 346 | ||
| 364 | if (dev) | 347 | if (dev) |
| 365 | stop_atmel_card(dev); | 348 | stop_atmel_card(dev); |
