Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af2b3b50 authored by Dominik Brodowski's avatar Dominik Brodowski
Browse files

[PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation



struct pcmcia_device *p_dev->conf.ConfigBase and .Present are set in almost
all PCMICA driver right at the beginning, using the same calls but slightly
different implementations. Unfiy this in the PCMCIA core.

Includes a small bugfix ("drivers/net/pcmcia/xirc2ps_cs.c: remove unused
label") from and Signed-off-by Adrian Bunk <bunk@stusta.de>

Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent a9606fd3
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -154,13 +154,6 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
	tuple.TupleOffset = 0;
	tuple.TupleDataMax = 255;
	tuple.Attributes = 0;
	tuple.DesiredTuple = CISTPL_CONFIG;

	CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(pdev, &tuple));
	CS_CHECK(GetTupleData, pcmcia_get_tuple_data(pdev, &tuple));
	CS_CHECK(ParseTuple, pcmcia_parse_tuple(pdev, &tuple, &stk->parse));
	pdev->conf.ConfigBase = stk->parse.config.base;
	pdev->conf.Present = stk->parse.config.rmask[0];

	/* See if we have a manufacturer identifier. Use it to set is_kme for
	   vendor quirks */
+1 −37
Original line number Diff line number Diff line
@@ -892,43 +892,10 @@ static void bluecard_detach(struct pcmcia_device *link)
}


static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
{
	int i;

	i = pcmcia_get_first_tuple(handle, tuple);
	if (i != CS_SUCCESS)
		return CS_NO_MORE_ITEMS;

	i = pcmcia_get_tuple_data(handle, tuple);
	if (i != CS_SUCCESS)
		return i;

	return pcmcia_parse_tuple(handle, tuple, parse);
}

static int bluecard_config(struct pcmcia_device *link)
{
	bluecard_info_t *info = link->priv;
	tuple_t tuple;
	u_short buf[256];
	cisparse_t parse;
	int i, n, last_ret, last_fn;

	tuple.TupleData = (cisdata_t *)buf;
	tuple.TupleOffset = 0;
	tuple.TupleDataMax = 255;
	tuple.Attributes = 0;

	/* Get configuration register information */
	tuple.DesiredTuple = CISTPL_CONFIG;
	last_ret = first_tuple(link, &tuple, &parse);
	if (last_ret != CS_SUCCESS) {
		last_fn = ParseTuple;
		goto cs_failed;
	}
	link->conf.ConfigBase = parse.config.base;
	link->conf.Present = parse.config.rmask[0];
	int i, n;

	link->conf.ConfigIndex = 0x20;
	link->io.NumPorts1 = 64;
@@ -966,9 +933,6 @@ static int bluecard_config(struct pcmcia_device *link)

	return 0;

cs_failed:
	cs_error(link, last_fn, last_ret);

failed:
	bluecard_release(link);
	return -ENODEV;
+1 −19
Original line number Diff line number Diff line
@@ -713,22 +713,7 @@ static int bt3c_config(struct pcmcia_device *link)
	u_short buf[256];
	cisparse_t parse;
	cistpl_cftable_entry_t *cf = &parse.cftable_entry;
	int i, j, try, last_ret, last_fn;

	tuple.TupleData = (cisdata_t *)buf;
	tuple.TupleOffset = 0;
	tuple.TupleDataMax = 255;
	tuple.Attributes = 0;

	/* Get configuration register information */
	tuple.DesiredTuple = CISTPL_CONFIG;
	last_ret = first_tuple(link, &tuple, &parse);
	if (last_ret != CS_SUCCESS) {
		last_fn = ParseTuple;
		goto cs_failed;
	}
	link->conf.ConfigBase = parse.config.base;
	link->conf.Present = parse.config.rmask[0];
	int i, j, try;

	/* First pass: look for a config entry that looks normal. */
	tuple.TupleData = (cisdata_t *)buf;
@@ -802,9 +787,6 @@ static int bt3c_config(struct pcmcia_device *link)

	return 0;

cs_failed:
	cs_error(link, last_fn, last_ret);

failed:
	bt3c_release(link);
	return -ENODEV;
+1 −19
Original line number Diff line number Diff line
@@ -644,22 +644,7 @@ static int btuart_config(struct pcmcia_device *link)
	u_short buf[256];
	cisparse_t parse;
	cistpl_cftable_entry_t *cf = &parse.cftable_entry;
	int i, j, try, last_ret, last_fn;

	tuple.TupleData = (cisdata_t *)buf;
	tuple.TupleOffset = 0;
	tuple.TupleDataMax = 255;
	tuple.Attributes = 0;

	/* Get configuration register information */
	tuple.DesiredTuple = CISTPL_CONFIG;
	last_ret = first_tuple(link, &tuple, &parse);
	if (last_ret != CS_SUCCESS) {
		last_fn = ParseTuple;
		goto cs_failed;
	}
	link->conf.ConfigBase = parse.config.base;
	link->conf.Present = parse.config.rmask[0];
	int i, j, try;

	/* First pass: look for a config entry that looks normal. */
	tuple.TupleData = (cisdata_t *) buf;
@@ -734,9 +719,6 @@ static int btuart_config(struct pcmcia_device *link)

	return 0;

cs_failed:
	cs_error(link, last_fn, last_ret);

failed:
	btuart_release(link);
	return -ENODEV;
+1 −19
Original line number Diff line number Diff line
@@ -626,22 +626,7 @@ static int dtl1_config(struct pcmcia_device *link)
	u_short buf[256];
	cisparse_t parse;
	cistpl_cftable_entry_t *cf = &parse.cftable_entry;
	int i, last_ret, last_fn;

	tuple.TupleData = (cisdata_t *)buf;
	tuple.TupleOffset = 0;
	tuple.TupleDataMax = 255;
	tuple.Attributes = 0;

	/* Get configuration register information */
	tuple.DesiredTuple = CISTPL_CONFIG;
	last_ret = first_tuple(link, &tuple, &parse);
	if (last_ret != CS_SUCCESS) {
		last_fn = ParseTuple;
		goto cs_failed;
	}
	link->conf.ConfigBase = parse.config.base;
	link->conf.Present = parse.config.rmask[0];
	int i;

	tuple.TupleData = (cisdata_t *)buf;
	tuple.TupleOffset = 0;
@@ -690,9 +675,6 @@ static int dtl1_config(struct pcmcia_device *link)

	return 0;

cs_failed:
	cs_error(link, last_fn, last_ret);

failed:
	dtl1_release(link);
	return -ENODEV;
Loading