diff -u -r linux-wlan-ng-0.2.1-pre16.vanilla/src/prism2/driver/hfa384x.c linux-wlan-ng-0.2.1-pre16/src/prism2/driver/hfa384x.c
--- linux-wlan-ng-0.2.1-pre16.vanilla/src/prism2/driver/hfa384x.c	2003-11-19 15:47:36.000000000 -0200
+++ linux-wlan-ng-0.2.1-pre16/src/prism2/driver/hfa384x.c	2004-01-22 16:42:52.000000000 -0200
@@ -2984,8 +2984,7 @@
 	reg.Function = 0; 
 	reg.Action = CS_READ; 
 	reg.Offset = CISREG_COR;
-	result = CardServices(
-			AccessConfigurationRegister,
+	result = pcmcia_access_configuration_register(
 			((dev_link_t*)hw->membase)->handle,
 			&reg);
 	if (result != CS_SUCCESS ) {
@@ -3000,8 +2999,7 @@
 	reg.Value |= BIT7;
 	reg.Action = CS_WRITE;
 	reg.Offset = CISREG_COR;
-	result = CardServices(
-			AccessConfigurationRegister,
+	result = pcmcia_access_configuration_register(
 			((dev_link_t*)hw->membase)->handle,
 			&reg);
 	if (result != CS_SUCCESS ) {
@@ -3018,8 +3016,7 @@
 		reg.Value = genesis;
 		reg.Action = CS_WRITE;
 		reg.Offset = CISREG_CCSR;
-		result = CardServices(
-			AccessConfigurationRegister,
+		result = pcmcia_access_configuration_register(
 			((dev_link_t*)hw->membase)->handle,
 			&reg);
 		if (result != CS_SUCCESS ) {
@@ -3037,8 +3034,7 @@
 	reg.Value &= ~BIT7;
 	reg.Action = CS_WRITE;
 	reg.Offset = CISREG_COR;
-	result = CardServices(
-			AccessConfigurationRegister,
+	result = pcmcia_access_configuration_register(
 			((dev_link_t*)hw->membase)->handle,
 			&reg);
 	if (result != CS_SUCCESS ) {
@@ -3056,8 +3052,7 @@
 	reg.Value = corsave;
 	reg.Action = CS_WRITE;
 	reg.Offset = CISREG_COR;
-	result = CardServices(
-			AccessConfigurationRegister,
+	result = pcmcia_access_configuration_register(
 			((dev_link_t*)hw->membase)->handle,
 			&reg);
 	if (result != CS_SUCCESS ) {
diff -u -r linux-wlan-ng-0.2.1-pre16.vanilla/src/prism2/driver/prism2sta.c linux-wlan-ng-0.2.1-pre16/src/prism2/driver/prism2sta.c
--- linux-wlan-ng-0.2.1-pre16.vanilla/src/prism2/driver/prism2sta.c	2003-12-10 15:26:50.000000000 -0200
+++ linux-wlan-ng-0.2.1-pre16/src/prism2/driver/prism2sta.c	2004-01-22 16:41:19.000000000 -0200
@@ -680,10 +680,10 @@
 static void cs_error(client_handle_t handle, int func, int ret)
 {
 #if CS_RELEASE_CODE < 0x2911
-	CardServices(ReportError, dev_info, (void *)func, (void *)ret);
+	pcmcia_report_error(dev_info, (void *)func, (void *)ret);
 #else
 	error_info_t err = { func, ret };
-	CardServices(ReportError, handle, &err);
+	pcmcia_report_error(handle, &err);
 #endif
 }
 #else // kernel_version
@@ -2870,7 +2870,7 @@
 	client_reg.Version = 0x0210;
 	client_reg.event_callback_args.client_data = link;
 
-	result = CardServices(RegisterClient, &link->handle, &client_reg);
+	result = pcmcia_register_client(&link->handle, &client_reg);
 	if (result != 0) {
 		cs_error(link->handle, RegisterClient, result);
 		prism2sta_detach(link);
@@ -2961,7 +2961,7 @@
 		
 		/* Tell Card Services we're not around any more */
 		if (link->handle) {
-			CardServices(DeregisterClient, link->handle);
+			pcmcia_deregister_client(link->handle);
 		}	
 
 		/* Unlink device structure, free bits */
@@ -3020,18 +3020,21 @@
 * Call context:
 *	May be called from a timer.  Don't block!
 ----------------------------------------------------------------*/
-#define CS_CHECK(fn, args...) \
-while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed;
+#define CS_CHECK(fn_number, fn, args...) \
+do { last_fn = fn_number; \
+	if ((last_ret = fn(args)) != 0) goto cs_failed; \
+} while(0)
 
 #if defined(WLAN_INCLUDE_DEBUG)
-#define CFG_CHECK(fn, args...) \
-if ((last_ret=CardServices(last_fn=(fn), args))!=0) {  \
+#define CFG_CHECK(fn_number, fn, args...) \
+{ last_fn = fn_number \
+if ((last_ret=fn(args))!=0) {  \
 	WLAN_LOG_DEBUG(1,"CFG_CHECK failed\n"); \
 	cs_error(link->handle, last_fn, last_ret); \
 	goto next_entry; \
 }
 #else
-#define CFG_CHECK(fn, args...) if (CardServices(fn, args)!=0) goto next_entry;
+#define CFG_CHECK(fn_number, fn, args...) if (fn(args)!=0) goto next_entry;
 #endif 
 
 void prism2sta_config(dev_link_t *link)
@@ -3062,9 +3065,9 @@
 	tuple.TupleData = buf;
 	tuple.TupleDataMax = sizeof(buf);
 	tuple.TupleOffset = 0;
-	CS_CHECK(GetFirstTuple, handle, &tuple);
-	CS_CHECK(GetTupleData, handle, &tuple);
-	CS_CHECK(ParseTuple, handle, &tuple, &parse);
+	CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple, handle, &tuple);
+	CS_CHECK(GetTupleData, pcmcia_get_tuple_data, handle, &tuple);
+	CS_CHECK(ParseTuple, pcmcia_parse_tuple, handle, &tuple, &parse);
 	link->conf.ConfigBase = parse.config.base;
 	link->conf.Present = parse.config.rmask[0];
 	
@@ -3072,16 +3075,18 @@
 	link->state |= DEV_CONFIG;
 
 	/* Acquire the current socket config (need Vcc setting) */
-	CS_CHECK(GetConfigurationInfo, handle, &socketconf);
+	CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info, handle,
+		&socketconf);
 
 	/* Loop through the config table entries until we find one that works */
 	/* Assumes a complete and valid CIS */
 	tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
-	CS_CHECK(GetFirstTuple, handle, &tuple);
+	CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple, handle, &tuple);
 	while (1) {
 		cistpl_cftable_entry_t *cfg = &(parse.cftable_entry);
-		CFG_CHECK(GetTupleData, handle, &tuple);
-		CFG_CHECK(ParseTuple, handle, &tuple, &parse);
+		CFG_CHECK(GetTupleData, pcmcia_get_tuple_data, handle, &tuple);
+		CFG_CHECK(ParseTuple, pcmcia_parse_tuple, handle, &tuple,
+			&parse);
 
 		if (cfg->index == 0) goto next_entry;
 		link->conf.ConfigIndex = cfg->index;
@@ -3176,7 +3181,8 @@
 		}
 
 		/* This reserves IO space but doesn't actually enable it */
-		CFG_CHECK(RequestIO, link->handle, &link->io);
+		CFG_CHECK(RequestIO, pcmcia_request_io, link->handle,
+			&link->io);
 
 		/* If we got this far, we're cool! */
 		break;
@@ -3184,7 +3190,7 @@
 next_entry:
 		if (cfg->flags & CISTPL_CFTABLE_DEFAULT)
 			dflt = *cfg;
-		CS_CHECK(GetNextTuple, handle, &tuple);
+		CS_CHECK(GetNextTuple, pcmcia_get_next_tuple, handle, &tuple);
 	}
 
 	/* Allocate an interrupt line.  Note that this does not assign a */
@@ -3201,13 +3207,14 @@
 				link->irq.IRQInfo2 |= 1 << irq_list[i];
 		link->irq.Handler = hfa384x_interrupt;
 		link->irq.Instance = wlandev;
-		CS_CHECK(RequestIRQ, link->handle, &link->irq);
+		CS_CHECK(RequestIRQ, pcmcia_request_irq, link->handle, &link->irq);
 	}
 
 	/* This actually configures the PCMCIA socket -- setting up */
 	/* the I/O windows and the interrupt mapping, and putting the */
 	/* card and host interface into "Memory and IO" mode. */
-	CS_CHECK(RequestConfiguration, link->handle, &link->conf);
+	CS_CHECK(RequestConfiguration, pcmcia_request_configuration, link->handle,
+		&link->conf);
 
 	/* Fill the netdevice with this info */
 	wlandev->netdev->irq = link->irq.AssignedIRQ;
@@ -3305,9 +3312,9 @@
                 return;
         }
 
-        CardServices(ReleaseConfiguration, link->handle);
-        CardServices(ReleaseIO, link->handle, &link->io);
-        CardServices(ReleaseIRQ, link->handle, &link->irq);
+        pcmcia_release_configuration(link->handle);
+        pcmcia_release_io(link->handle, &link->io);
+        pcmcia_release_irq(link->handle, &link->irq);
 
         link->state &= ~(DEV_CONFIG | DEV_RELEASE_PENDING);
 
@@ -3442,7 +3449,7 @@
 		if (link->state & DEV_CONFIG)
 		{
 			prism2sta_ifstate(wlandev, P80211ENUM_ifstate_disable);
-			CardServices(ReleaseConfiguration, link->handle);
+			pcmcia_release_configuration(link->handle);
 		}
 		break;
 
@@ -3451,8 +3458,7 @@
 		link->state &= ~DEV_SUSPEND;
 		if (link->state & DEV_CONFIG)
 		{
-			CardServices(
-				RequestConfiguration, 
+			pcmcia_request_configuration(
 				link->handle, &link->conf);
 		}
 		break;
@@ -4263,7 +4269,7 @@
 #if (WLAN_HOSTIF == WLAN_PCMCIA)
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,68))
-	CardServices(GetCardServicesInfo, &serv);
+	pcmcia_get_card_services_info(&serv);
 	if ( serv.Revision != CS_RELEASE_CODE )
 	{
 		printk(KERN_NOTICE"%s: CardServices release does not match!\n", dev_info);

