diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-01-15 03:32:39 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:15:50 -0500 |
commit | 5f2a71fcb7995633b335a1e380ac63a968e61320 (patch) | |
tree | d47f4227d314fc9f298b75c217fa78440004e6e7 /drivers/net/wireless/atmel_cs.c | |
parent | 1de9cedfbdff1d8adb662cd3afc5bda66e393351 (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.c | 21 |
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) | |||
418 | static void atmel_release(dev_link_t *link) | 418 | static 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 | ||
440 | static int atmel_suspend(struct pcmcia_device *dev) | 431 | static int atmel_suspend(struct pcmcia_device *dev) |