diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-01-15 11:18:12 +0100 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 17:15:53 +0200 |
commit | 4bbed5231468014b500b048d7370a1c6c349231a (patch) | |
tree | 5dfafd6a932201fbbfbb2466c11f5392b3240342 /drivers/net | |
parent | 8661bb5b4af1849c1f5a4e80c4e275fd13c155d6 (diff) | |
download | op-kernel-dev-4bbed5231468014b500b048d7370a1c6c349231a.zip op-kernel-dev-4bbed5231468014b500b048d7370a1c6c349231a.tar.gz |
[PATCH] pcmcia: remove export of pcmcia_release_configuration
Handle the _modifying_ operation sm91c92_cs requires in
pcmcia_modify_configuration, so that the only remaining users
of pcmcia_release_configuration() are within the pcmcia core
module.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/pcmcia/smc91c92_cs.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c index 84e18bb..86942c0 100644 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c @@ -874,11 +874,8 @@ static int smc91c92_suspend(struct pcmcia_device *p_dev) dev_link_t *link = dev_to_instance(p_dev); struct net_device *dev = link->priv; - if (link->state & DEV_CONFIG) { - if (link->open) - netif_device_detach(dev); - pcmcia_release_configuration(link->handle); - } + if ((link->state & DEV_CONFIG) && (link->open)) + netif_device_detach(dev); return 0; } @@ -894,7 +891,6 @@ static int smc91c92_resume(struct pcmcia_device *p_dev) if ((smc->manfid == MANFID_MEGAHERTZ) && (smc->cardid == PRODID_MEGAHERTZ_EM3288)) mhz_3288_power(link); - pcmcia_request_configuration(link->handle, &link->conf); if (smc->manfid == MANFID_MOTOROLA) mot_config(link); if ((smc->manfid == MANFID_OSITECH) && @@ -963,18 +959,15 @@ static int check_sig(dev_link_t *link) } if (width) { - printk(KERN_INFO "smc91c92_cs: using 8-bit IO window.\n"); - /* call pcmcia_release_configuration() in _suspend */ - smc91c92_suspend(link->handle); - - link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; - link->handle->socket->io[0].res->flags &= ~IO_DATA_PATH_WIDTH; - link->handle->socket->io[0].res->flags |= IO_DATA_PATH_WIDTH_8; - - /* call pcmcia_request_configuration() in _resume, it handles the - * flag update */ - smc91c92_resume(link->handle); - return check_sig(link); + modconf_t mod = { + .Attributes = CONF_IO_CHANGE_WIDTH, + }; + printk(KERN_INFO "smc91c92_cs: using 8-bit IO window.\n"); + + smc91c92_suspend(link->handle); + pcmcia_modify_configuration(link->handle, &mod); + smc91c92_resume(link->handle); + return check_sig(link); } return -ENODEV; } |