aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/atmel_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2006-01-15 03:32:39 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2006-03-31 10:15:50 -0500
commit5f2a71fcb7995633b335a1e380ac63a968e61320 (patch)
treed47f4227d314fc9f298b75c217fa78440004e6e7 /drivers/net/wireless/atmel_cs.c
parent1de9cedfbdff1d8adb662cd3afc5bda66e393351 (diff)
[PATCH] pcmcia: add pcmcia_disable_device
pcmcia_disable_device(struct pcmcia_device *p_dev) performs the necessary cleanups upon device or driver removal: it calls the appropriate pcmcia_release_* functions, and can replace (most) of the current drivers' _release() functions. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/wireless/atmel_cs.c')
-rw-r--r--drivers/net/wireless/atmel_cs.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index d6f4a5a3e55a..1da8e6197ffb 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -418,23 +418,14 @@ static void atmel_config(dev_link_t *link)
418static void atmel_release(dev_link_t *link) 418static void atmel_release(dev_link_t *link)
419{ 419{
420 struct net_device *dev = ((local_info_t*)link->priv)->eth_dev; 420 struct net_device *dev = ((local_info_t*)link->priv)->eth_dev;
421 421
422 DEBUG(0, "atmel_release(0x%p)\n", link); 422 DEBUG(0, "atmel_release(0x%p)\n", link);
423 423
424 /* Unlink the device chain */ 424 if (dev)
425 link->dev = NULL;
426
427 if (dev)
428 stop_atmel_card(dev); 425 stop_atmel_card(dev);
429 ((local_info_t*)link->priv)->eth_dev = NULL; 426 ((local_info_t*)link->priv)->eth_dev = NULL;
430 427
431 /* Don't bother checking to see if these succeed or not */ 428 pcmcia_disable_device(link->handle);
432 pcmcia_release_configuration(link->handle);
433 if (link->io.NumPorts1)
434 pcmcia_release_io(link->handle, &link->io);
435 if (link->irq.AssignedIRQ)
436 pcmcia_release_irq(link->handle, &link->irq);
437 link->state &= ~DEV_CONFIG;
438} 429}
439 430
440static int atmel_suspend(struct pcmcia_device *dev) 431static int atmel_suspend(struct pcmcia_device *dev)