[PATCH] pcmcia: remove unneeded Vcc pseudo setting
[safe/jmp/linux-2.6] / drivers / serial / serial_cs.c
index 2307d94..1e6889f 100644 (file)
@@ -141,11 +141,8 @@ static void serial_remove(dev_link_t *link)
 
                info->link.dev = NULL;
 
-               if (!info->slave) {
-                       pcmcia_release_configuration(info->link.handle);
-                       pcmcia_release_io(info->link.handle, &info->link.io);
-                       pcmcia_release_irq(info->link.handle, &info->link.irq);
-               }
+               if (!info->slave)
+                       pcmcia_disable_device(link->handle);
 
                info->link.state &= ~DEV_CONFIG;
        }
@@ -154,7 +151,6 @@ static void serial_remove(dev_link_t *link)
 static int serial_suspend(struct pcmcia_device *dev)
 {
        dev_link_t *link = dev_to_instance(dev);
-       link->state |= DEV_SUSPEND;
 
        if (link->state & DEV_CONFIG) {
                struct serial_info *info = link->priv;
@@ -163,8 +159,8 @@ static int serial_suspend(struct pcmcia_device *dev)
                for (i = 0; i < info->ndev; i++)
                        serial8250_suspend_port(info->line[i]);
 
-               if (!info->slave)
-                       pcmcia_release_configuration(link->handle);
+               if (info->slave)
+                       link->state &= DEV_SUSPEND_NORELEASE;
        }
 
        return 0;
@@ -173,15 +169,11 @@ static int serial_suspend(struct pcmcia_device *dev)
 static int serial_resume(struct pcmcia_device *dev)
 {
        dev_link_t *link = dev_to_instance(dev);
-       link->state &= ~DEV_SUSPEND;
 
        if (DEV_OK(link)) {
                struct serial_info *info = link->priv;
                int i;
 
-               if (!info->slave)
-                       pcmcia_request_configuration(link->handle, &link->conf);
-
                for (i = 0; i < info->ndev; i++)
                        serial8250_resume_port(info->line[i]);
        }
@@ -366,7 +358,6 @@ static int simple_config(dev_link_t *link)
                        return setup_serial(handle, info, port, config.AssignedIRQ);
                }
        }
-       link->conf.Vcc = config.Vcc;
 
        /* First pass: look for a config entry that looks normal. */
        tuple->TupleData = (cisdata_t *) buf;
@@ -382,7 +373,7 @@ static int simple_config(dev_link_t *link)
                                if (i != CS_SUCCESS)
                                        goto next_entry;
                                if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
-                                       link->conf.Vpp1 = link->conf.Vpp2 =
+                                       link->conf.Vpp =
                                            cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
                                if ((cf->io.nwin > 0) && (cf->io.win[0].len == size_table[s]) &&
                                            (cf->io.win[0].base != 0)) {
@@ -453,7 +444,6 @@ static int multi_config(dev_link_t * link)
        u_char *buf;
        cisparse_t *parse;
        cistpl_cftable_entry_t *cf;
-       config_info_t config;
        int i, rc, base2 = 0;
 
        cfg_mem = kmalloc(sizeof(struct serial_cfg_mem), GFP_KERNEL);
@@ -464,14 +454,6 @@ static int multi_config(dev_link_t * link)
        cf = &parse->cftable_entry;
        buf = cfg_mem->buf;
 
-       i = pcmcia_get_configuration_info(handle, &config);
-       if (i != CS_SUCCESS) {
-               cs_error(handle, GetConfigurationInfo, i);
-               rc = -1;
-               goto free_cfg_mem;
-       }
-       link->conf.Vcc = config.Vcc;
-
        tuple->TupleData = (cisdata_t *) buf;
        tuple->TupleOffset = 0;
        tuple->TupleDataMax = 255;