diff options
author | imp <imp@FreeBSD.org> | 2002-07-22 21:28:46 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2002-07-22 21:28:46 +0000 |
commit | 29d1e263c10ad549392e07dfcbc9d88f9c81b14c (patch) | |
tree | 207d7a8cf6ef1bd6d0045001e54dc093499f7684 /sys/dev/ed | |
parent | f1d60c06e8eb7cb8fd34c17e3dc8d4591284e8c9 (diff) | |
download | FreeBSD-src-29d1e263c10ad549392e07dfcbc9d88f9c81b14c.zip FreeBSD-src-29d1e263c10ad549392e07dfcbc9d88f9c81b14c.tar.gz |
integrate from p4 repo:
o Honor NE2000DVF_{AX88190,DL10019} flags by setting the ED_FLAGS_xxxx
flag.
o Mark linksys combo_ecard as ax88190
o Set the type_str to AX88190 for the ax88190 cards.
This fixes ax88190 based cards, for the most part, but doesn't seem to fix
the mii based dl10019 cards (aka linksys cards).
Diffstat (limited to 'sys/dev/ed')
-rw-r--r-- | sys/dev/ed/if_ed_pccard.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/sys/dev/ed/if_ed_pccard.c b/sys/dev/ed/if_ed_pccard.c index afe02ae..6c8ea62 100644 --- a/sys/dev/ed/if_ed_pccard.c +++ b/sys/dev/ed/if_ed_pccard.c @@ -192,7 +192,7 @@ static const struct ed_product { * MAC address check. */ { PCMCIA_CARD(LINKSYS, COMBO_ECARD, 0), - -1, { 0x00, 0x90, 0xcc }, NE2000DVF_AX88190 }, + -1, { 0x00, 0x90, 0xcc }, NE2000DVF_DL10019 }, { PCMCIA_CARD(LINKSYS, ETHERFAST, 0), -1, { 0x00, 0x80, 0xc8 }, NE2000DVF_DL10019 }, { PCMCIA_CARD(LINKSYS, ETHERFAST, 0), @@ -201,8 +201,6 @@ static const struct ed_product { -1, { 0x00, 0xe0, 0x98 }, NE2000DVF_DL10019 }, { PCMCIA_CARD2(LINKSYS, ETHERFAST, MELCO_LPC2_TX, 0), -1, { 0x00, 0x40, 0x26 }, NE2000DVF_DL10019 }, - { PCMCIA_CARD(LINKSYS, COMBO_ECARD, 0), - -1, { 0x00, 0x80, 0xc8 } }, { PCMCIA_CARD(LINKSYS, TRUST_COMBO_ECARD, 0), 0x0120, { 0x20, 0x04, 0x49 } }, @@ -300,7 +298,7 @@ static const struct ed_product { { PCMCIA_CARD(NETGEAR, FA410TXC, 0), -1, { 0x00, 0x48, 0x54 } }, { PCMCIA_CARD(NETGEAR, FA411, 0), - -1, { 0x00, 0x40, 0xf4 } }, + -1, { 0x00, 0x40, 0xf4 }, NE2000DVF_AX88190}, #if 0 /* the rest of these are stolen from the linux pcnet pcmcia device @@ -389,15 +387,19 @@ static const struct ed_product { static int ed_pccard_match(device_t dev) { - const struct pccard_product *pp; + const struct ed_product *pp; - if ((pp = pccard_product_lookup(dev, + if ((pp = (const struct ed_product *) pccard_product_lookup(dev, (const struct pccard_product *) ed_pccard_products, sizeof(ed_pccard_products[0]), NULL)) != NULL) { - device_set_desc(dev, pp->pp_name); - return 0; + device_set_desc(dev, pp->prod.pp_name); + if (pp->flags & NE2000DVF_DL10019) + device_set_flags(dev, ED_FLAGS_LINKSYS); + else if (pp->flags & NE2000DVF_AX88190) + device_set_flags(dev, ED_FLAGS_AX88190); + return (0); } - return EIO; + return (EIO); } /* @@ -621,6 +623,11 @@ ed_pccard_ax88190(device_t dev) ax88190_geteprom(sc); ed_release_resources(dev); error = ed_probe_Novell(dev, 0, flags); + if (error == 0) { + sc->vendor = ED_VENDOR_PCCARD; + sc->type = ED_TYPE_NE2000; + sc->type_str = "AX88190"; + } return (error); } |