[PATCH] pcmcia: convert remaining users of pcmcia_release_io and _irq

Convert the remaining drivers which use pcmcia_release_io or
pcmcia_release_irq, and remove the EXPORT of these symbols.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
Dominik Brodowski 2006-01-15 10:05:19 +01:00
parent 5f2a71fcb7
commit 50db3fdbbc
16 changed files with 31 additions and 68 deletions

View File

@ -3,8 +3,8 @@ This file details changes in 2.6 which affect PCMCIA card driver authors:
* New release helper (as of 2.6.17) * New release helper (as of 2.6.17)
Instead of calling pcmcia_release_{configuration,io,irq,win}, all that's Instead of calling pcmcia_release_{configuration,io,irq,win}, all that's
necessary now is calling pcmcia_disable_device. As there is no valid necessary now is calling pcmcia_disable_device. As there is no valid
reason left to call pcmcia_release_io and pcmcia_release_irq, they will reason left to call pcmcia_release_io and pcmcia_release_irq, the
be removed soon. exports for them were removed.
* Unify detach and REMOVAL event code, as well as attach and INSERTION * Unify detach and REMOVAL event code, as well as attach and INSERTION
code (as of 2.6.16) code (as of 2.6.16)

View File

@ -284,25 +284,25 @@ found_port:
cs_error(link->handle, RequestIO, i); cs_error(link->handle, RequestIO, i);
break; break;
} }
/* /*
* allocate an interrupt line * allocate an interrupt line
*/ */
i = pcmcia_request_irq(link->handle, &link->irq); i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) { if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i); cs_error(link->handle, RequestIRQ, i);
pcmcia_release_io(link->handle, &link->io); /* undo */
pcmcia_disable_device(link->handle);
break; break;
} }
/* /*
* configure the PCMCIA socket * configure the PCMCIA socket
*/ */
i = pcmcia_request_configuration(link->handle, &link->conf); i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) { if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i); cs_error(link->handle, RequestConfiguration, i);
pcmcia_release_io(link->handle, &link->io); pcmcia_disable_device(link->handle);
pcmcia_release_irq(link->handle, &link->irq);
break; break;
} }

View File

@ -313,18 +313,18 @@ found_port:
i = pcmcia_request_irq(link->handle, &link->irq); i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) { if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i); cs_error(link->handle, RequestIRQ, i);
pcmcia_release_io(link->handle, &link->io); /* undo */
pcmcia_disable_device(link->handle);
break; break;
} }
/* /*
* configure the PCMCIA socket * configure the PCMCIA socket
*/ */
i = pcmcia_request_configuration(link->handle, &link->conf); i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) { if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i); cs_error(link->handle, RequestConfiguration, i);
pcmcia_release_io(link->handle, &link->io); pcmcia_disable_device(link->handle);
pcmcia_release_irq(link->handle, &link->irq);
break; break;
} }

View File

@ -374,15 +374,11 @@ static void sedlbauer_config(dev_link_t *link)
} }
/* If we got this far, we're cool! */ /* If we got this far, we're cool! */
break; break;
next_entry: next_entry:
/* new in dummy.cs 2001/01/28 MN
if (link->io.NumPorts1)
pcmcia_release_io(link->handle, &link->io);
*/
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple)); CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
} }
/* /*
Allocate an interrupt line. Note that this does not assign a Allocate an interrupt line. Note that this does not assign a
handler to the interrupt, unless the 'Handler' member of the handler to the interrupt, unless the 'Handler' member of the

View File

@ -49,6 +49,7 @@
#include <pcmcia/cisreg.h> #include <pcmcia/cisreg.h>
#include <pcmcia/ciscode.h> #include <pcmcia/ciscode.h>
#include <pcmcia/ds.h> #include <pcmcia/ds.h>
#include <pcmcia/ss.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/system.h> #include <asm/system.h>
@ -965,10 +966,15 @@ static int check_sig(dev_link_t *link)
if (width) { if (width) {
printk(KERN_INFO "smc91c92_cs: using 8-bit IO window.\n"); printk(KERN_INFO "smc91c92_cs: using 8-bit IO window.\n");
/* call pcmcia_release_configuration() in _suspend */
smc91c92_suspend(link->handle); smc91c92_suspend(link->handle);
pcmcia_release_io(link->handle, &link->io);
link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
pcmcia_request_io(link->handle, &link->io); 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); smc91c92_resume(link->handle);
return check_sig(link); return check_sig(link);
} }

View File

@ -317,8 +317,7 @@ orinoco_cs_config(dev_link_t *link)
break; break;
next_entry: next_entry:
if (link->io.NumPorts1) pcmcia_disable_device(handle);
pcmcia_release_io(link->handle, &link->io);
last_ret = pcmcia_get_next_tuple(handle, &tuple); last_ret = pcmcia_get_next_tuple(handle, &tuple);
if (last_ret == CS_NO_MORE_ITEMS) { if (last_ret == CS_NO_MORE_ITEMS) {
printk(KERN_ERR PFX "GetNextTuple(): No matching " printk(KERN_ERR PFX "GetNextTuple(): No matching "

View File

@ -849,22 +849,16 @@ static void ray_release(dev_link_t *link)
DEBUG(1, "ray_release(0x%p)\n", link); DEBUG(1, "ray_release(0x%p)\n", link);
del_timer(&local->timer); del_timer(&local->timer);
link->state &= ~DEV_CONFIG;
iounmap(local->sram); iounmap(local->sram);
iounmap(local->rmem); iounmap(local->rmem);
iounmap(local->amem); iounmap(local->amem);
/* Do bother checking to see if these succeed or not */ /* Do bother checking to see if these succeed or not */
i = pcmcia_release_window(link->win);
if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseWindow(link->win) ret = %x\n",i);
i = pcmcia_release_window(local->amem_handle); i = pcmcia_release_window(local->amem_handle);
if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseWindow(local->amem) ret = %x\n",i); if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseWindow(local->amem) ret = %x\n",i);
i = pcmcia_release_window(local->rmem_handle); i = pcmcia_release_window(local->rmem_handle);
if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseWindow(local->rmem) ret = %x\n",i); if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseWindow(local->rmem) ret = %x\n",i);
i = pcmcia_release_configuration(link->handle); pcmcia_disable_device(link->handle);
if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseConfiguration ret = %x\n",i);
i = pcmcia_release_irq(link->handle, &link->irq);
if ( i != CS_SUCCESS ) DEBUG(0,"ReleaseIRQ ret = %x\n",i);
DEBUG(2,"ray_release ending\n"); DEBUG(2,"ray_release ending\n");
} }

View File

@ -790,8 +790,7 @@ spectrum_cs_config(dev_link_t *link)
break; break;
next_entry: next_entry:
if (link->io.NumPorts1) pcmcia_disable_device(handle);
pcmcia_release_io(link->handle, &link->io);
last_ret = pcmcia_get_next_tuple(handle, &tuple); last_ret = pcmcia_get_next_tuple(handle, &tuple);
if (last_ret == CS_NO_MORE_ITEMS) { if (last_ret == CS_NO_MORE_ITEMS) {
printk(KERN_ERR PFX "GetNextTuple(): No matching " printk(KERN_ERR PFX "GetNextTuple(): No matching "

View File

@ -514,7 +514,6 @@ int pcmcia_release_io(struct pcmcia_device *p_dev, io_req_t *req)
return CS_SUCCESS; return CS_SUCCESS;
} /* pcmcia_release_io */ } /* pcmcia_release_io */
EXPORT_SYMBOL(pcmcia_release_io);
int pcmcia_release_irq(struct pcmcia_device *p_dev, irq_req_t *req) int pcmcia_release_irq(struct pcmcia_device *p_dev, irq_req_t *req)
@ -547,7 +546,6 @@ int pcmcia_release_irq(struct pcmcia_device *p_dev, irq_req_t *req)
return CS_SUCCESS; return CS_SUCCESS;
} /* pcmcia_release_irq */ } /* pcmcia_release_irq */
EXPORT_SYMBOL(pcmcia_release_irq);
int pcmcia_release_window(window_handle_t win) int pcmcia_release_window(window_handle_t win)
@ -937,6 +935,5 @@ void pcmcia_disable_device(struct pcmcia_device *p_dev) {
pcmcia_release_window(p_dev->instance->win); pcmcia_release_window(p_dev->instance->win);
p_dev->instance->dev = NULL; p_dev->instance->dev = NULL;
p_dev->instance->state &= ~DEV_CONFIG;
} }
EXPORT_SYMBOL(pcmcia_disable_device); EXPORT_SYMBOL(pcmcia_disable_device);

View File

@ -1802,10 +1802,7 @@ static void nsp_cs_config(dev_link_t *link)
next_entry: next_entry:
nsp_dbg(NSP_DEBUG_INIT, "next"); nsp_dbg(NSP_DEBUG_INIT, "next");
pcmcia_disable_device(handle);
if (link->io.NumPorts1) {
pcmcia_release_io(link->handle, &link->io);
}
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple)); CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
} }

View File

@ -288,12 +288,7 @@ out:
cs_failed: cs_failed:
cs_error(link->handle, last_fn, last_ret); cs_error(link->handle, last_fn, last_ret);
link->dev = NULL; pcmcia_disable_device(link->handle);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
return; return;
} /* qlogic_config */ } /* qlogic_config */

View File

@ -229,10 +229,7 @@ static void ixj_cs_release(dev_link_t *link)
ixj_info_t *info = link->priv; ixj_info_t *info = link->priv;
DEBUG(0, "ixj_cs_release(0x%p)\n", link); DEBUG(0, "ixj_cs_release(0x%p)\n", link);
info->ndev = 0; info->ndev = 0;
link->dev = NULL; pcmcia_disable_device(link->handle);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
link->state &= ~DEV_CONFIG;
} }
static int ixj_suspend(struct pcmcia_device *dev) static int ixj_suspend(struct pcmcia_device *dev)

View File

@ -154,19 +154,10 @@ static void sl811_cs_detach(struct pcmcia_device *p_dev)
static void sl811_cs_release(dev_link_t * link) static void sl811_cs_release(dev_link_t * link)
{ {
DBG(0, "sl811_cs_release(0x%p)\n", link); DBG(0, "sl811_cs_release(0x%p)\n", link);
/* Unlink the device chain */ pcmcia_disable_device(link->handle);
link->dev = NULL;
platform_device_unregister(&platform_dev); platform_device_unregister(&platform_dev);
pcmcia_release_configuration(link->handle);
if (link->io.NumPorts1)
pcmcia_release_io(link->handle, &link->io);
if (link->irq.AssignedIRQ)
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
} }
static void sl811_cs_config(dev_link_t *link) static void sl811_cs_config(dev_link_t *link)
@ -260,8 +251,7 @@ static void sl811_cs_config(dev_link_t *link)
break; break;
next_entry: next_entry:
if (link->io.NumPorts1) pcmcia_disable_device(handle);
pcmcia_release_io(link->handle, &link->io);
last_ret = pcmcia_get_next_tuple(handle, &tuple); last_ret = pcmcia_get_next_tuple(handle, &tuple);
} }

View File

@ -379,8 +379,6 @@ int pcmcia_get_mem_page(window_handle_t win, memreq_t *req);
int pcmcia_map_mem_page(window_handle_t win, memreq_t *req); int pcmcia_map_mem_page(window_handle_t win, memreq_t *req);
int pcmcia_modify_configuration(struct pcmcia_device *p_dev, modconf_t *mod); int pcmcia_modify_configuration(struct pcmcia_device *p_dev, modconf_t *mod);
int pcmcia_release_configuration(struct pcmcia_device *p_dev); int pcmcia_release_configuration(struct pcmcia_device *p_dev);
int pcmcia_release_io(struct pcmcia_device *p_dev, io_req_t *req);
int pcmcia_release_irq(struct pcmcia_device *p_dev, irq_req_t *req);
int pcmcia_release_window(window_handle_t win); int pcmcia_release_window(window_handle_t win);
int pcmcia_request_configuration(struct pcmcia_device *p_dev, config_req_t *req); int pcmcia_request_configuration(struct pcmcia_device *p_dev, config_req_t *req);
int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req); int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req);

View File

@ -273,9 +273,7 @@ static void pdacf_config(dev_link_t *link)
cs_failed: cs_failed:
cs_error(link->handle, last_fn, last_ret); cs_error(link->handle, last_fn, last_ret);
failed: failed:
pcmcia_release_configuration(link->handle); pcmcia_disable_device(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -272,10 +272,7 @@ static void vxpocket_config(dev_link_t *link)
cs_failed: cs_failed:
cs_error(link->handle, last_fn, last_ret); cs_error(link->handle, last_fn, last_ret);
failed: failed:
pcmcia_release_configuration(link->handle); pcmcia_disable_device(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
kfree(parse); kfree(parse);
} }