Commit 5efc426f authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] final CardServices() removal patches

From: Andres Salomon <dilinger@voxel.net>

Remove calls to CardServices(); final.

This removes the CardServices() calls the rest of the tree, as well as
CardServices itself from cs.c and cs.h.  My previous patches, along w/
Arjan's patch for ide-cs.c and Russell's patch for serial_cs.c should
remove all traces of it.  I've attached a gzipped tarball to hopefully
make things easier.

Files touched:
                                                                           =
 201-cs_remove.patch:+++ mod/sound/pcmcia/vx/vx_entry.c
202-cs_remove.patch:+++ mod/drivers/bluetooth/bluecard_cs.c
202-cs_remove.patch:+++ mod/drivers/bluetooth/bt3c_cs.c
202-cs_remove.patch:+++ mod/drivers/bluetooth/btuart_cs.c
202-cs_remove.patch:+++ mod/drivers/bluetooth/dtl1_cs.c
203-cs_remove.patch:+++ mod/drivers/isdn/hardware/avm/avm_cs.c
203-cs_remove.patch:+++ mod/drivers/isdn/hisax/avma1_cs.c
203-cs_remove.patch:+++ mod/drivers/isdn/hisax/elsa_cs.c
203-cs_remove.patch:+++ mod/drivers/isdn/hisax/sedlbauer_cs.c
204-cs_remove.patch:+++ mod/drivers/parport/parport_cs.c
205-cs_remove.patch:+++ mod/drivers/telephony/ixj_pcmcia.c
206-cs_remove.patch:+++ mod/drivers/mtd/maps/pcmciamtd.c
207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/aha152x_stub.c
207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/fdomain_stub.c
207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.c
207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.h
207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/qlogic_stub.c
208-cs_remove.patch:+++ mod/drivers/char/pcmcia/synclink_cs.c
209-cs_remove.patch:+++ mod/drivers/pcmcia/cs.c
209-cs_remove.patch:+++ mod/include/pcmcia/cs.h
parent 3782085d
......@@ -871,7 +871,7 @@ dev_link_t *bluecard_attach(void)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
bluecard_detach(link);
......@@ -900,7 +900,7 @@ void bluecard_detach(dev_link_t *link)
bluecard_release(link);
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -912,25 +912,21 @@ void bluecard_detach(dev_link_t *link)
}
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
static int first_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
i = pcmcia_get_first_tuple(handle, tuple);
if (i != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
i = CardServices(GetTupleData, handle, tuple);
i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS)
return i;
return CardServices(ParseTuple, handle, tuple, parse);
return pcmcia_parse_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
void bluecard_config(dev_link_t *link)
{
client_handle_t handle = link->handle;
......@@ -958,7 +954,7 @@ void bluecard_config(dev_link_t *link)
/* Configure card */
link->state |= DEV_CONFIG;
i = CardServices(GetConfigurationInfo, handle, &config);
i = pcmcia_get_configuration_info(handle, &config);
link->conf.Vcc = config.Vcc;
link->conf.ConfigIndex = 0x20;
......@@ -967,7 +963,7 @@ void bluecard_config(dev_link_t *link)
for (n = 0; n < 0x400; n += 0x40) {
link->io.BasePort1 = n ^ 0x300;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS)
break;
}
......@@ -977,13 +973,13 @@ void bluecard_config(dev_link_t *link)
goto failed;
}
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i);
link->irq.AssignedIRQ = 0;
}
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i);
goto failed;
......@@ -1015,9 +1011,9 @@ void bluecard_release(dev_link_t *link)
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
}
......@@ -1045,14 +1041,14 @@ int bluecard_event(event_t event, int priority, event_callback_args_t *args)
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (DEV_OK(link))
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
......
......@@ -617,7 +617,7 @@ dev_link_t *bt3c_attach(void)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
bt3c_detach(link);
......@@ -646,7 +646,7 @@ void bt3c_detach(dev_link_t *link)
bt3c_release(link);
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -657,25 +657,30 @@ void bt3c_detach(dev_link_t *link)
kfree(info);
}
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
static int get_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
if (i != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
i = CardServices(GetTupleData, handle, tuple);
i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS)
return i;
return CardServices(ParseTuple, handle, tuple, parse);
return pcmcia_parse_tuple(handle, tuple, parse);
}
static int first_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
return get_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
static int next_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
if (pcmcia_get_next_tuple(handle, tuple) != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
return get_tuple(handle, tuple, parse);
}
void bt3c_config(dev_link_t *link)
{
......@@ -706,7 +711,7 @@ void bt3c_config(dev_link_t *link)
/* Configure card */
link->state |= DEV_CONFIG;
i = CardServices(GetConfigurationInfo, handle, &config);
i = pcmcia_get_configuration_info(handle, &config);
link->conf.Vcc = config.Vcc;
/* First pass: look for a config entry that looks normal. */
......@@ -727,7 +732,7 @@ void bt3c_config(dev_link_t *link)
link->conf.ConfigIndex = cf->index;
link->io.BasePort1 = cf->io.win[0].base;
link->io.IOAddrLines = (try == 0) ? 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS)
goto found_port;
}
......@@ -746,7 +751,7 @@ void bt3c_config(dev_link_t *link)
for (j = 0; j < 5; j++) {
link->io.BasePort1 = base[j];
link->io.IOAddrLines = base[j] ? 16 : 3;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS)
goto found_port;
}
......@@ -761,13 +766,13 @@ void bt3c_config(dev_link_t *link)
goto failed;
}
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i);
link->irq.AssignedIRQ = 0;
}
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i);
goto failed;
......@@ -799,9 +804,9 @@ void bt3c_release(dev_link_t *link)
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
}
......@@ -829,14 +834,14 @@ int bt3c_event(event_t event, int priority, event_callback_args_t *args)
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (DEV_OK(link))
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
......
......@@ -624,7 +624,7 @@ dev_link_t *btuart_attach(void)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
btuart_detach(link);
......@@ -653,7 +653,7 @@ void btuart_detach(dev_link_t *link)
btuart_release(link);
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -664,25 +664,30 @@ void btuart_detach(dev_link_t *link)
kfree(info);
}
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
static int get_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
if (i != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
i = CardServices(GetTupleData, handle, tuple);
i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS)
return i;
return CardServices(ParseTuple, handle, tuple, parse);
return pcmcia_parse_tuple(handle, tuple, parse);
}
static int first_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
return get_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
static int next_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
if (pcmcia_get_next_tuple(handle, tuple) != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
return get_tuple(handle, tuple, parse);
}
void btuart_config(dev_link_t *link)
{
......@@ -713,7 +718,7 @@ void btuart_config(dev_link_t *link)
/* Configure card */
link->state |= DEV_CONFIG;
i = CardServices(GetConfigurationInfo, handle, &config);
i = pcmcia_get_configuration_info(handle, &config);
link->conf.Vcc = config.Vcc;
/* First pass: look for a config entry that looks normal. */
......@@ -734,7 +739,7 @@ void btuart_config(dev_link_t *link)
link->conf.ConfigIndex = cf->index;
link->io.BasePort1 = cf->io.win[0].base;
link->io.IOAddrLines = (try == 0) ? 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS)
goto found_port;
}
......@@ -754,7 +759,7 @@ void btuart_config(dev_link_t *link)
for (j = 0; j < 5; j++) {
link->io.BasePort1 = base[j];
link->io.IOAddrLines = base[j] ? 16 : 3;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS)
goto found_port;
}
......@@ -769,13 +774,13 @@ void btuart_config(dev_link_t *link)
goto failed;
}
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i);
link->irq.AssignedIRQ = 0;
}
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i);
goto failed;
......@@ -807,9 +812,9 @@ void btuart_release(dev_link_t *link)
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
}
......@@ -837,14 +842,14 @@ int btuart_event(event_t event, int priority, event_callback_args_t *args)
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (DEV_OK(link))
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
......
......@@ -603,7 +603,7 @@ dev_link_t *dtl1_attach(void)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
dtl1_detach(link);
......@@ -632,7 +632,7 @@ void dtl1_detach(dev_link_t *link)
dtl1_release(link);
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -643,25 +643,30 @@ void dtl1_detach(dev_link_t *link)
kfree(info);
}
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
static int get_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
if (i != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
i = CardServices(GetTupleData, handle, tuple);
i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS)
return i;
return CardServices(ParseTuple, handle, tuple, parse);
return pcmcia_parse_tuple(handle, tuple, parse);
}
static int first_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
return get_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
static int next_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
{
if (pcmcia_get_next_tuple(handle, tuple) != CS_SUCCESS)
return CS_NO_MORE_ITEMS;
return get_tuple(handle, tuple, parse);
}
void dtl1_config(dev_link_t *link)
{
......@@ -691,7 +696,7 @@ void dtl1_config(dev_link_t *link)
/* Configure card */
link->state |= DEV_CONFIG;
i = CardServices(GetConfigurationInfo, handle, &config);
i = pcmcia_get_configuration_info(handle, &config);
link->conf.Vcc = config.Vcc;
tuple.TupleData = (cisdata_t *)buf;
......@@ -709,7 +714,7 @@ void dtl1_config(dev_link_t *link)
link->io.BasePort1 = cf->io.win[0].base;
link->io.NumPorts1 = cf->io.win[0].len; /*yo */
link->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS)
break;
}
......@@ -721,13 +726,13 @@ void dtl1_config(dev_link_t *link)
goto failed;
}
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i);
link->irq.AssignedIRQ = 0;
}
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i);
goto failed;
......@@ -759,9 +764,9 @@ void dtl1_release(dev_link_t *link)
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
}
......@@ -789,14 +794,14 @@ int dtl1_event(event_t event, int priority, event_callback_args_t *args)
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (DEV_OK(link))
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
......
......@@ -592,7 +592,7 @@ static dev_link_t *mgslpc_attach(void)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
mgslpc_detach(link);
......@@ -607,8 +607,8 @@ static dev_link_t *mgslpc_attach(void)
/* Card has been inserted.
*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn),args))!=0) goto cs_failed
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void mgslpc_config(dev_link_t *link)
{
......@@ -631,9 +631,9 @@ static void mgslpc_config(dev_link_t *link)
tuple.TupleData = buf;
tuple.TupleDataMax = sizeof(buf);
tuple.TupleOffset = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
link->conf.Present = parse.config.rmask[0];
......@@ -641,17 +641,17 @@ static void mgslpc_config(dev_link_t *link)
link->state |= DEV_CONFIG;
/* Look up the current Vcc */
CS_CHECK(GetConfigurationInfo, handle, &conf);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &conf));
link->conf.Vcc = conf.Vcc;
/* get CIS configuration entry */
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
cfg = &(parse.cftable_entry);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
if (cfg->flags & CISTPL_CFTABLE_DEFAULT) dflt = *cfg;
if (cfg->index == 0)
......@@ -672,7 +672,7 @@ static void mgslpc_config(dev_link_t *link)
link->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
link->io.BasePort1 = io->win[0].base;
link->io.NumPorts1 = io->win[0].len;
CS_CHECK(RequestIO, link->handle, &link->io);
CS_CHECK(RequestIO, pcmcia_request_io(link->handle, &link->io));
}
link->conf.Attributes = CONF_ENABLE_IRQ;
......@@ -684,9 +684,9 @@ static void mgslpc_config(dev_link_t *link)
link->irq.Attributes |= IRQ_HANDLE_PRESENT;
link->irq.Handler = mgslpc_isr;
link->irq.Instance = info;
CS_CHECK(RequestIRQ, link->handle, &link->irq);
CS_CHECK(RequestIRQ, pcmcia_request_irq(link->handle, &link->irq));
CS_CHECK(RequestConfiguration, link->handle, &link->conf);
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link->handle, &link->conf));
info->io_base = link->io.BasePort1;
info->irq_level = link->irq.AssignedIRQ;
......@@ -728,11 +728,11 @@ static void mgslpc_release(u_long arg)
link->dev = NULL;
link->state &= ~DEV_CONFIG;
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
if (link->io.NumPorts1)
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
if (link->irq.AssignedIRQ)
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_irq(link->handle, &link->irq);
if (link->state & DEV_STALE_LINK)
mgslpc_detach(link);
}
......@@ -763,7 +763,7 @@ static void mgslpc_detach(dev_link_t *link)
/* Break the link with Card Services */
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, and free it */
*linkp = link->next;
......@@ -798,14 +798,14 @@ static int mgslpc_event(event_t event, int priority,
/* Mark the device as stopped, to block IO until later */
info->stop = 1;
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG)
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
info->stop = 0;
break;
}
......
......@@ -186,7 +186,7 @@ static dev_link_t *avmcs_attach(void)
client_reg.event_handler = &avmcs_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
avmcs_detach(link);
......@@ -232,7 +232,7 @@ static void avmcs_detach(dev_link_t *link)
/* Break the link with Card Services */
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, free pieces */
*linkp = link->next;
......@@ -251,19 +251,29 @@ static void avmcs_detach(dev_link_t *link)
======================================================================*/
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple,
static int get_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
int i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS) return i;
i = CardServices(GetTupleData, handle, tuple);
return pcmcia_parse_tuple(handle, tuple, parse);
}
static int first_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i = pcmcia_get_first_tuple(handle, tuple);
if (i != CS_SUCCESS) return i;
return CardServices(ParseTuple, handle, tuple, parse);
return get_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
static int next_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i = pcmcia_get_next_tuple(handle, tuple);
if (i != CS_SUCCESS) return i;
return get_tuple(handle, tuple, parse);
}
static void avmcs_config(dev_link_t *link)
{
......@@ -287,14 +297,14 @@ static void avmcs_config(dev_link_t *link)
*/
do {
tuple.DesiredTuple = CISTPL_CONFIG;
i = CardServices(GetFirstTuple, handle, &tuple);
i = pcmcia_get_first_tuple(handle, &tuple);
if (i != CS_SUCCESS) break;
tuple.TupleData = buf;
tuple.TupleDataMax = 64;
tuple.TupleOffset = 0;
i = CardServices(GetTupleData, handle, &tuple);
i = pcmcia_get_tuple_data(handle, &tuple);
if (i != CS_SUCCESS) break;
i = CardServices(ParseTuple, handle, &tuple, &parse);
i = pcmcia_parse_tuple(handle, &tuple, &parse);
if (i != CS_SUCCESS) break;
link->conf.ConfigBase = parse.config.base;
} while (0);
......@@ -337,7 +347,7 @@ static void avmcs_config(dev_link_t *link)
printk(KERN_INFO "avm_cs: testing i/o %#x-%#x\n",
link->io.BasePort1,
link->io.BasePort1+link->io.NumPorts1-1);
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS) goto found_port;
}
i = next_tuple(handle, &tuple, &parse);
......@@ -352,21 +362,21 @@ static void avmcs_config(dev_link_t *link)
/*
* allocate an interrupt line
*/
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i);
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
break;
}
/*
* configure the PCMCIA socket
*/
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
break;
}
......@@ -437,9 +447,9 @@ static void avmcs_release(dev_link_t *link)
link->dev = NULL;
/* Don't bother checking to see if these succeed or not */
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
if (link->state & DEV_STALE_LINK)
......@@ -481,14 +491,14 @@ static int avmcs_event(event_t event, int priority,
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG)
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
return 0;
......
......@@ -204,7 +204,7 @@ static dev_link_t *avma1cs_attach(void)
client_reg.event_handler = &avma1cs_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
avma1cs_detach(link);
......@@ -252,7 +252,7 @@ static void avma1cs_detach(dev_link_t *link)
/* Break the link with Card Services */
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, free pieces */
*linkp = link->next;
......@@ -271,19 +271,29 @@ static void avma1cs_detach(dev_link_t *link)
======================================================================*/
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple,
static int get_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
int i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS) return i;
i = CardServices(GetTupleData, handle, tuple);
return pcmcia_parse_tuple(handle, tuple, parse);
}
static int first_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i = pcmcia_get_first_tuple(handle, tuple);
if (i != CS_SUCCESS) return i;
return CardServices(ParseTuple, handle, tuple, parse);
return get_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
static int next_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i = pcmcia_get_next_tuple(handle, tuple);
if (i != CS_SUCCESS) return i;
return get_tuple(handle, tuple, parse);
}
static void avma1cs_config(dev_link_t *link)
{
......@@ -308,14 +318,14 @@ static void avma1cs_config(dev_link_t *link)
*/
do {
tuple.DesiredTuple = CISTPL_CONFIG;
i = CardServices(GetFirstTuple, handle, &tuple);
i = pcmcia_get_first_tuple(handle, &tuple);
if (i != CS_SUCCESS) break;
tuple.TupleData = buf;
tuple.TupleDataMax = 64;
tuple.TupleOffset = 0;
i = CardServices(GetTupleData, handle, &tuple);
i = pcmcia_get_tuple_data(handle, &tuple);
if (i != CS_SUCCESS) break;
i = CardServices(ParseTuple, handle, &tuple, &parse);
i = pcmcia_parse_tuple(handle, &tuple, &parse);
if (i != CS_SUCCESS) break;
link->conf.ConfigBase = parse.config.base;
} while (0);
......@@ -358,7 +368,7 @@ static void avma1cs_config(dev_link_t *link)
printk(KERN_INFO "avma1_cs: testing i/o %#x-%#x\n",
link->io.BasePort1,
link->io.BasePort1+link->io.NumPorts1 - 1);
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS) goto found_port;
}
i = next_tuple(handle, &tuple, &parse);
......@@ -373,21 +383,21 @@ static void avma1cs_config(dev_link_t *link)
/*
* allocate an interrupt line
*/
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestIRQ, i);
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
break;
}
/*
* configure the PCMCIA socket
*/
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, i);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
break;
}
......@@ -445,9 +455,9 @@ static void avma1cs_release(dev_link_t *link)
link->dev = NULL;
/* Don't bother checking to see if these succeed or not */
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
if (link->state & DEV_STALE_LINK)
......@@ -490,14 +500,14 @@ static int avma1cs_event(event_t event, int priority,
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG)
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
return 0;
......
......@@ -235,7 +235,7 @@ static dev_link_t *elsa_cs_attach(void)
client_reg.event_handler = &elsa_cs_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
elsa_cs_detach(link);
......@@ -286,7 +286,7 @@ static void elsa_cs_detach(dev_link_t *link)
/* Break the link with Card Services */
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -304,19 +304,29 @@ static void elsa_cs_detach(dev_link_t *link)
device available to the system.
======================================================================*/
static int get_tuple(int fn, client_handle_t handle, tuple_t *tuple,
static int get_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i;
i = CardServices(fn, handle, tuple);
int i = pcmcia_get_tuple_data(handle, tuple);
if (i != CS_SUCCESS) return i;
i = CardServices(GetTupleData, handle, tuple);
return pcmcia_parse_tuple(handle, tuple, parse);
}
static int first_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i = pcmcia_get_first_tuple(handle, tuple);
if (i != CS_SUCCESS) return i;
return CardServices(ParseTuple, handle, tuple, parse);
return get_tuple(handle, tuple, parse);
}
#define first_tuple(a, b, c) get_tuple(GetFirstTuple, a, b, c)
#define next_tuple(a, b, c) get_tuple(GetNextTuple, a, b, c)
static int next_tuple(client_handle_t handle, tuple_t *tuple,
cisparse_t *parse)
{
int i = pcmcia_get_next_tuple(handle, tuple);
if (i != CS_SUCCESS) return i;
return get_tuple(handle, tuple, parse);
}
static void elsa_cs_config(dev_link_t *link)
{
......@@ -362,14 +372,14 @@ static void elsa_cs_config(dev_link_t *link)
printk(KERN_INFO "(elsa_cs: looks like the 96 model)\n");
link->conf.ConfigIndex = cf->index;
link->io.BasePort1 = cf->io.win[0].base;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS) break;
} else {
printk(KERN_INFO "(elsa_cs: looks like the 97 model)\n");
link->conf.ConfigIndex = cf->index;
for (i = 0, j = 0x2f0; j > 0x100; j -= 0x10) {
link->io.BasePort1 = j;
i = CardServices(RequestIO, link->handle, &link->io);
i = pcmcia_request_io(link->handle, &link->io);
if (i == CS_SUCCESS) break;
}
break;
......@@ -382,14 +392,14 @@ static void elsa_cs_config(dev_link_t *link)
goto cs_failed;
}
i = CardServices(RequestIRQ, link->handle, &link->irq);
i = pcmcia_request_irq(link->handle, &link->irq);
if (i != CS_SUCCESS) {
link->irq.AssignedIRQ = 0;
last_fn = RequestIRQ;
goto cs_failed;
}
i = CardServices(RequestConfiguration, link->handle, &link->conf);
i = pcmcia_request_configuration(link->handle, &link->conf);
if (i != CS_SUCCESS) {
last_fn = RequestConfiguration;
goto cs_failed;
......@@ -447,10 +457,10 @@ static void elsa_cs_release(dev_link_t *link)
/* Don't bother checking to see if these succeed or not */
if (link->win)
CardServices(ReleaseWindow, link->win);
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_window(link->win);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
if (link->state & DEV_STALE_LINK)
......@@ -499,14 +509,14 @@ static int elsa_cs_event(event_t event, int priority,
/* Mark the device as stopped, to block IO until later */
dev->busy = 1;
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG)
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
dev->busy = 0;
break;
}
......
......@@ -247,7 +247,7 @@ static dev_link_t *sedlbauer_attach(void)
client_reg.event_handler = &sedlbauer_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
sedlbauer_detach(link);
......@@ -295,7 +295,7 @@ static void sedlbauer_detach(dev_link_t *link)
/* Break the link with Card Services */
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, and free it */
*linkp = link->next;
......@@ -310,12 +310,8 @@ static void sedlbauer_detach(dev_link_t *link)
device available to the system.
======================================================================*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn),args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void sedlbauer_config(dev_link_t *link)
{
......@@ -341,9 +337,9 @@ static void sedlbauer_config(dev_link_t *link)
tuple.TupleData = buf;
tuple.TupleDataMax = sizeof(buf);
tuple.TupleOffset = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
link->conf.Present = parse.config.rmask[0];
......@@ -351,7 +347,7 @@ static void sedlbauer_config(dev_link_t *link)
link->state |= DEV_CONFIG;
/* Look up the current Vcc */
CS_CHECK(GetConfigurationInfo, handle, &conf);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &conf));
link->conf.Vcc = conf.Vcc;
/*
......@@ -367,12 +363,13 @@ static void sedlbauer_config(dev_link_t *link)
will only use the CIS to fill in implementation-defined details.
*/
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
cistpl_cftable_entry_t dflt = { 0 };
cistpl_cftable_entry_t *cfg = &(parse.cftable_entry);
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
if (cfg->flags & CISTPL_CFTABLE_DEFAULT) dflt = *cfg;
if (cfg->index == 0) goto next_entry;
......@@ -425,7 +422,8 @@ static void sedlbauer_config(dev_link_t *link)
link->io.NumPorts2 = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
CFG_CHECK(RequestIO, link->handle, &link->io);
if (pcmcia_request_io(link->handle, &link->io) != 0)
goto next_entry;
}
/*
......@@ -451,10 +449,11 @@ static void sedlbauer_config(dev_link_t *link)
req.Size = 0x1000;
*/
req.AccessSpeed = 0;
link->win = (window_handle_t)link->handle;
CFG_CHECK(RequestWindow, &link->win, &req);
if (pcmcia_request_window(&link->handle, &req, &link->win) != 0)
goto next_entry;
map.Page = 0; map.CardOffset = mem->win[0].card_addr;
CFG_CHECK(MapMemPage, link->win, &map);
if (pcmcia_map_mem_page(link->win, &map) != 0)
goto next_entry;
}
/* If we got this far, we're cool! */
break;
......@@ -462,9 +461,9 @@ static void sedlbauer_config(dev_link_t *link)
next_entry:
/* new in dummy.cs 2001/01/28 MN
if (link->io.NumPorts1)
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
*/
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
/*
......@@ -473,14 +472,14 @@ static void sedlbauer_config(dev_link_t *link)
irq structure is initialized.
*/
if (link->conf.Attributes & CONF_ENABLE_IRQ)
CS_CHECK(RequestIRQ, link->handle, &link->irq);
CS_CHECK(RequestIRQ, pcmcia_request_irq(link->handle, &link->irq));
/*
This actually configures the PCMCIA socket -- setting up
the I/O windows and the interrupt mapping, and putting the
card and host interface into "Memory and IO" mode.
*/
CS_CHECK(RequestConfiguration, link->handle, &link->conf);
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link->handle, &link->conf));
/*
At this point, the dev_node_t structure(s) need to be
......@@ -545,12 +544,12 @@ static void sedlbauer_release(dev_link_t *link)
/* Don't bother checking to see if these succeed or not */
if (link->win)
CardServices(ReleaseWindow, link->win);
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_window(link->win);
pcmcia_release_configuration(link->handle);
if (link->io.NumPorts1)
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
if (link->irq.AssignedIRQ)
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
if (link->state & DEV_STALE_LINK)
......@@ -597,14 +596,14 @@ static int sedlbauer_event(event_t event, int priority,
/* Mark the device as stopped, to block IO until later */
dev->stop = 1;
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG)
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
dev->stop = 0;
/*
In a normal driver, additional code may go here to restore
......
......@@ -125,7 +125,7 @@ static caddr_t remap_window(struct map_info *map, unsigned long to)
DEBUG(2, "Remapping window from 0x%8.8x to 0x%8.8x",
dev->offset, mrq.CardOffset);
mrq.Page = 0;
if( (ret = CardServices(MapMemPage, win, &mrq)) != CS_SUCCESS) {
if( (ret = pcmcia_map_mem_page(win, &mrq)) != CS_SUCCESS) {
cs_error(dev->link.handle, MapMemPage, ret);
return NULL;
}
......@@ -332,7 +332,7 @@ static void pcmciamtd_set_vpp(struct map_info *map, int on)
mod.Vpp1 = mod.Vpp2 = on ? dev->vpp : 0;
DEBUG(2, "dev = %p on = %d vpp = %d\n", dev, on, dev->vpp);
ret = CardServices(ModifyConfiguration, link->handle, &mod);
ret = pcmcia_modify_configuration(link->handle, &mod);
if(ret != CS_SUCCESS) {
cs_error(link->handle, ModifyConfiguration, ret);
}
......@@ -355,9 +355,9 @@ static void pcmciamtd_release(dev_link_t *link)
iounmap(dev->win_base);
dev->win_base = NULL;
}
CardServices(ReleaseWindow, link->win);
pcmcia_release_window(link->win);
}
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
link->state &= ~DEV_CONFIG;
}
......@@ -375,14 +375,14 @@ static void card_settings(struct pcmciamtd_dev *dev, dev_link_t *link, int *new_
tuple.TupleOffset = 0;
tuple.DesiredTuple = RETURN_FIRST_TUPLE;
rc = CardServices(GetFirstTuple, link->handle, &tuple);
rc = pcmcia_get_first_tuple(link->handle, &tuple);
while(rc == CS_SUCCESS) {
rc = CardServices(GetTupleData, link->handle, &tuple);
rc = pcmcia_get_tuple_data(link->handle, &tuple);
if(rc != CS_SUCCESS) {
cs_error(link->handle, GetTupleData, rc);
break;
}
rc = CardServices(ParseTuple, link->handle, &tuple, &parse);
rc = pcmcia_parse_tuple(link->handle, &tuple, &parse);
if(rc != CS_SUCCESS) {
cs_error(link->handle, ParseTuple, rc);
break;
......@@ -455,7 +455,7 @@ static void card_settings(struct pcmciamtd_dev *dev, dev_link_t *link, int *new_
DEBUG(2, "Unknown tuple code %d", tuple.TupleCode);
}
rc = CardServices(GetNextTuple, link->handle, &tuple, &parse);
rc = pcmcia_get_next_tuple(link->handle, &tuple);
}
if(!dev->pcmcia_map.size)
dev->pcmcia_map.size = MAX_PCMCIA_ADDR;
......@@ -489,8 +489,8 @@ static void card_settings(struct pcmciamtd_dev *dev, dev_link_t *link, int *new_
* MTD device available to the system.
*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void pcmciamtd_config(dev_link_t *link)
{
......@@ -512,7 +512,7 @@ static void pcmciamtd_config(dev_link_t *link)
link->state |= DEV_CONFIG;
DEBUG(2, "Validating CIS");
ret = CardServices(ValidateCIS, link->handle, &cisinfo);
ret = pcmcia_validate_cis(link->handle, &cisinfo);
if(ret != CS_SUCCESS) {
cs_error(link->handle, GetTupleData, ret);
} else {
......@@ -547,8 +547,7 @@ static void pcmciamtd_config(dev_link_t *link)
int ret;
DEBUG(2, "requesting window with size = %dKiB memspeed = %d",
req.Size >> 10, req.AccessSpeed);
link->win = (window_handle_t)link->handle;
ret = CardServices(RequestWindow, &link->win, &req);
ret = pcmcia_request_window(&link->handle, &req, &link->win);
DEBUG(2, "ret = %d dev->win_size = %d", ret, dev->win_size);
if(ret) {
req.Size >>= 1;
......@@ -569,7 +568,7 @@ static void pcmciamtd_config(dev_link_t *link)
DEBUG(1, "Allocated a window of %dKiB", dev->win_size >> 10);
/* Get write protect status */
CS_CHECK(GetStatus, link->handle, &status);
CS_CHECK(GetStatus, pcmcia_get_status(link->handle, &status));
DEBUG(2, "status value: 0x%x window handle = 0x%8.8lx",
status.CardState, (unsigned long)link->win);
dev->win_base = ioremap(req.Base, req.Size);
......@@ -586,7 +585,7 @@ static void pcmciamtd_config(dev_link_t *link)
dev->pcmcia_map.map_priv_2 = (unsigned long)link->win;
DEBUG(2, "Getting configuration");
CS_CHECK(GetConfigurationInfo, link->handle, &t);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link->handle, &t));
DEBUG(2, "Vcc = %d Vpp1 = %d Vpp2 = %d", t.Vcc, t.Vpp1, t.Vpp2);
dev->vpp = (vpp) ? vpp : t.Vpp1;
link->conf.Attributes = 0;
......@@ -608,7 +607,7 @@ static void pcmciamtd_config(dev_link_t *link)
link->conf.ConfigIndex = 0;
link->conf.Present = t.Present;
DEBUG(2, "Setting Configuration");
ret = CardServices(RequestConfiguration, link->handle, &link->conf);
ret = pcmcia_request_configuration(link->handle, &link->conf);
if(ret != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, ret);
}
......@@ -757,7 +756,7 @@ static void pcmciamtd_detach(dev_link_t *link)
if (link->handle) {
int ret;
DEBUG(2, "Deregistering with card services");
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -804,7 +803,7 @@ static dev_link_t *pcmciamtd_attach(void)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
DEBUG(2, "Calling RegisterClient");
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
pcmciamtd_detach(link);
......
......@@ -151,7 +151,7 @@ static dev_link_t *parport_attach(void)
client_reg.event_handler = &parport_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
parport_detach(link);
......@@ -187,7 +187,7 @@ static void parport_detach(dev_link_t *link)
parport_cs_release(link);
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -206,11 +206,8 @@ static void parport_detach(dev_link_t *link)
======================================================================*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
void parport_config(dev_link_t *link)
{
......@@ -231,9 +228,9 @@ void parport_config(dev_link_t *link)
tuple.TupleOffset = 0; tuple.TupleDataMax = 255;
tuple.Attributes = 0;
tuple.DesiredTuple = CISTPL_CONFIG;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
link->conf.Present = parse.config.rmask[0];
......@@ -241,14 +238,15 @@ void parport_config(dev_link_t *link)
link->state |= DEV_CONFIG;
/* Not sure if this is right... look up the current Vcc */
CS_CHECK(GetConfigurationInfo, handle, &conf);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &conf));
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
tuple.Attributes = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
if ((cfg->io.nwin > 0) || (dflt.io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt.io;
......@@ -262,18 +260,19 @@ void parport_config(dev_link_t *link)
link->io.BasePort2 = io->win[1].base;
link->io.NumPorts2 = io->win[1].len;
}
CFG_CHECK(RequestIO, link->handle, &link->io);
if (pcmcia_request_io(link->handle, &link->io) != 0)
goto next_entry;
/* If we've got this far, we're done */
break;
}
next_entry:
if (cfg->flags & CISTPL_CFTABLE_DEFAULT) dflt = *cfg;
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
CS_CHECK(RequestIRQ, handle, &link->irq);
CS_CHECK(RequestConfiguration, handle, &link->conf);
CS_CHECK(RequestIRQ, pcmcia_request_irq(handle, &link->irq));
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(handle, &link->conf));
release_region(link->io.BasePort1, link->io.NumPorts1);
if (link->io.NumPorts2)
......@@ -335,9 +334,9 @@ void parport_cs_release(dev_link_t *link)
info->ndev = 0;
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
......@@ -372,14 +371,14 @@ int parport_event(event_t event, int priority,
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (DEV_OK(link))
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
return 0;
......
......@@ -2289,149 +2289,6 @@ int pcmcia_report_error(client_handle_t handle, error_info_t *err)
return CS_SUCCESS;
} /* report_error */
/*====================================================================*/
int CardServices(int func, void *a1, void *a2, void *a3)
{
#ifdef PCMCIA_DEBUG
if (pc_debug > 2) {
int i;
for (i = 0; i < SERVICE_COUNT; i++)
if (service_table[i].key == func) break;
if (i < SERVICE_COUNT)
printk(KERN_DEBUG "cs: CardServices(%s, 0x%p, 0x%p)\n",
service_table[i].msg, a1, a2);
else
printk(KERN_DEBUG "cs: CardServices(Unknown func %d, "
"0x%p, 0x%p)\n", func, a1, a2);
}
#endif
switch (func) {
case AccessConfigurationRegister:
return pcmcia_access_configuration_register(a1, a2); break;
case AdjustResourceInfo:
return pcmcia_adjust_resource_info(a1, a2); break;
case CheckEraseQueue:
return pcmcia_check_erase_queue(a1); break;
case CloseMemory:
return pcmcia_close_memory(a1); break;
case CopyMemory:
return pcmcia_copy_memory(a1, a2); break;
case DeregisterClient:
return pcmcia_deregister_client(a1); break;
case DeregisterEraseQueue:
return pcmcia_deregister_erase_queue(a1); break;
case GetFirstClient:
return pcmcia_get_first_client(a1, a2); break;
case GetCardServicesInfo:
return pcmcia_get_card_services_info(a1); break;
case GetConfigurationInfo:
return pcmcia_get_configuration_info(a1, a2); break;
case GetNextClient:
return pcmcia_get_next_client(a1, a2); break;
case GetFirstRegion:
return pcmcia_get_first_region(a1, a2); break;
case GetFirstTuple:
return pcmcia_get_first_tuple(a1, a2); break;
case GetNextRegion:
return pcmcia_get_next_region(a1, a2); break;
case GetNextTuple:
return pcmcia_get_next_tuple(a1, a2); break;
case GetStatus:
return pcmcia_get_status(a1, a2); break;
case GetTupleData:
return pcmcia_get_tuple_data(a1, a2); break;
case MapMemPage:
return pcmcia_map_mem_page(a1, a2); break;
case ModifyConfiguration:
return pcmcia_modify_configuration(a1, a2); break;
case ModifyWindow:
return pcmcia_modify_window(a1, a2); break;
case OpenMemory:
/* return pcmcia_open_memory(a1, a2); */
{
memory_handle_t m;
int ret = pcmcia_open_memory(a1, a2, &m);
*(memory_handle_t *)a1 = m;
return ret;
}
break;
case ParseTuple:
return pcmcia_parse_tuple(a1, a2, a3); break;
case ReadMemory:
return pcmcia_read_memory(a1, a2, a3); break;
case RegisterClient:
return pcmcia_register_client(a1, a2); break;
case RegisterEraseQueue:
{
eraseq_handle_t w;
int ret = pcmcia_register_erase_queue(a1, a2, &w);
*(eraseq_handle_t *)a1 = w;
return ret;
}
break;
/* return pcmcia_register_erase_queue(a1, a2); break; */
return pcmcia_register_mtd(a1, a2); break;
case ReleaseConfiguration:
return pcmcia_release_configuration(a1); break;
case ReleaseIO:
return pcmcia_release_io(a1, a2); break;
case ReleaseIRQ:
return pcmcia_release_irq(a1, a2); break;
case ReleaseWindow:
return pcmcia_release_window(a1); break;
case RequestConfiguration:
return pcmcia_request_configuration(a1, a2); break;
case RequestIO:
return pcmcia_request_io(a1, a2); break;
case RequestIRQ:
return pcmcia_request_irq(a1, a2); break;
case RequestWindow:
{
window_handle_t w;
int ret = pcmcia_request_window(a1, a2, &w);
*(window_handle_t *)a1 = w;
return ret;
}
break;
case ResetCard:
return pcmcia_reset_card(a1, a2); break;
case SetEventMask:
return pcmcia_set_event_mask(a1, a2); break;
case ValidateCIS:
return pcmcia_validate_cis(a1, a2); break;
case WriteMemory:
return pcmcia_write_memory(a1, a2, a3); break;
case BindDevice:
return pcmcia_bind_device(a1); break;
case BindMTD:
return pcmcia_bind_mtd(a1); break;
case ReportError:
return pcmcia_report_error(a1, a2); break;
case SuspendCard:
return pcmcia_suspend_card(a1, a2); break;
case ResumeCard:
return pcmcia_resume_card(a1, a2); break;
case EjectCard:
return pcmcia_eject_card(a1, a2); break;
case InsertCard:
return pcmcia_insert_card(a1, a2); break;
case ReplaceCIS:
return pcmcia_replace_cis(a1, a2); break;
case GetFirstWindow:
return pcmcia_get_first_window(a1, a2); break;
case GetNextWindow:
return pcmcia_get_next_window(a1, a2); break;
case GetMemPage:
return pcmcia_get_mem_page(a1, a2); break;
default:
return CS_UNSUPPORTED_FUNCTION; break;
}
} /* CardServices */
/*======================================================================
OS-specific module glue goes here
......@@ -2489,7 +2346,6 @@ EXPORT_SYMBOL(pcmcia_validate_cis);
EXPORT_SYMBOL(pcmcia_write_memory);
EXPORT_SYMBOL(dead_socket);
EXPORT_SYMBOL(CardServices);
EXPORT_SYMBOL(MTDHelperEntry);
EXPORT_SYMBOL(pcmcia_parse_events);
......
......@@ -153,7 +153,7 @@ static dev_link_t *aha152x_attach(void)
CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
aha152x_detach(link);
......@@ -181,7 +181,7 @@ static void aha152x_detach(dev_link_t *link)
aha152x_release_cs(link);
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, free bits */
*linkp = link->next;
......@@ -191,11 +191,8 @@ static void aha152x_detach(dev_link_t *link)
/*====================================================================*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void aha152x_config_cs(dev_link_t *link)
{
......@@ -214,19 +211,20 @@ static void aha152x_config_cs(dev_link_t *link)
tuple.TupleData = tuple_data;
tuple.TupleDataMax = 64;
tuple.TupleOffset = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
/* Configure card */
link->state |= DEV_CONFIG;
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
/* For New Media T&J, look for a SCSI window */
if (parse.cftable_entry.io.win[0].len >= 0x20)
link->io.BasePort1 = parse.cftable_entry.io.win[0].base;
......@@ -236,15 +234,15 @@ static void aha152x_config_cs(dev_link_t *link)
if ((parse.cftable_entry.io.nwin > 0) &&
(link->io.BasePort1 < 0xffff)) {
link->conf.ConfigIndex = parse.cftable_entry.index;
i = CardServices(RequestIO, handle, &link->io);
i = pcmcia_request_io(handle, &link->io);
if (i == CS_SUCCESS) break;
}
next_entry:
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
CS_CHECK(RequestIRQ, handle, &link->irq);
CS_CHECK(RequestConfiguration, handle, &link->conf);
CS_CHECK(RequestIRQ, pcmcia_request_irq(handle, &link->irq));
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(handle, &link->conf));
/* A bad hack... */
release_region(link->io.BasePort1, link->io.NumPorts1);
......@@ -291,9 +289,9 @@ static void aha152x_release_cs(dev_link_t *link)
scsi_remove_host(info->host);
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
scsi_unregister(info->host);
......@@ -322,7 +320,7 @@ static int aha152x_event(event_t event, int priority,
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
......@@ -330,7 +328,7 @@ static int aha152x_event(event_t event, int priority,
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG) {
Scsi_Cmnd tmp;
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
tmp.device->host = info->host;
aha152x_host_reset(&tmp);
}
......
......@@ -142,7 +142,7 @@ static dev_link_t *fdomain_attach(void)
CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
fdomain_detach(link);
......@@ -170,7 +170,7 @@ static void fdomain_detach(dev_link_t *link)
fdomain_release(link);
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, free bits */
*linkp = link->next;
......@@ -180,11 +180,8 @@ static void fdomain_detach(dev_link_t *link)
/*====================================================================*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void fdomain_config(dev_link_t *link)
{
......@@ -203,29 +200,30 @@ static void fdomain_config(dev_link_t *link)
tuple.TupleData = tuple_data;
tuple.TupleDataMax = 64;
tuple.TupleOffset = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
/* Configure card */
link->state |= DEV_CONFIG;
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
link->conf.ConfigIndex = parse.cftable_entry.index;
link->io.BasePort1 = parse.cftable_entry.io.win[0].base;
i = CardServices(RequestIO, handle, &link->io);
i = pcmcia_request_io(handle, &link->io);
if (i == CS_SUCCESS) break;
next_entry:
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
CS_CHECK(RequestIRQ, handle, &link->irq);
CS_CHECK(RequestConfiguration, handle, &link->conf);
CS_CHECK(RequestIRQ, pcmcia_request_irq(handle, &link->irq));
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(handle, &link->conf));
/* A bad hack... */
release_region(link->io.BasePort1, link->io.NumPorts1);
......@@ -271,9 +269,9 @@ static void fdomain_release(dev_link_t *link)
scsi_remove_host(info->host);
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
scsi_unregister(info->host);
......@@ -304,14 +302,14 @@ static int fdomain_event(event_t event, int priority,
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG) {
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
fdomain_16x0_bus_reset(NULL);
}
break;
......
......@@ -1681,7 +1681,7 @@ static dev_link_t *nsp_cs_attach(void)
client_reg.event_handler = &nsp_cs_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
nsp_cs_detach(link);
......@@ -1721,7 +1721,7 @@ static void nsp_cs_detach(dev_link_t *link)
/* Break the link with Card Services */
if (link->handle) {
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
}
/* Unlink device structure, free bits */
......@@ -1737,10 +1737,8 @@ static void nsp_cs_detach(dev_link_t *link)
is received, to configure the PCMCIA socket, and to make the
ethernet device available to the system.
======================================================================*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn),args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
/*====================================================================*/
static void nsp_cs_config(dev_link_t *link)
{
......@@ -1768,9 +1766,9 @@ static void nsp_cs_config(dev_link_t *link)
tuple.TupleData = tuple_data;
tuple.TupleDataMax = sizeof(tuple_data);
tuple.TupleOffset = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
link->conf.Present = parse.config.rmask[0];
......@@ -1778,16 +1776,17 @@ static void nsp_cs_config(dev_link_t *link)
link->state |= DEV_CONFIG;
/* Look up the current Vcc */
CS_CHECK(GetConfigurationInfo, handle, &conf);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &conf));
link->conf.Vcc = conf.Vcc;
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
cistpl_cftable_entry_t *cfg = &(parse.cftable_entry);
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
if (cfg->flags & CISTPL_CFTABLE_DEFAULT) { dflt = *cfg; }
if (cfg->index == 0) { goto next_entry; }
......@@ -1842,7 +1841,8 @@ static void nsp_cs_config(dev_link_t *link)
link->io.NumPorts2 = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
CFG_CHECK(RequestIO, link->handle, &link->io);
if (pcmcia_request_io(link->handle, &link->io) != 0)
goto next_entry;
}
if ((cfg->mem.nwin > 0) || (dflt.mem.nwin > 0)) {
......@@ -1856,10 +1856,11 @@ static void nsp_cs_config(dev_link_t *link)
req.Size = 0x1000;
}
req.AccessSpeed = 0;
link->win = (window_handle_t)link->handle;
CFG_CHECK(RequestWindow, &link->win, &req);
if (pcmcia_request_window(&link->handle, &req, &link->win) != 0)
goto next_entry;
map.Page = 0; map.CardOffset = mem->win[0].card_addr;
CFG_CHECK(MapMemPage, link->win, &map);
if (pcmcia_map_mem_page(link->win, &map) != 0)
goto next_entry;
data->MmioAddress = (unsigned long)ioremap_nocache(req.Base, req.Size);
data->MmioLength = req.Size;
......@@ -1871,15 +1872,15 @@ static void nsp_cs_config(dev_link_t *link)
nsp_dbg(NSP_DEBUG_INIT, "next");
if (link->io.NumPorts1) {
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
}
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
if (link->conf.Attributes & CONF_ENABLE_IRQ) {
CS_CHECK(RequestIRQ, link->handle, &link->irq);
CS_CHECK(RequestIRQ, pcmcia_request_irq(link->handle, &link->irq));
}
CS_CHECK(RequestConfiguration, handle, &link->conf);
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(handle, &link->conf));
if (free_ports) {
if (link->io.BasePort1) {
......@@ -2007,7 +2008,6 @@ static void nsp_cs_config(dev_link_t *link)
return;
} /* nsp_cs_config */
#undef CS_CHECK
#undef CFG_CHECK
/*======================================================================
......@@ -2042,14 +2042,14 @@ static void nsp_cs_release(dev_link_t *link)
if (data != NULL) {
iounmap((void *)(data->MmioAddress));
}
CardServices(ReleaseWindow, link->win);
pcmcia_release_window(link->win);
}
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
if (link->io.NumPorts1) {
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_io(link->handle, &link->io);
}
if (link->irq.AssignedIRQ) {
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_irq(link->handle, &link->irq);
}
link->state &= ~DEV_CONFIG;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,2))
......@@ -2119,7 +2119,7 @@ static int nsp_cs_event(event_t event,
info->stop = 1;
if (link->state & DEV_CONFIG) {
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
}
break;
......@@ -2130,7 +2130,7 @@ static int nsp_cs_event(event_t event,
case CS_EVENT_CARD_RESET:
nsp_dbg(NSP_DEBUG_INIT, "event: reset");
if (link->state & DEV_CONFIG) {
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
}
info->stop = 0;
......@@ -2177,7 +2177,7 @@ static int __init nsp_cs_init(void)
servinfo_t serv;
nsp_msg(KERN_INFO, "loading...");
CardServices(GetCardServicesInfo, &serv);
pcmcia_get_card_services_info(&serv);
if (serv.Revision != CS_RELEASE_CODE) {
nsp_msg(KERN_DEBUG, "Card Services release does not match!");
return -EINVAL;
......
......@@ -457,7 +457,7 @@ static inline struct Scsi_Host *scsi_host_hn_get(unsigned short hostno)
static void cs_error(client_handle_t handle, int func, int ret)
{
error_info_t err = { func, ret };
CardServices(ReportError, handle, &err);
pcmcia_report_error(handle, &err);
}
/* scatter-gather table */
......
......@@ -140,7 +140,7 @@ static dev_link_t *qlogic_attach(void)
client_reg.EventMask = CS_EVENT_RESET_REQUEST | CS_EVENT_CARD_RESET | CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
qlogic_detach(link);
......@@ -169,7 +169,7 @@ static void qlogic_detach(dev_link_t * link)
qlogic_release(link);
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
/* Unlink device structure, free bits */
*linkp = link->next;
......@@ -179,11 +179,8 @@ static void qlogic_detach(dev_link_t * link)
/*====================================================================*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void qlogic_config(dev_link_t * link)
{
......@@ -201,37 +198,38 @@ static void qlogic_config(dev_link_t * link)
tuple.TupleDataMax = 64;
tuple.TupleOffset = 0;
tuple.DesiredTuple = CISTPL_CONFIG;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
tuple.DesiredTuple = CISTPL_MANFID;
if ((CardServices(GetFirstTuple, handle, &tuple) == CS_SUCCESS) && (CardServices(GetTupleData, handle, &tuple) == CS_SUCCESS))
if ((pcmcia_get_first_tuple(handle, &tuple) == CS_SUCCESS) && (pcmcia_get_tuple_data(handle, &tuple) == CS_SUCCESS))
info->manf_id = le16_to_cpu(tuple.TupleData[0]);
/* Configure card */
link->state |= DEV_CONFIG;
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
link->conf.ConfigIndex = parse.cftable_entry.index;
link->io.BasePort1 = parse.cftable_entry.io.win[0].base;
link->io.NumPorts1 = parse.cftable_entry.io.win[0].len;
if (link->io.BasePort1 != 0) {
i = CardServices(RequestIO, handle, &link->io);
i = pcmcia_request_io(handle, &link->io);
if (i == CS_SUCCESS)
break;
}
next_entry:
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
CS_CHECK(RequestIRQ, handle, &link->irq);
CS_CHECK(RequestConfiguration, handle, &link->conf);
CS_CHECK(RequestIRQ, pcmcia_request_irq(handle, &link->irq));
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(handle, &link->conf));
if ((info->manf_id == MANFID_MACNICA) || (info->manf_id == MANFID_PIONEER) || (info->manf_id == 0x0098)) {
/* set ATAcmd */
......@@ -284,9 +282,9 @@ static void qlogic_release(dev_link_t *link)
scsi_remove_host(info->host);
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
scsi_unregister(info->host);
......@@ -316,7 +314,7 @@ static int qlogic_event(event_t event, int priority, event_callback_args_t * arg
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
......@@ -324,7 +322,7 @@ static int qlogic_event(event_t event, int priority, event_callback_args_t * arg
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG) {
scsi_info_t *info = link->priv;
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
if ((info->manf_id == MANFID_MACNICA) || (info->manf_id == MANFID_PIONEER) || (info->manf_id == 0x0098)) {
outb(0x80, link->io.BasePort1 + 0xd);
outb(0x24, link->io.BasePort1 + 0x9);
......
......@@ -77,7 +77,7 @@ static dev_link_t *ixj_attach(void)
client_reg.event_handler = &ixj_event;
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
ixj_detach(link);
......@@ -100,7 +100,7 @@ static void ixj_detach(dev_link_t * link)
if (link->state & DEV_CONFIG)
ixj_cs_release(link);
if (link->handle) {
ret = CardServices(DeregisterClient, link->handle);
ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
......@@ -110,11 +110,8 @@ static void ixj_detach(dev_link_t * link)
kfree(link);
}
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void ixj_get_serial(dev_link_t * link, IXJ * j)
{
......@@ -130,8 +127,8 @@ static void ixj_get_serial(dev_link_t * link, IXJ * j)
tuple.TupleDataMax = 80;
tuple.Attributes = 0;
tuple.DesiredTuple = CISTPL_VERS_1;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
str = (char *) buf;
printk("PCMCIA Version %d.%d\n", str[0], str[1]);
str += 2;
......@@ -202,19 +199,20 @@ static void ixj_config(dev_link_t * link)
tuple.TupleDataMax = 255;
tuple.Attributes = 0;
tuple.DesiredTuple = CISTPL_CONFIG;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
link->conf.Present = parse.config.rmask[0];
link->state |= DEV_CONFIG;
CS_CHECK(GetConfigurationInfo, handle, &conf);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &conf));
tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
tuple.Attributes = 0;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
while (1) {
CFG_CHECK(GetTupleData, handle, &tuple);
CFG_CHECK(ParseTuple, handle, &tuple, &parse);
if (pcmcia_get_tuple_data(handle, &tuple) != 0 ||
pcmcia_parse_tuple(handle, &tuple, &parse) != 0)
goto next_entry;
if ((cfg->io.nwin > 0) || (dflt.io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt.io;
link->conf.ConfigIndex = cfg->index;
......@@ -224,17 +222,18 @@ static void ixj_config(dev_link_t * link)
link->io.BasePort2 = io->win[1].base;
link->io.NumPorts2 = io->win[1].len;
}
CFG_CHECK(RequestIO, link->handle, &link->io);
if (pcmcia_request_io(link->handle, &link->io) != 0)
goto next_entry;
/* If we've got this far, we're done */
break;
}
next_entry:
if (cfg->flags & CISTPL_CFTABLE_DEFAULT)
dflt = *cfg;
CS_CHECK(GetNextTuple, handle, &tuple);
CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(handle, &tuple));
}
CS_CHECK(RequestConfiguration, handle, &link->conf);
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(handle, &link->conf));
/*
* Register the card with the core.
......@@ -258,8 +257,8 @@ static void ixj_cs_release(dev_link_t *link)
DEBUG(0, "ixj_cs_release(0x%p)\n", link);
info->ndev = 0;
link->dev = NULL;
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
link->state &= ~DEV_CONFIG;
}
......@@ -284,14 +283,14 @@ static int ixj_event(event_t event, int priority, event_callback_args_t * args)
/* Fall through... */
case CS_EVENT_RESET_PHYSICAL:
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
link->state &= ~DEV_SUSPEND;
/* Fall through... */
case CS_EVENT_CARD_RESET:
if (DEV_OK(link))
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
break;
}
return 0;
......
......@@ -421,12 +421,6 @@ enum service {
GetFirstWindow, GetNextWindow, GetMemPage
};
#ifdef IN_CARD_SERVICES
extern int CardServices(int func, void *a1, void *a2, void *a3);
#else
extern int CardServices(int func, ...);
#endif
int pcmcia_access_configuration_register(client_handle_t handle, conf_reg_t *reg);
int pcmcia_bind_device(bind_req_t *req);
int pcmcia_bind_mtd(mtd_bind_t *req);
......
......@@ -38,9 +38,9 @@ static void vxpocket_release(dev_link_t *link)
{
if (link->state & DEV_CONFIG) {
/* release cs resources */
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
link->state &= ~DEV_CONFIG;
}
}
......@@ -58,7 +58,7 @@ static int snd_vxpocket_free(vx_core_t *chip)
/* Break the link with Card Services */
if (link->handle)
CardServices(DeregisterClient, link->handle);
pcmcia_deregister_client(link->handle);
hw = vxp->hw_entry;
if (hw)
......@@ -170,7 +170,7 @@ dev_link_t *snd_vxpocket_attach(struct snd_vxp_entry *hw)
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
ret = CardServices(RegisterClient, &link->handle, &client_reg);
ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != CS_SUCCESS) {
cs_error(link->handle, RegisterClient, ret);
snd_vxpocket_detach(hw, link);
......@@ -253,8 +253,8 @@ void snd_vxpocket_detach_all(struct snd_vxp_entry *hw)
* configuration callback
*/
#define CS_CHECK(fn, args...) \
while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void vxpocket_config(dev_link_t *link)
{
......@@ -274,21 +274,21 @@ static void vxpocket_config(dev_link_t *link)
tuple.TupleDataMax = sizeof(buf);
tuple.TupleOffset = 0;
tuple.DesiredTuple = CISTPL_CONFIG;
CS_CHECK(GetFirstTuple, handle, &tuple);
CS_CHECK(GetTupleData, handle, &tuple);
CS_CHECK(ParseTuple, handle, &tuple, &parse);
CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(handle, &tuple));
CS_CHECK(GetTupleData, pcmcia_get_tuple_data(handle, &tuple));
CS_CHECK(ParseTuple, pcmcia_parse_tuple(handle, &tuple, &parse));
link->conf.ConfigBase = parse.config.base;
link->conf.ConfigIndex = 1;
CS_CHECK(GetConfigurationInfo, handle, &conf);
CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(handle, &conf));
link->conf.Vcc = conf.Vcc;
/* Configure card */
link->state |= DEV_CONFIG;
CS_CHECK(RequestIO, handle, &link->io);
CS_CHECK(RequestIRQ, link->handle, &link->irq);
CS_CHECK(RequestConfiguration, link->handle, &link->conf);
CS_CHECK(RequestIO, pcmcia_request_io(handle, &link->io));
CS_CHECK(RequestIRQ, pcmcia_request_irq(link->handle, &link->irq));
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link->handle, &link->conf));
if (snd_vxpocket_assign_resources(chip, link->io.BasePort1, link->irq.AssignedIRQ) < 0)
goto failed;
......@@ -300,9 +300,9 @@ static void vxpocket_config(dev_link_t *link)
cs_failed:
cs_error(link->handle, last_fn, last_ret);
failed:
CardServices(ReleaseConfiguration, link->handle);
CardServices(ReleaseIO, link->handle, &link->io);
CardServices(ReleaseIRQ, link->handle, &link->irq);
pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io);
pcmcia_release_irq(link->handle, &link->irq);
}
......@@ -339,7 +339,7 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar
case CS_EVENT_RESET_PHYSICAL:
snd_printdd(KERN_DEBUG "RESET_PHYSICAL\n");
if (link->state & DEV_CONFIG)
CardServices(ReleaseConfiguration, link->handle);
pcmcia_release_configuration(link->handle);
break;
case CS_EVENT_PM_RESUME:
snd_printdd(KERN_DEBUG "RESUME\n");
......@@ -350,7 +350,7 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar
if (DEV_OK(link)) {
//struct snd_vxpocket *vxp = (struct snd_vxpocket *)chip;
snd_printdd(KERN_DEBUG "requestconfig...\n");
CardServices(RequestConfiguration, link->handle, &link->conf);
pcmcia_request_configuration(link->handle, &link->conf);
if (chip) {
snd_printdd(KERN_DEBUG "calling snd_vx_resume\n");
snd_vx_resume(chip);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment