diff options
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; |