{
        struct pcmcia_device *link = ipw->link;
        int ret;
-       config_info_t conf;
        tuple_t tuple;
        unsigned short buf[64];
        cisparse_t parse;
                goto exit3;
        }
 
-       /* Look up current Vcc */
-
-       ret = pcmcia_get_configuration_info(link, &conf);
-
-       if (ret != CS_SUCCESS) {
-               cs_error(link, GetConfigurationInfo, ret);
-               goto exit4;
-       }
-
        printk(KERN_INFO IPWIRELESS_PCCARD_NAME ": Card type %s\n",
                        ipw->is_v2_card ? "V2/V3" : "V1");
        printk(KERN_INFO IPWIRELESS_PCCARD_NAME
 
        int last_ret = 0, last_fn = 0;
        int ret;
        int i;
-       config_info_t t;
        static char *probes[] = { "jedec_probe", "cfi_probe" };
        int new_name = 0;
 
        dev->pcmcia_map.map_priv_1 = (unsigned long)dev;
        dev->pcmcia_map.map_priv_2 = (unsigned long)link->win;
 
-       DEBUG(2, "Getting configuration");
-       CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link, &t));
-       DEBUG(2, "Vcc = %d Vpp1 = %d Vpp2 = %d", t.Vcc, t.Vpp1, t.Vpp2);
-       dev->vpp = (vpp) ? vpp : t.Vpp1;
+       dev->vpp = (vpp) ? vpp : link->socket.socket.Vpp;
        link->conf.Attributes = 0;
        if(setvpp == 2) {
                link->conf.Vpp = dev->vpp;
        }
 
        link->conf.IntType = INT_MEMORY;
-       link->conf.ConfigBase = t.ConfigBase;
-       link->conf.Status = t.Status;
-       link->conf.Pin = t.Pin;
-       link->conf.Copy = t.Copy;
-       link->conf.ExtStatus = t.ExtStatus;
        link->conf.ConfigIndex = 0;
-       link->conf.Present = t.Present;
        DEBUG(2, "Setting Configuration");
        ret = pcmcia_request_configuration(link, &link->conf);
        if(ret != CS_SUCCESS) {
 
 static int simple_config(struct pcmcia_device *link)
 {
        struct serial_info *info = link->priv;
-       config_info_t config;
-       int i, try;
+       int i = -ENODEV, try;
 
        /* If the card is already configured, look up the port and irq */
-       i = pcmcia_get_configuration_info(link, &config);
-       if ((i == CS_SUCCESS) && (config.Attributes & CONF_VALID_CLIENT)) {
+       if (link->function_config) {
                unsigned int port = 0;
-               if ((config.BasePort2 != 0) && (config.NumPorts2 == 8)) {
-                       port = config.BasePort2;
+               if ((link->io.BasePort2 != 0) &&
+                   (link->io.NumPorts2 == 8)) {
+                       port = link->io.BasePort2;
                        info->slave = 1;
                } else if ((info->manfid == MANFID_OSITECH) &&
-                          (config.NumPorts1 == 0x40)) {
-                       port = config.BasePort1 + 0x28;
+                          (link->io.NumPorts1 == 0x40)) {
+                       port = link->io.BasePort1 + 0x28;
                        info->slave = 1;
                }
                if (info->slave) {
-                       return setup_serial(link, info, port, config.AssignedIRQ);
+                       return setup_serial(link, info, port,
+                                           link->irq.AssignedIRQ);
                }
        }