int pcmcia_get_status(client_handle_t handle, cs_status_t *status)
 {
-       struct pcmcia_socket *s;
-       s = SOCKET(handle);
-       return pccard_get_status(s, handle->func, status);
+       return pccard_get_status(handle->socket, handle->func, status);
 }
 EXPORT_SYMBOL(pcmcia_get_status);
 
        config_t *c;
 
        s = p_dev->socket;
-       c = CONFIG(p_dev);
+       c = p_dev->function_config;
+
        if (!(s->state & SOCKET_PRESENT))
                return CS_NO_CARD;
        if (!(c->state & CONFIG_LOCKED))
        p_dev->state &= ~CLIENT_CONFIG_LOCKED;
 
        if (!(p_dev->state & CLIENT_STALE)) {
-               config_t *c = CONFIG(p_dev);
+               config_t *c = p_dev->function_config;
                if (--(s->lock_count) == 0) {
                        s->socket.flags = SS_OUTPUT_ENA;   /* Is this correct? */
                        s->socket.Vpp = 0;
        p_dev->state &= ~CLIENT_IO_REQ;
 
        if (!(p_dev->state & CLIENT_STALE)) {
-               config_t *c = CONFIG(p_dev);
+               config_t *c = p_dev->function_config;
                if (c->state & CONFIG_LOCKED)
                        return CS_CONFIGURATION_LOCKED;
                if ((c->io.BasePort1 != req->BasePort1) ||
        p_dev->state &= ~CLIENT_IRQ_REQ;
 
        if (!(p_dev->state & CLIENT_STALE)) {
-               config_t *c = CONFIG(p_dev);
+               config_t *c= p_dev->function_config;
                if (c->state & CONFIG_LOCKED)
                        return CS_CONFIGURATION_LOCKED;
                if (c->irq.Attributes != req->Attributes)
 
        if (req->IntType & INT_CARDBUS)
                return CS_UNSUPPORTED_MODE;
-       c = CONFIG(p_dev);
+       c = p_dev->function_config;
        if (c->state & CONFIG_LOCKED)
                return CS_CONFIGURATION_LOCKED;
 
 
        if (!req)
                return CS_UNSUPPORTED_MODE;
-       c = CONFIG(p_dev);
+       c = p_dev->function_config;
        if (c->state & CONFIG_LOCKED)
                return CS_CONFIGURATION_LOCKED;
        if (c->state & CONFIG_IO_REQ)
 
        if (!(s->state & SOCKET_PRESENT))
                return CS_NO_CARD;
-       c = CONFIG(p_dev);
+       c = p_dev->function_config;
        if (c->state & CONFIG_LOCKED)
                return CS_CONFIGURATION_LOCKED;
        if (c->state & CONFIG_IRQ_REQ)