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