goto exit0;
        }
 
-       ret = pcmcia_parse_tuple(link, &tuple, &parse);
+       ret = pcmcia_parse_tuple(&tuple, &parse);
 
        if (ret != 0) {
                cs_error(link, ParseTuple, ret);
                goto exit0;
        }
 
-       ret = pcmcia_parse_tuple(link, &tuple, &parse);
+       ret = pcmcia_parse_tuple(&tuple, &parse);
 
        if (ret != 0) {
                cs_error(link, GetTupleData, ret);
                goto exit1;
        }
 
-       ret = pcmcia_parse_tuple(link, &tuple, &parse);
+       ret = pcmcia_parse_tuple(&tuple, &parse);
 
        if (ret != 0) {
                cs_error(link, ParseTuple, ret);
 
 
     cfg = &(parse.cftable_entry);
     CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple));
-    CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, &parse));
+    CS_CHECK(ParseTuple, pcmcia_parse_tuple(&tuple, &parse));
 
     if (cfg->flags & CISTPL_CFTABLE_DEFAULT) dflt = *cfg;
     if (cfg->index == 0)
 
                        cs_error(link, GetTupleData, rc);
                        break;
                }
-               rc = pcmcia_parse_tuple(link, &tuple, &parse);
+               rc = pcmcia_parse_tuple(&tuple, &parse);
                if (rc != 0) {
                        cs_error(link, ParseTuple, rc);
                        break;
 
        DEBUG(3, "link=0x%p", link);
 
-       DEBUG(2, "Validating CIS");
-       ret = pcmcia_validate_cis(link, NULL);
-       if (ret != 0)
-               cs_error(link, GetTupleData, ret);
-
        card_settings(dev, link, &new_name);
 
        dev->pcmcia_map.phys = NO_XIP;
 
        tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
        CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple));
        CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple));
-       CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, &parse));
+       CS_CHECK(ParseTuple, pcmcia_parse_tuple(&tuple, &parse));
        link->conf.ConfigIndex = parse.cftable_entry.index;
        switch (link->manf_id) {
        case MANFID_TDK:
 
        i = pcmcia_get_tuple_data(handle, tuple);
        if (i != 0)
                return i;
-       return pcmcia_parse_tuple(handle, tuple, parse);
+       return pcmcia_parse_tuple(tuple, parse);
 }
 
 static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple,
        if ((i = pcmcia_get_next_tuple(handle, tuple)) != 0 ||
                        (i = pcmcia_get_tuple_data(handle, tuple)) != 0)
                return i;
-       return pcmcia_parse_tuple(handle, tuple, parse);
+       return pcmcia_parse_tuple(tuple, parse);
 }
 
 /*======================================================================
 
 
        if ((err = pcmcia_get_first_tuple(handle, tuple)) == 0 &&
                        (err = pcmcia_get_tuple_data(handle, tuple)) == 0)
-               err = pcmcia_parse_tuple(handle, tuple, parse);
+               err = pcmcia_parse_tuple(tuple, parse);
        return err;
 }
 
 
        if ((err = pcmcia_get_next_tuple(handle, tuple)) == 0 &&
                        (err = pcmcia_get_tuple_data(handle, tuple)) == 0)
-               err = pcmcia_parse_tuple(handle, tuple, parse);
+               err = pcmcia_parse_tuple(tuple, parse);
        return err;
 }
 
 
        res = pcmcia_get_tuple_data(dev, &tuple);
        if (res != 0)
                goto err_kfree_ssb;
-       res = pcmcia_parse_tuple(dev, &tuple, &parse);
+       res = pcmcia_parse_tuple(&tuple, &parse);
        if (res != 0)
                goto err_kfree_ssb;
 
 
        tuple.DesiredTuple = CISTPL_LONGLINK_MFC;
        if (pcmcia_get_first_tuple(hw_priv->link, &tuple) ||
            pcmcia_get_tuple_data(hw_priv->link, &tuple) ||
-           pcmcia_parse_tuple(hw_priv->link, &tuple, parse) ||
+           pcmcia_parse_tuple(&tuple, parse) ||
                parse->longlink_mfc.nfn < 2) {
                /* No multi-function links found */
                ret = -ENODEV;
 
        tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
        if ((ret = pcmcia_get_first_tuple(p_dev, &tuple)) != 0 ||
            (ret = pcmcia_get_tuple_data(p_dev, &tuple)) != 0 ||
-           (ret = pcmcia_parse_tuple(p_dev, &tuple, &parse)) != 0)
+           (ret = pcmcia_parse_tuple(&tuple, &parse)) != 0)
        {
                lbs_pr_err("error in pcmcia_get_first_tuple etc\n");
                goto out1;
 
 
 /*====================================================================*/
 
-int pccard_parse_tuple(tuple_t *tuple, cisparse_t *parse)
+int pcmcia_parse_tuple(tuple_t *tuple, cisparse_t *parse)
 {
     int ret = 0;
     
            __cs_dbg(0, "parse_tuple failed %d\n", ret);
     return ret;
 }
-EXPORT_SYMBOL(pccard_parse_tuple);
+EXPORT_SYMBOL(pcmcia_parse_tuple);
 
 /*======================================================================
 
     ret = pccard_get_tuple_data(s, &tuple);
     if (ret != 0)
            goto done;
-    ret = pccard_parse_tuple(&tuple, parse);
+    ret = pcmcia_parse_tuple(&tuple, parse);
 done:
     kfree(buf);
     return ret;
 
                      cisdata_t code, void *parse);
 int pcmcia_replace_cis(struct pcmcia_socket *s,
                       const u8 *data, const size_t len);
+int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function,
+                       unsigned int *count);
 
 /* rsrc_mgr.c */
 int pcmcia_validate_mem(struct pcmcia_socket *s);
 
        break;
     case DS_PARSE_TUPLE:
        buf->tuple.TupleData = buf->tuple_parse.data;
-       ret = pccard_parse_tuple(&buf->tuple, &buf->tuple_parse.parse);
+       ret = pcmcia_parse_tuple(&buf->tuple, &buf->tuple_parse.parse);
        break;
     case DS_RESET_CARD:
        ret = pcmcia_reset_card(s);
 
                if (pcmcia_get_tuple_data(p_dev, tuple))
                        goto next_entry;
 
-               if (pcmcia_parse_tuple(p_dev, tuple, &cfg_mem->parse))
+               if (pcmcia_parse_tuple(tuple, &cfg_mem->parse))
                        goto next_entry;
 
                /* default values */
 
        i = pcmcia_get_tuple_data(handle, tuple);
        if (i != 0)
                return i;
-       return pcmcia_parse_tuple(handle, tuple, parse);
+       return pcmcia_parse_tuple(tuple, parse);
 }
 
 /*====================================================================*/
 
 #ifdef __KERNEL__
 struct pcmcia_socket;
 
+int pcmcia_parse_tuple(tuple_t *tuple, cisparse_t *parse);
+
 /* don't use outside of PCMCIA core yet */
 int pccard_get_next_tuple(struct pcmcia_socket *s, unsigned int func, tuple_t *tuple);
 int pccard_get_first_tuple(struct pcmcia_socket *s, unsigned int function, tuple_t *tuple);
 int pccard_get_tuple_data(struct pcmcia_socket *s, tuple_t *tuple);
-int pccard_parse_tuple(tuple_t *tuple, cisparse_t *parse);
-
-int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, unsigned int *count);
 
 /* ... but use these wrappers instead */
 #define pcmcia_get_first_tuple(p_dev, tuple) \
 #define pcmcia_get_tuple_data(p_dev, tuple) \
                pccard_get_tuple_data(p_dev->socket, tuple)
 
-#define pcmcia_parse_tuple(p_dev, tuple, parse) \
-               pccard_parse_tuple(tuple, parse)
-
-#define pcmcia_validate_cis(p_dev, info) \
-               pccard_validate_cis(p_dev->socket, p_dev->func, info)
-
 int pcmcia_loop_config(struct pcmcia_device *p_dev,
                       int      (*conf_check)   (struct pcmcia_device *p_dev,
                                                 cistpl_cftable_entry_t *cf,