aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia/fmvj18x_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2006-10-25 21:28:53 -0400
committerDominik Brodowski <linux@dominikbrodowski.net>2006-12-04 20:09:20 -0500
commitefd50585e2ff9bd60e044fda7764d323010a7fe4 (patch)
treef43f8f10a3cfe6ceb1b5cede6581f79134ca0e63 /drivers/net/pcmcia/fmvj18x_cs.c
parent44e5e33e99e1b955ac6f0bb26abd9380629b48a9 (diff)
[PATCH] pcmcia: remove manf_id and card_id indirection
As we read out the manufactor and card_id from the PCMCIA device in the PCMCIA core, and device drivers can access those reliably in struct pcmcia_device's fields manf_id and card_id, remove additional (and partly broken) manf_id and card_id detection logic from PCMCIA device drivers. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/pcmcia/fmvj18x_cs.c')
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 65f6fdf43725..e3731fd15606 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -374,17 +374,12 @@ static int fmvj18x_config(struct pcmcia_device *link)
374 CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple)); 374 CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple));
375 CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, &parse)); 375 CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, &parse));
376 link->conf.ConfigIndex = parse.cftable_entry.index; 376 link->conf.ConfigIndex = parse.cftable_entry.index;
377 tuple.DesiredTuple = CISTPL_MANFID; 377 switch (link->manf_id) {
378 if (pcmcia_get_first_tuple(link, &tuple) == CS_SUCCESS)
379 CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple));
380 else
381 buf[0] = 0xffff;
382 switch (le16_to_cpu(buf[0])) {
383 case MANFID_TDK: 378 case MANFID_TDK:
384 cardtype = TDK; 379 cardtype = TDK;
385 if (le16_to_cpu(buf[1]) == PRODID_TDK_GN3410 380 if (link->card_id == PRODID_TDK_GN3410
386 || le16_to_cpu(buf[1]) == PRODID_TDK_NP9610 381 || link->card_id == PRODID_TDK_NP9610
387 || le16_to_cpu(buf[1]) == PRODID_TDK_MN3200) { 382 || link->card_id == PRODID_TDK_MN3200) {
388 /* MultiFunction Card */ 383 /* MultiFunction Card */
389 link->conf.ConfigBase = 0x800; 384 link->conf.ConfigBase = 0x800;
390 link->conf.ConfigIndex = 0x47; 385 link->conf.ConfigIndex = 0x47;
@@ -395,11 +390,11 @@ static int fmvj18x_config(struct pcmcia_device *link)
395 cardtype = CONTEC; 390 cardtype = CONTEC;
396 break; 391 break;
397 case MANFID_FUJITSU: 392 case MANFID_FUJITSU:
398 if (le16_to_cpu(buf[1]) == PRODID_FUJITSU_MBH10302) 393 if (link->card_id == PRODID_FUJITSU_MBH10302)
399 /* RATOC REX-5588/9822/4886's PRODID are 0004(=MBH10302), 394 /* RATOC REX-5588/9822/4886's PRODID are 0004(=MBH10302),
400 but these are MBH10304 based card. */ 395 but these are MBH10304 based card. */
401 cardtype = MBH10304; 396 cardtype = MBH10304;
402 else if (le16_to_cpu(buf[1]) == PRODID_FUJITSU_MBH10304) 397 else if (link->card_id == PRODID_FUJITSU_MBH10304)
403 cardtype = MBH10304; 398 cardtype = MBH10304;
404 else 399 else
405 cardtype = LA501; 400 cardtype = LA501;
@@ -409,14 +404,9 @@ static int fmvj18x_config(struct pcmcia_device *link)
409 } 404 }
410 } else { 405 } else {
411 /* old type card */ 406 /* old type card */
412 tuple.DesiredTuple = CISTPL_MANFID; 407 switch (link->manf_id) {
413 if (pcmcia_get_first_tuple(link, &tuple) == CS_SUCCESS)
414 CS_CHECK(GetTupleData, pcmcia_get_tuple_data(link, &tuple));
415 else
416 buf[0] = 0xffff;
417 switch (le16_to_cpu(buf[0])) {
418 case MANFID_FUJITSU: 408 case MANFID_FUJITSU:
419 if (le16_to_cpu(buf[1]) == PRODID_FUJITSU_MBH10304) { 409 if (link->card_id == PRODID_FUJITSU_MBH10304) {
420 cardtype = XXX10304; /* MBH10304 with buggy CIS */ 410 cardtype = XXX10304; /* MBH10304 with buggy CIS */
421 link->conf.ConfigIndex = 0x20; 411 link->conf.ConfigIndex = 0x20;
422 } else { 412 } else {