pcmcia: move config_{base,index,regs} to struct pcmcia_device
authorDominik Brodowski <linux@dominikbrodowski.net>
Thu, 29 Jul 2010 16:35:47 +0000 (18:35 +0200)
committerDominik Brodowski <linux@dominikbrodowski.net>
Wed, 29 Sep 2010 15:20:22 +0000 (17:20 +0200)
Several drivers prefer to explicitly set config_{base,index,regs},
formerly known as ConfigBase, ConfigIndex and Present. Instead of
passing these values inside config_req_t, store it in struct
pcmcia_device.

CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-ide@vger.kernel.org
CC: linux-usb@vger.kernel.org
CC: laforge@gnumonks.org
CC: linux-mtd@lists.infradead.org
CC: alsa-devel@alsa-project.org
CC: linux-serial@vger.kernel.org
CC: Jiri Kosina <jkosina@suse.cz>
CC: linux-scsi@vger.kernel.org
Acked-by: Gustavo F. Padovan <padovan@profusion.mobi> (for drivers/bluetooth)
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
45 files changed:
drivers/bluetooth/bluecard_cs.c
drivers/char/pcmcia/ipwireless/main.c
drivers/char/pcmcia/synclink_cs.c
drivers/ide/ide-cs.c
drivers/isdn/hardware/avm/avm_cs.c
drivers/isdn/hisax/avma1_cs.c
drivers/isdn/hisax/elsa_cs.c
drivers/isdn/hisax/sedlbauer_cs.c
drivers/isdn/hisax/teles_cs.c
drivers/mtd/maps/pcmciamtd.c
drivers/net/pcmcia/3c574_cs.c
drivers/net/pcmcia/3c589_cs.c
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/fmvj18x_cs.c
drivers/net/pcmcia/ibmtr_cs.c
drivers/net/pcmcia/nmclan_cs.c
drivers/net/pcmcia/pcnet_cs.c
drivers/net/pcmcia/smc91c92_cs.c
drivers/net/pcmcia/xirc2ps_cs.c
drivers/net/wireless/airo_cs.c
drivers/net/wireless/hostap/hostap_cs.c
drivers/net/wireless/ray_cs.c
drivers/net/wireless/wl3501_cs.c
drivers/parport/parport_cs.c
drivers/pcmcia/cs_internal.h
drivers/pcmcia/ds.c
drivers/pcmcia/pcmcia_cis.c
drivers/pcmcia/pcmcia_resource.c
drivers/scsi/pcmcia/aha152x_stub.c
drivers/scsi/pcmcia/fdomain_stub.c
drivers/scsi/pcmcia/nsp_cs.c
drivers/scsi/pcmcia/qlogic_stub.c
drivers/serial/serial_cs.c
drivers/staging/comedi/drivers/cb_das16_cs.c
drivers/staging/comedi/drivers/das08_cs.c
drivers/staging/comedi/drivers/ni_daq_700.c
drivers/staging/comedi/drivers/ni_daq_dio24.c
drivers/staging/comedi/drivers/ni_labpc_cs.c
drivers/staging/comedi/drivers/quatech_daqp_cs.c
drivers/staging/wlags49_h2/wl_cs.c
drivers/usb/host/sl811_cs.c
include/pcmcia/cs.h
include/pcmcia/ds.h
sound/pcmcia/pdaudiocf/pdaudiocf.c
sound/pcmcia/vx/vxpocket.c

index 4cb2dfebde80df8ff1ac7be2da7204801ba95cb2..08f4818ad9f70a82474e12a0c19fa1fb7a50808c 100644 (file)
@@ -885,7 +885,7 @@ static int bluecard_config(struct pcmcia_device *link)
        bluecard_info_t *info = link->priv;
        int i, n;
 
-       link->conf.ConfigIndex = 0x20;
+       link->config_index = 0x20;
 
        link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
        link->resource[0]->end = 64;
index 0f0be4df7b7c611f53c80661b761c9da17469c46..05c4e6834a6b23e363271cc56f5c5db85d5fcc05 100644 (file)
@@ -92,7 +92,7 @@ static int ipwireless_probe(struct pcmcia_device *p_dev,
 
        /* 0x40 causes it to generate level mode interrupts. */
        /* 0x04 enables IREQ pin. */
-       p_dev->conf.ConfigIndex = cfg->index | 0x44;
+       p_dev->config_index = cfg->index | 0x44;
        p_dev->io_lines = 16;
        ret = pcmcia_request_io(p_dev);
        if (ret)
index ba7ccf5701ed28e12841789ddf167b71243c706c..535aa0899e9f019612dbc7f488f7c616f780c982 100644 (file)
@@ -594,8 +594,8 @@ static int mgslpc_config(struct pcmcia_device *link)
            goto failed;
 
     link->conf.Attributes = CONF_ENABLE_IRQ;
-    link->conf.ConfigIndex = 8;
-    link->conf.Present = PRESENT_OPTION;
+    link->config_index = 8;
+    link->config_regs = PRESENT_OPTION;
 
     ret = pcmcia_request_irq(link, mgslpc_isr);
     if (ret)
@@ -608,7 +608,7 @@ static int mgslpc_config(struct pcmcia_device *link)
     info->irq_level = link->irq;
 
     dev_info(&link->dev, "index 0x%02x:",
-           link->conf.ConfigIndex);
+           link->config_index);
     if (link->conf.Attributes & CONF_ENABLE_IRQ)
            printk(", irq %d", link->irq);
     if (link->resource[0])
index cf7cb4953aa5e12a62952496f7278fc1fbbb5b8a..07e37876559ca91e5bdfdcaac9391956d05dd61b 100644 (file)
@@ -227,8 +227,7 @@ static int pcmcia_check_one_config(struct pcmcia_device *pdev,
        if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
                cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
                pdev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
-
-               pdev->conf.ConfigIndex = cfg->index;
+               pdev->config_index = cfg->index;
                pdev->resource[0]->start = io->win[0].base;
                if (!(io->flags & CISTPL_IO_16BIT)) {
                        pdev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
index 938ca4155c3b447b5fa87fbeb8f67e9bfbee6cd4..2d8bbbf286aa7c5c652254143d24220c0c0a3c3e 100644 (file)
@@ -80,8 +80,8 @@ static int avmcs_probe(struct pcmcia_device *p_dev)
 
     /* General socket configuration */
     p_dev->conf.Attributes = CONF_ENABLE_IRQ;
-    p_dev->conf.ConfigIndex = 1;
-    p_dev->conf.Present = PRESENT_OPTION;
+    p_dev->config_index = 1;
+    p_dev->config_regs = PRESENT_OPTION;
 
     return avmcs_config(p_dev);
 } /* avmcs_attach */
index 7d5ff20b5d5b45de57410f38f74778912fb793da..e25f6c7376ed6d2d8c7c66c3a8d77bc3a1507d4e 100644 (file)
@@ -85,8 +85,8 @@ static int __devinit avma1cs_probe(struct pcmcia_device *p_dev)
 
     /* General socket configuration */
     p_dev->conf.Attributes = CONF_ENABLE_IRQ;
-    p_dev->conf.ConfigIndex = 1;
-    p_dev->conf.Present = PRESENT_OPTION;
+    p_dev->config_index = 1;
+    p_dev->config_regs = PRESENT_OPTION;
 
     return avma1cs_config(p_dev);
 } /* avma1cs_attach */
index df360c8b31cb444c15962e89926fbee595a48804..f276e8428960f64fc4a7275ac01532711a4da83f 100644 (file)
@@ -211,7 +211,7 @@ static int __devinit elsa_cs_config(struct pcmcia_device *link)
 
     /* Finally, report what we've done */
     dev_info(&link->dev, "index 0x%02x: ",
-           link->conf.ConfigIndex);
+           link->config_index);
     if (link->conf.Attributes & CONF_ENABLE_IRQ)
        printk(", irq %d", link->irq);
     if (link->resource[0])
index 169061fbca988da1388c364b8d61352d7355d5e3..43d0a4e97eadcce2689ec886bd19ef89e5f153fd 100644 (file)
@@ -253,7 +253,7 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
 
     /* Finally, report what we've done */
     dev_info(&link->dev, "index 0x%02x:",
-          link->conf.ConfigIndex);
+          link->config_index);
     if (link->vpp)
        printk(", Vpp %d.%d", link->vpp/10, link->vpp%10);
     if (link->conf.Attributes & CONF_ENABLE_IRQ)
index 46e72a1eed2df253647d818d75b582d7cd2282e5..614afc64b5b12debb90faf2a16120299bf3a47d4 100644 (file)
@@ -191,7 +191,7 @@ static int __devinit teles_cs_config(struct pcmcia_device *link)
 
     /* Finally, report what we've done */
     dev_info(&link->dev, "index 0x%02x:",
-           link->conf.ConfigIndex);
+           link->config_index);
     if (link->conf.Attributes & CONF_ENABLE_IRQ)
            printk(", irq %d", link->irq);
     if (link->resource[0])
index 663b48bc657ca603d9520bf4ad6188a69d6d620d..99c7257363d671d2931bc69b17ca2c15f54c6fa0 100644 (file)
@@ -575,7 +575,7 @@ static int pcmciamtd_config(struct pcmcia_device *link)
                link->vpp = 0;
        }
 
-       link->conf.ConfigIndex = 0;
+       link->config_index = 0;
        DEBUG(2, "Setting Configuration");
        ret = pcmcia_request_configuration(link, &link->conf);
        if (ret != 0) {
index 41ecb2728a201f6cec8e484e1cbb45c4b7914d68..4b670b3da378ce1dcdf412fd779f22fe9bac0112 100644 (file)
@@ -281,7 +281,7 @@ static int tc574_probe(struct pcmcia_device *link)
        link->resource[0]->end = 32;
        link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
        link->conf.Attributes = CONF_ENABLE_IRQ;
-       link->conf.ConfigIndex = 1;
+       link->config_index = 1;
 
        dev->netdev_ops = &el3_netdev_ops;
        SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops);
index 68886729375df227f860e0b658ae70f1a0a09315..6549e2c496a07b35918ec3731456a025aff0dedc 100644 (file)
@@ -217,7 +217,7 @@ static int tc589_probe(struct pcmcia_device *link)
     link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
 
     link->conf.Attributes = CONF_ENABLE_IRQ;
-    link->conf.ConfigIndex = 1;
+    link->config_index = 1;
 
     dev->netdev_ops = &el3_netdev_ops;
     dev->watchdog_timeo = TX_TIMEOUT;
index 4d4928a22b1fbe44976d6776ba0bd68eae93ded5..2c273ce6a5d80a68a9a86d0cd214a2aa1ad96175 100644 (file)
@@ -230,7 +230,7 @@ static int get_prom(struct pcmcia_device *link)
     };
 
     /* Not much of a test, but the alternatives are messy */
-    if (link->conf.ConfigBase != 0x03c0)
+    if (link->config_base != 0x03c0)
        return 0;
 
     axnet_reset_8390(dev);
@@ -297,7 +297,7 @@ static int axnet_configcheck(struct pcmcia_device *p_dev,
        if (cfg->index == 0 || cfg->io.nwin == 0)
                return -ENODEV;
 
-       p_dev->conf.ConfigIndex = 0x05;
+       p_dev->config_index = 0x05;
        /* For multifunction cards, by convention, we configure the
           network function with window 0, and serial with window 1 */
        if (io->nwin > 1) {
@@ -325,7 +325,7 @@ static int axnet_config(struct pcmcia_device *link)
     dev_dbg(&link->dev, "axnet_config(0x%p)\n", link);
 
     /* don't trust the CIS on this; Linksys got it wrong */
-    link->conf.Present = 0x63;
+    link->config_regs = 0x63;
     ret = pcmcia_loop_config(link, axnet_configcheck, NULL);
     if (ret != 0)
        goto failed;
index caf2b2ef4e358d6ac5e0074fb82a5fb9e6c1a178..23f5333d8029529d14cbeb052576d8be7ddae112 100644 (file)
@@ -312,7 +312,7 @@ static int ungermann_try_io_port(struct pcmcia_device *link)
        ret = pcmcia_request_io(link);
        if (ret == 0) {
            /* calculate ConfigIndex value */
-           link->conf.ConfigIndex = 
+           link->config_index =
                ((link->resource[0]->start & 0x0f0) >> 3) | 0x22;
            return ret;
        }
@@ -361,28 +361,28 @@ static int fmvj18x_config(struct pcmcia_device *link)
                link->card_id == PRODID_TDK_NP9610 ||
                link->card_id == PRODID_TDK_MN3200) {
                /* MultiFunction Card */
-               link->conf.ConfigBase = 0x800;
-               link->conf.ConfigIndex = 0x47;
+               link->config_base = 0x800;
+               link->config_index = 0x47;
                link->resource[1]->end = 8;
            }
            break;
        case MANFID_NEC:
            cardtype = NEC; /* MultiFunction Card */
-           link->conf.ConfigBase = 0x800;
-           link->conf.ConfigIndex = 0x47;
+           link->config_base = 0x800;
+           link->config_index = 0x47;
            link->resource[1]->end = 8;
            break;
        case MANFID_KME:
            cardtype = KME; /* MultiFunction Card */
-           link->conf.ConfigBase = 0x800;
-           link->conf.ConfigIndex = 0x47;
+           link->config_base = 0x800;
+           link->config_index = 0x47;
            link->resource[1]->end = 8;
            break;
        case MANFID_CONTEC:
            cardtype = CONTEC;
            break;
        case MANFID_FUJITSU:
-           if (link->conf.ConfigBase == 0x0fe0)
+           if (link->config_base == 0x0fe0)
                cardtype = MBH10302;
            else if (link->card_id == PRODID_FUJITSU_MBH10302) 
                 /* RATOC REX-5588/9822/4886's PRODID are 0004(=MBH10302),
@@ -402,10 +402,10 @@ static int fmvj18x_config(struct pcmcia_device *link)
        case MANFID_FUJITSU:
            if (link->card_id == PRODID_FUJITSU_MBH10304) {
                cardtype = XXX10304;    /* MBH10304 with buggy CIS */
-               link->conf.ConfigIndex = 0x20;
+               link->config_index = 0x20;
            } else {
                cardtype = MBH10302;    /* NextCom NC5310, etc. */
-               link->conf.ConfigIndex = 1;
+               link->config_index = 1;
            }
            break;
        case MANFID_UNGERMANN:
@@ -413,7 +413,7 @@ static int fmvj18x_config(struct pcmcia_device *link)
            break;
        default:
            cardtype = MBH10302;
-           link->conf.ConfigIndex = 1;
+           link->config_index = 1;
        }
     }
 
index 1327f086d86be619e050a9edcbf791c910083616..feedeeb17a52ce4e0a988efb11e4827f765c155f 100644 (file)
@@ -153,7 +153,7 @@ static int __devinit ibmtr_attach(struct pcmcia_device *link)
     link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
     link->resource[0]->end = 4;
     link->conf.Attributes = CONF_ENABLE_IRQ;
-    link->conf.Present = PRESENT_OPTION;
+    link->config_regs = PRESENT_OPTION;
 
     info->dev = dev;
 
@@ -212,8 +212,8 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
 
     dev_dbg(&link->dev, "ibmtr_config\n");
 
-    link->conf.ConfigIndex = 0x61;
     link->io_lines = 16;
+    link->config_index = 0x61;
 
     /* Determine if this is PRIMARY or ALTERNATE. */
 
index 90d172804bfc45095a7d10f3845d12cc1ff6d112..98c4a69760456cf5f80f4027fd12e00a230b3e96 100644 (file)
@@ -461,8 +461,8 @@ static int nmclan_probe(struct pcmcia_device *link)
     link->resource[0]->end = 32;
     link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
     link->conf.Attributes = CONF_ENABLE_IRQ;
-    link->conf.ConfigIndex = 1;
-    link->conf.Present = PRESENT_OPTION;
+    link->config_index = 1;
+    link->config_regs = PRESENT_OPTION;
 
     lp->tx_free_frames=AM2150_MAX_TX_FRAMES;
 
index 69135761719ae8ef5a928aca92e896622bafbc3b..68c46751f84f4d46437a288edf942cfa4166739d 100644 (file)
@@ -420,7 +420,7 @@ static hw_info_t *get_ax88190(struct pcmcia_device *link)
     int i, j;
 
     /* Not much of a test, but the alternatives are messy */
-    if (link->conf.ConfigBase != 0x03c0)
+    if (link->config_base != 0x03c0)
        return NULL;
 
     outb_p(0x01, ioaddr + EN0_DCFG);   /* Set word-wide access. */
@@ -564,7 +564,7 @@ static hw_info_t *pcnet_try_config(struct pcmcia_device *link,
 
        if ((link->manf_id == MANFID_IBM) &&
            (link->card_id == PRODID_IBM_HOME_AND_AWAY))
-               link->conf.ConfigIndex |= 0x10;
+               link->config_index |= 0x10;
 
        ret = pcmcia_request_configuration(link, &link->conf);
        if (ret)
@@ -581,7 +581,7 @@ static hw_info_t *pcnet_try_config(struct pcmcia_device *link,
        } else
                dev->if_port = 0;
 
-       if ((link->conf.ConfigBase == 0x03c0) &&
+       if ((link->config_base == 0x03c0) &&
            (link->manf_id == 0x149) && (link->card_id == 0xc1ab)) {
                dev_info(&link->dev,
                        "this is an AX88190 card - use axnet_cs instead.\n");
index 2c2a8788c078186398f4cc9b564509000f84eac7..59f5034e8d93fa4f80e6642d87fc394736737e95 100644 (file)
@@ -411,9 +411,9 @@ static int mhz_3288_power(struct pcmcia_device *link)
     mdelay(200);
 
     /* Now read and write the COR... */
-    tmp = readb(smc->base + link->conf.ConfigBase + CISREG_COR);
+    tmp = readb(smc->base + link->config_base + CISREG_COR);
     udelay(5);
-    writeb(tmp, smc->base + link->conf.ConfigBase + CISREG_COR);
+    writeb(tmp, smc->base + link->config_base + CISREG_COR);
 
     return 0;
 }
@@ -464,7 +464,7 @@ static int mhz_mfc_config(struct pcmcia_device *link)
 
     smc->base = ioremap(link->resource[2]->start,
                    resource_size(link->resource[2]));
-    offset = (smc->manfid == MANFID_MOTOROLA) ? link->conf.ConfigBase : 0;
+    offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0;
     i = pcmcia_map_mem_page(link, link->resource[2], offset);
     if ((i == 0) &&
        (smc->manfid == MANFID_MEGAHERTZ) &&
@@ -643,8 +643,8 @@ static int osi_config(struct pcmcia_device *link)
     link->resource[1]->end = 8;
 
     /* Enable Hard Decode, LAN, Modem */
-    link->conf.ConfigIndex = 0x23;
     link->io_lines = 16;
+    link->config_index = 0x23;
 
     for (i = j = 0; j < 4; j++) {
        link->resource[1]->start = com[j];
@@ -654,7 +654,7 @@ static int osi_config(struct pcmcia_device *link)
     }
     if (i != 0) {
        /* Fallback: turn off hard decode */
-       link->conf.ConfigIndex = 0x03;
+       link->config_index = 0x03;
        link->resource[1]->end = 0;
        i = pcmcia_request_io(link);
     }
index 1776f49e091746f5f5a6944e1a6f4775a4d94dc1..1c8ebf2df0c0d2a0e6961e88cea34820d2bc9c51 100644 (file)
@@ -530,7 +530,7 @@ xirc2ps_probe(struct pcmcia_device *link)
 
     /* General socket configuration */
     link->conf.Attributes = CONF_ENABLE_IRQ;
-    link->conf.ConfigIndex = 1;
+    link->config_index = 1;
 
     /* Fill in card specific entries */
     dev->netdev_ops = &netdev_ops;
index ccb2fdde002cb67edfc035d803cee0d1d261d00d..40f9ed760bb325906bf1aae6c93ae4e2271bd1a0 100644 (file)
@@ -240,7 +240,7 @@ static int airo_config(struct pcmcia_device *link)
 
        /* Finally, report what we've done */
        dev_info(&link->dev, "index 0x%02x: ",
-              link->conf.ConfigIndex);
+              link->config_index);
        if (link->vpp)
                printk(", Vpp %d.%d", link->vpp/10, link->vpp%10);
        printk(", irq %d", link->irq);
index 0fe6f82cda586f0f77f8ca676157d795f62bf627..5704d3f9e1b7a7d7c5fa4676ce1426da3c98b49e 100644 (file)
@@ -601,7 +601,7 @@ static int prism2_config(struct pcmcia_device *link)
 
        /* Finally, report what we've done */
        printk(KERN_INFO "%s: index 0x%02x: ",
-              dev_info, link->conf.ConfigIndex);
+              dev_info, link->config_index);
        if (link->vpp)
                printk(", Vpp %d.%d", link->vpp / 10,
                       link->vpp % 10);
index 30cfd8890e345d78934c9595a5652b7d07f9112f..7fb66cc1e9fd3b9ea6fff3f259bb62343456dbe7 100644 (file)
@@ -319,7 +319,7 @@ static int ray_probe(struct pcmcia_device *p_dev)
 
        /* General socket configuration */
        p_dev->conf.Attributes = CONF_ENABLE_IRQ;
-       p_dev->conf.ConfigIndex = 1;
+       p_dev->config_index = 1;
 
        p_dev->priv = dev;
 
index 92a9ad575cc71970c7353c80a90fd73d8b8a9a68..3947cf8e63c50ce30a6e9378b31705ea398fb4a2 100644 (file)
@@ -1889,7 +1889,7 @@ static int wl3501_probe(struct pcmcia_device *p_dev)
 
        /* General socket configuration */
        p_dev->conf.Attributes  = CONF_ENABLE_IRQ;
-       p_dev->conf.ConfigIndex = 1;
+       p_dev->config_index     = 1;
 
        dev = alloc_etherdev(sizeof(struct wl3501_card));
        if (!dev)
index afd946e15ee7a36e17e059b3ce71a93c73cf08ce..8faf634987e3d1b1d18f5d6ca9632a19c71d82bc 100644 (file)
@@ -144,7 +144,7 @@ static int parport_config_check(struct pcmcia_device *p_dev,
                cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
                p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
                if (epp_mode)
-                       p_dev->conf.ConfigIndex |= FORCE_EPP_MODE;
+                       p_dev->config_index |= FORCE_EPP_MODE;
                p_dev->resource[0]->start = io->win[0].base;
                p_dev->resource[0]->end = io->win[0].len;
                if (io->nwin == 2) {
index a0c5adb37b5fc3d68e67f7e5465d2bbaade140e1..42eef437afd4a25763a9a319ff171010cd314785 100644 (file)
@@ -34,9 +34,6 @@ typedef struct config_t {
        struct kref     ref;
        unsigned int    state;
        unsigned int    Attributes;
-       unsigned int    ConfigBase;
-       unsigned char   Option;
-       unsigned int    CardValues;
 
        struct resource io[MAX_IO_WIN]; /* io ports */
        struct resource mem[MAX_WIN];   /* mem areas */
index 55570d9e1e4cc0246fe9c9add4583ccad5e3dae7..00db60053f933585647482923523abfe2fff22d4 100644 (file)
@@ -276,13 +276,13 @@ static int pcmcia_device_probe(struct device *dev)
        ret = pccard_read_tuple(p_dev->socket, p_dev->func, CISTPL_CONFIG,
                                &cis_config);
        if (!ret) {
-               p_dev->conf.ConfigBase = cis_config.base;
-               p_dev->conf.Present = cis_config.rmask[0];
+               p_dev->config_base = cis_config.base;
+               p_dev->config_regs = cis_config.rmask[0];
        } else {
                dev_printk(KERN_INFO, dev,
                           "pcmcia: could not parse base and rmask0 of CIS\n");
-               p_dev->conf.ConfigBase = 0;
-               p_dev->conf.Present = 0;
+               p_dev->config_base = 0;
+               p_dev->config_regs = 0;
        }
 
        ret = p_drv->probe(p_dev);
index 0ac54da158850352c766cebd9c5a502b5b7e65e0..ac47cc4e20e8a0504d824467b305b8f9fbe0d0b5 100644 (file)
@@ -151,7 +151,7 @@ static int pcmcia_do_loop_config(tuple_t *tuple, cisparse_t *parse, void *priv)
        struct pcmcia_cfg_mem *cfg_mem = priv;
 
        /* default values */
-       cfg_mem->p_dev->conf.ConfigIndex = cfg->index;
+       cfg_mem->p_dev->config_index = cfg->index;
        if (cfg->flags & CISTPL_CFTABLE_DEFAULT)
                cfg_mem->dflt = *cfg;
 
index 6210e1c2b432426877966348e709278163b6a3ab..a1fb0dc1a71fbc6e19e4a9e091bfdfbde611d371 100644 (file)
@@ -168,7 +168,7 @@ static int pcmcia_access_config(struct pcmcia_device *p_dev,
                return -EACCES;
        }
 
-       addr = (c->ConfigBase + where) >> 1;
+       addr = (p_dev->config_base + where) >> 1;
 
        ret = accessf(s, 1, addr, 1, val);
 
@@ -443,6 +443,7 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev,
        pccard_io_map iomap;
        unsigned char status = 0;
        unsigned char ext_status = 0;
+       unsigned char option = 0;
 
        if (!(s->state & SOCKET_PRESENT))
                return -ENODEV;
@@ -473,7 +474,7 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev,
        if (req->Attributes & CONF_ENABLE_SPKR) {
                s->socket.flags |= SS_SPKR_ENA;
                status = CCSR_AUDIO_ENA;
-               if (!(req->Present & PRESENT_STATUS))
+               if (!(p_dev->config_regs & PRESENT_STATUS))
                        dev_warn(&p_dev->dev, "speaker requested, but "
                                              "PRESENT_STATUS not set!\n");
        }
@@ -482,54 +483,53 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev,
        else
                s->socket.io_irq = 0;
        if (req->Attributes & CONF_ENABLE_ESR) {
-               req->Present |= PRESENT_EXT_STATUS;
+               p_dev->config_regs |= PRESENT_EXT_STATUS;
                ext_status = ESR_REQ_ATTN_ENA;
        }
        s->ops->set_socket(s, &s->socket);
        s->lock_count++;
 
        /* Set up CIS configuration registers */
-       base = c->ConfigBase = req->ConfigBase;
-       c->CardValues = req->Present;
-       if (req->Present & PRESENT_COPY) {
+       base = p_dev->config_base;
+       if (p_dev->config_regs & PRESENT_COPY) {
                u16 tmp = 0;
                dev_dbg(&p_dev->dev, "clearing CISREG_SCR\n");
                pcmcia_write_cis_mem(s, 1, (base + CISREG_SCR)>>1, 1, &tmp);
        }
-       if (req->Present & PRESENT_PIN_REPLACE) {
+       if (p_dev->config_regs & PRESENT_PIN_REPLACE) {
                u16 tmp = 0;
                dev_dbg(&p_dev->dev, "clearing CISREG_PRR\n");
                pcmcia_write_cis_mem(s, 1, (base + CISREG_PRR)>>1, 1, &tmp);
        }
-       if (req->Present & PRESENT_OPTION) {
+       if (p_dev->config_regs & PRESENT_OPTION) {
                if (s->functions == 1) {
-                       c->Option = req->ConfigIndex & COR_CONFIG_MASK;
+                       option = p_dev->config_index & COR_CONFIG_MASK;
                } else {
-                       c->Option = req->ConfigIndex & COR_MFC_CONFIG_MASK;
-                       c->Option |= COR_FUNC_ENA|COR_IREQ_ENA;
-                       if (req->Present & PRESENT_IOBASE_0)
-                               c->Option |= COR_ADDR_DECODE;
+                       option = p_dev->config_index & COR_MFC_CONFIG_MASK;
+                       option |= COR_FUNC_ENA|COR_IREQ_ENA;
+                       if (p_dev->config_regs & PRESENT_IOBASE_0)
+                               option |= COR_ADDR_DECODE;
                }
                if ((req->Attributes & CONF_ENABLE_IRQ) &&
                        !(req->Attributes & CONF_ENABLE_PULSE_IRQ))
-                       c->Option |= COR_LEVEL_REQ;
-               pcmcia_write_cis_mem(s, 1, (base + CISREG_COR)>>1, 1, &c->Option);
+                       option |= COR_LEVEL_REQ;
+               pcmcia_write_cis_mem(s, 1, (base + CISREG_COR)>>1, 1, &option);
                mdelay(40);
        }
-       if (req->Present & PRESENT_STATUS)
+       if (p_dev->config_regs & PRESENT_STATUS)
                pcmcia_write_cis_mem(s, 1, (base + CISREG_CCSR)>>1, 1, &status);
 
-       if (req->Present & PRESENT_EXT_STATUS)
+       if (p_dev->config_regs & PRESENT_EXT_STATUS)
                pcmcia_write_cis_mem(s, 1, (base + CISREG_ESR)>>1, 1,
                                        &ext_status);
 
-       if (req->Present & PRESENT_IOBASE_0) {
+       if (p_dev->config_regs & PRESENT_IOBASE_0) {
                u8 b = c->io[0].start & 0xff;
                pcmcia_write_cis_mem(s, 1, (base + CISREG_IOBASE_0)>>1, 1, &b);
                b = (c->io[0].start >> 8) & 0xff;
                pcmcia_write_cis_mem(s, 1, (base + CISREG_IOBASE_1)>>1, 1, &b);
        }
-       if (req->Present & PRESENT_IOSIZE) {
+       if (p_dev->config_regs & PRESENT_IOSIZE) {
                u8 b = resource_size(&c->io[0]) + resource_size(&c->io[1]) - 1;
                pcmcia_write_cis_mem(s, 1, (base + CISREG_IOSIZE)>>1, 1, &b);
        }
index 3c0046e89f37feaebdfc71dfd755c746f0d0a34d..c3682492af16f613b9debde0b2e3f193b2ac6881 100644 (file)
@@ -103,7 +103,7 @@ static int aha152x_probe(struct pcmcia_device *link)
     link->resource[0]->end = 0x20;
     link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
     link->conf.Attributes = CONF_ENABLE_IRQ;
-    link->conf.Present = PRESENT_OPTION;
+    link->config_regs = PRESENT_OPTION;
 
     return aha152x_config_cs(link);
 } /* aha152x_attach */
index 8ff760380d88e4537a8115b10f2d2f4aaed4b8a5..bb909e1b7c68ec7c47ccb27e685c198524291ad2 100644 (file)
@@ -86,7 +86,7 @@ static int fdomain_probe(struct pcmcia_device *link)
        link->resource[0]->end = 0x10;
        link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
        link->conf.Attributes = CONF_ENABLE_IRQ;
-       link->conf.Present = PRESENT_OPTION;
+       link->config_regs = PRESENT_OPTION;
 
        return fdomain_config(link);
 } /* fdomain_attach */
index c0cf2dfd6fbc7e23e00b46487d0cc025af951744..a5648e9c4f6e10028fd17ab2a5f61394061b6645 100644 (file)
@@ -1745,7 +1745,7 @@ static int nsp_cs_config(struct pcmcia_device *link)
 
        /* Finally, report what we've done */
        printk(KERN_INFO "nsp_cs: index 0x%02x: ",
-              link->conf.ConfigIndex);
+              link->config_index);
        if (link->vpp) {
                printk(", Vpp %d.%d", link->vpp/10, link->vpp%10);
        }
index 77f46a279d6b3c1e806e96f5da390872fad56645..5e2cbe091408340d56ab336ea46cec20e4e46b23 100644 (file)
@@ -159,7 +159,7 @@ static int qlogic_probe(struct pcmcia_device *link)
        link->resource[0]->end = 16;
        link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
        link->conf.Attributes = CONF_ENABLE_IRQ;
-       link->conf.Present = PRESENT_OPTION;
+       link->config_regs = PRESENT_OPTION;
 
        return qlogic_config(link);
 }                              /* qlogic_attach */
index 38baede2a770e38dace53ecf1450447e7c8880d6..ee19f2d25c205755868a8f9bcc68a8381fb44c4f 100644 (file)
@@ -495,7 +495,7 @@ static int simple_config(struct pcmcia_device *link)
 
 found_port:
        if (info->multi && (info->manfid == MANFID_3COM))
-               link->conf.ConfigIndex &= ~(0x08);
+               link->config_index &= ~(0x08);
 
        /*
         * Apply any configuration quirks.
@@ -591,8 +591,8 @@ static int multi_config(struct pcmcia_device *link)
                                info->prodid == PRODID_POSSIO_GCC)) {
                int err;
 
-               if (link->conf.ConfigIndex == 1 ||
-                   link->conf.ConfigIndex == 3) {
+               if (link->config_index == 1 ||
+                   link->config_index == 3) {
                        err = setup_serial(link, info, base2,
                                        link->irq);
                        base2 = link->resource[0]->start;;
index 11271b61f653207f5926d39029fb17cf4af3ccce..034cbfcba196197bcc359cd99bac74ac022e9b41 100644 (file)
@@ -772,7 +772,7 @@ static void das16cs_pcmcia_config(struct pcmcia_device *link)
                goto failed;
 
        /* Finally, report what we've done */
-       dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
+       dev_info(&link->dev, "index 0x%02x", link->config_index);
        if (link->conf.Attributes & CONF_ENABLE_IRQ)
                printk(", irq %u", link->irq);
        if (link->resource[0])
index 319aad48ec2ea0540e668730bf8bba9e642d7229..e37ea79e6aea84cc3c0c940433f70cf7f9158383 100644 (file)
@@ -268,7 +268,7 @@ static void das08_pcmcia_config(struct pcmcia_device *link)
                goto failed;
 
        /* Finally, report what we've done */
-       dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
+       dev_info(&link->dev, "index 0x%02x", link->config_index);
        if (link->conf.Attributes & CONF_ENABLE_IRQ)
                printk(", irq %u", link->irq);
        if (link->resource[0])
index d269bbdf5cfbcb7dee353ae1246c8871178d0e9a..8107e4009248225a3ecf8059c6e7ec0e760fe53b 100644 (file)
@@ -607,7 +607,7 @@ static void dio700_config(struct pcmcia_device *link)
                goto failed;
 
        /* Finally, report what we've done */
-       dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
+       dev_info(&link->dev, "index 0x%02x", link->config_index);
        if (link->conf.Attributes & CONF_ENABLE_IRQ)
                printk(", irq %d", link->irq);
        if (link->resource[0])
index fcaa82967b926bfc03a132058161098af645198d..4f9daa3558aa5a1cc1ca7461142722c5b9402804 100644 (file)
@@ -358,7 +358,7 @@ static void dio24_config(struct pcmcia_device *link)
                goto failed;
 
        /* Finally, report what we've done */
-       dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
+       dev_info(&link->dev, "index 0x%02x", link->config_index);
        if (link->conf.Attributes & CONF_ENABLE_IRQ)
                printk(", irq %d", link->irq);
        if (link->resource[0])
index a936c11e7dc99f7cb8a11f2490f9909b797aa764..2e27a3048cb878c3d6eb9e8a7d8d8306b393f274 100644 (file)
@@ -336,7 +336,7 @@ static void labpc_config(struct pcmcia_device *link)
                goto failed;
 
        /* Finally, report what we've done */
-       dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
+       dev_info(&link->dev, "index 0x%02x", link->config_index);
        if (link->conf.Attributes & CONF_ENABLE_IRQ)
                printk(", irq %d", link->irq);
        if (link->resource[0])
index cd818fbd91857e4efc0869870c69e90b3adc8d76..a2a32de044c8caacdf5dee99ba9ac2c246332efc 100644 (file)
@@ -1137,7 +1137,7 @@ static void daqp_cs_config(struct pcmcia_device *link)
                goto failed;
 
        /* Finally, report what we've done */
-       dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
+       dev_info(&link->dev, "index 0x%02x", link->config_index);
        if (link->conf.Attributes & CONF_ENABLE_IRQ)
                printk(", irq %u", link->irq);
        if (link->resource[0])
index b2efff692ad54bbe40c2aa6ed8a96899cee6f2be..778800f1e46479c33d39b631f9b276daa99669c8 100644 (file)
@@ -148,8 +148,8 @@ static int wl_adapter_attach(struct pcmcia_device *link)
        link->resource[0]->end  = HCF_NUM_IO_PORTS;
        link->resource[0]->flags= IO_DATA_PATH_WIDTH_16;
        link->conf.Attributes   = CONF_ENABLE_IRQ;
-       link->conf.ConfigIndex  = 5;
-       link->conf.Present      = PRESENT_OPTION;
+       link->config_index      = 5;
+       link->config_regs       = PRESENT_OPTION;
 
        link->priv = dev;
        lp = wl_priv(dev);
index 78bad51881442ce20fdf97e16028c1a769b6e6cb..590405361bed7a14571cde03331174825d72a313 100644 (file)
@@ -200,7 +200,7 @@ static int sl811_cs_config(struct pcmcia_device *link)
                goto failed;
 
        dev_info(&link->dev, "index 0x%02x: ",
-               link->conf.ConfigIndex);
+               link->config_index);
        if (link->vpp)
                printk(", Vpp %d.%d", link->vpp/10, link->vpp%10);
        printk(", irq %d", link->irq);
index 674edbc9ebef36f479bbf0a96414d2762538e3bc..47b6092c4ed6d957c50d16d2b51203a364e0d2bd 100644 (file)
@@ -22,9 +22,6 @@
 /* For RequestConfiguration */
 typedef struct config_req_t {
     u_int      Attributes;
-    u_int      ConfigBase;
-    u_char     ConfigIndex;
-    u_int      Present;
 } config_req_t;
 
 /* Attributes for RequestConfiguration */
@@ -35,16 +32,4 @@ typedef struct config_req_t {
 #define CONF_ENABLE_ESR                0x10
 #define CONF_VALID_CLIENT      0x100
 
-/* Configuration registers present */
-#define PRESENT_OPTION         0x001
-#define PRESENT_STATUS         0x002
-#define PRESENT_PIN_REPLACE    0x004
-#define PRESENT_COPY           0x008
-#define PRESENT_EXT_STATUS     0x010
-#define PRESENT_IOBASE_0       0x020
-#define PRESENT_IOBASE_1       0x040
-#define PRESENT_IOBASE_2       0x080
-#define PRESENT_IOBASE_3       0x100
-#define PRESENT_IOSIZE         0x200
-
 #endif /* _LINUX_CS_H */
index 6137fbc34abd2090cf27c9b8c0283a69b25eb4a5..bc28f96d0b5a9e8a6ad3fb2db369561997fec3ac 100644 (file)
@@ -97,6 +97,9 @@ struct pcmcia_device {
        unsigned int            vpp;
 
        unsigned int            io_lines; /* number of I/O lines */
+       unsigned int            config_base;
+       unsigned int            config_index;
+       unsigned int            config_regs;    /* PRESENT_ flags below */
 
        /* Is the device suspended? */
        u16                     suspended:1;
@@ -250,6 +253,17 @@ static inline int pcmcia_io_cfg_data_width(unsigned int flags)
                                        0x0c -> 2
                                        0x10 -> 3 */
 
+/* config_reg{ister}s present for this PCMCIA device */
+#define PRESENT_OPTION         0x001
+#define PRESENT_STATUS         0x002
+#define PRESENT_PIN_REPLACE    0x004
+#define PRESENT_COPY           0x008
+#define PRESENT_EXT_STATUS     0x010
+#define PRESENT_IOBASE_0       0x020
+#define PRESENT_IOBASE_1       0x040
+#define PRESENT_IOBASE_2       0x080
+#define PRESENT_IOBASE_3       0x100
+#define PRESENT_IOSIZE         0x200
 
 #endif /* __KERNEL__ */
 
index 2e1282de77d465c28c4c114c44d3ae86d4b61a8f..4df07fce637f09046ba18f0d21dde690f9aca118 100644 (file)
@@ -143,8 +143,8 @@ static int snd_pdacf_probe(struct pcmcia_device *link)
        link->resource[0]->end = 16;
 
        link->conf.Attributes = CONF_ENABLE_IRQ | CONF_ENABLE_PULSE_IRQ;
-       link->conf.ConfigIndex = 1;
-       link->conf.Present = PRESENT_OPTION;
+       link->config_index = 1;
+       link->config_regs = PRESENT_OPTION;
 
        return pdacf_config(link);
 }
@@ -216,7 +216,7 @@ static int pdacf_config(struct pcmcia_device *link)
        int ret;
 
        snd_printdd(KERN_DEBUG "pdacf_config called\n");
-       link->conf.ConfigIndex = 0x5;
+       link->config_index = 0x5;
 
        ret = pcmcia_request_io(link);
        if (ret)
index a48b3ee713770c0a035545b699264cc7cfc30668..16186adc1bdc243c61c3694ae25eb419dcad786e 100644 (file)
@@ -163,8 +163,8 @@ static int snd_vxpocket_new(struct snd_card *card, int ibl,
        link->resource[0]->end = 16;
 
        link->conf.Attributes = CONF_ENABLE_IRQ;
-       link->conf.ConfigIndex = 1;
-       link->conf.Present = PRESENT_OPTION;
+       link->config_index = 1;
+       link->config_regs = PRESENT_OPTION;
 
        *chip_ret = vxp;
        return 0;