diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-10-18 12:28:39 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-11-08 12:06:53 -0500 |
commit | aaa8cfdada648a6bae32f62df76cc60137a2b323 (patch) | |
tree | c610da3b895ed6fdcda058dc08962b0248624c98 /drivers/net/pcmcia | |
parent | 7d2e8d00b47b973c92db4df7444d5e6d3bb945f9 (diff) |
pcmcia: use pcmcia_loop_config in misc pcmcia drivers
Use pcmcia_loop_config() in a few drivers missed during the first
round. On fmvj18x_cs.c it -- strangely -- only requries us to set
conf.ConfigIndex, which is done by the core, so include an empty
loop function which returns 0 unconditionally.
CC: David S. Miller <davem@davemloft.net>
CC: David Sterba <dsterba@suse.cz>
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
For the ipwireless part: Acked-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/pcmcia')
-rw-r--r-- | drivers/net/pcmcia/fmvj18x_cs.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c index 7e01fbdb87e0..c7a2bbfaf821 100644 --- a/drivers/net/pcmcia/fmvj18x_cs.c +++ b/drivers/net/pcmcia/fmvj18x_cs.c | |||
@@ -341,14 +341,23 @@ static int ungermann_try_io_port(struct pcmcia_device *link) | |||
341 | return ret; /* RequestIO failed */ | 341 | return ret; /* RequestIO failed */ |
342 | } | 342 | } |
343 | 343 | ||
344 | static int fmvj18x_ioprobe(struct pcmcia_device *p_dev, | ||
345 | cistpl_cftable_entry_t *cfg, | ||
346 | cistpl_cftable_entry_t *dflt, | ||
347 | unsigned int vcc, | ||
348 | void *priv_data) | ||
349 | { | ||
350 | return 0; /* strange, but that's what the code did already before... */ | ||
351 | } | ||
352 | |||
353 | |||
344 | static int fmvj18x_config(struct pcmcia_device *link) | 354 | static int fmvj18x_config(struct pcmcia_device *link) |
345 | { | 355 | { |
346 | struct net_device *dev = link->priv; | 356 | struct net_device *dev = link->priv; |
347 | local_info_t *lp = netdev_priv(dev); | 357 | local_info_t *lp = netdev_priv(dev); |
348 | tuple_t tuple; | 358 | tuple_t tuple; |
349 | cisparse_t parse; | ||
350 | u_short buf[32]; | 359 | u_short buf[32]; |
351 | int i, last_fn = 0, last_ret = 0, ret; | 360 | int i, last_fn = RequestIO, last_ret = 0, ret; |
352 | unsigned int ioaddr; | 361 | unsigned int ioaddr; |
353 | cardtype_t cardtype; | 362 | cardtype_t cardtype; |
354 | char *card_name = "unknown"; | 363 | char *card_name = "unknown"; |
@@ -362,12 +371,11 @@ static int fmvj18x_config(struct pcmcia_device *link) | |||
362 | tuple.DesiredTuple = CISTPL_FUNCE; | 371 | tuple.DesiredTuple = CISTPL_FUNCE; |
363 | tuple.TupleOffset = 0; | 372 | tuple.TupleOffset = 0; |
364 | if (pcmcia_get_first_tuple(link, &tuple) == 0) { | 373 | if (pcmcia_get_first_tuple(link, &tuple) == 0) { |
374 | last_ret = pcmcia_loop_config(link, fmvj18x_ioprobe, NULL); | ||
375 | if (last_ret != 0) | ||
376 | goto cs_failed; | ||
377 | |||
365 | /* Yes, I have CISTPL_FUNCE. Let's check CISTPL_MANFID */ | 378 | /* Yes, I have CISTPL_FUNCE. Let's check CISTPL_MANFID */ |
366 | tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; | ||
367 | CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple)); | ||
368 | CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple)); | ||
369 | CS_CHECK(ParseTuple, pcmcia_parse_tuple(&tuple, &parse)); | ||
370 | link->conf.ConfigIndex = parse.cftable_entry.index; | ||
371 | switch (link->manf_id) { | 379 | switch (link->manf_id) { |
372 | case MANFID_TDK: | 380 | case MANFID_TDK: |
373 | cardtype = TDK; | 381 | cardtype = TDK; |