diff options
author | peter <peter@FreeBSD.org> | 2001-01-07 21:24:41 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-01-07 21:24:41 +0000 |
commit | 98a14853d90aeca5871b2412955bbed2d3d9e06b (patch) | |
tree | fec650907a0165e3f258156eceec9ffd5b5bb49e /sys/dev/ep/if_ep_pccard.c | |
parent | e32240b99a8d48287f599734cac19327674038b7 (diff) | |
download | FreeBSD-src-98a14853d90aeca5871b2412955bbed2d3d9e06b.zip FreeBSD-src-98a14853d90aeca5871b2412955bbed2d3d9e06b.tar.gz |
Add the 3COM ID's that I could find in the pccarddevs file that seemed
to match the pccard.conf file. There are more ID's that need adding, but
these seem to be the common ones.
This was committed on an ep0 interface under NEWCARD:
ep0: <3Com 3c589 10Mbps Ethernet> at port 0x300-0x30f irq 9 function 0 config 1 on pccard1
ep0: Ethernet address 00:10:4b:df:48:57
Reviewed by: imp
Diffstat (limited to 'sys/dev/ep/if_ep_pccard.c')
-rw-r--r-- | sys/dev/ep/if_ep_pccard.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/dev/ep/if_ep_pccard.c b/sys/dev/ep/if_ep_pccard.c index 7f86b94..c22010b 100644 --- a/sys/dev/ep/if_ep_pccard.c +++ b/sys/dev/ep/if_ep_pccard.c @@ -58,6 +58,7 @@ #include "card_if.h" #include <dev/pccard/pccardvar.h> +#include <dev/pccard/pccarddevs.h> static const char *ep_pccard_identify(u_short id); @@ -239,9 +240,30 @@ ep_pccard_detach(device_t dev) return (0); } +static const struct pccard_product ep_pccard_products[] = { + { PCCARD_STR_3COM_3C574, PCCARD_VENDOR_3COM, + PCCARD_PRODUCT_3COM_3C574, 0, NULL, NULL }, + { PCCARD_STR_3COM_3C589, PCCARD_VENDOR_3COM, + PCCARD_PRODUCT_3COM_3C589, 0, NULL, NULL }, + { PCCARD_STR_3COM_3CXEM556, PCCARD_VENDOR_3COM, + PCCARD_PRODUCT_3COM_3CXEM556, 0, NULL, NULL }, + { PCCARD_STR_3COM_3CXEM556INT, PCCARD_VENDOR_3COM, + PCCARD_PRODUCT_3COM_3CXEM556INT, 0, NULL, NULL }, + { PCCARD_STR_3COM_3CCFEM556BI, PCCARD_VENDOR_3COM, + PCCARD_PRODUCT_3COM_3CCFEM556BI, 0, NULL, NULL }, + { NULL } +}; + static int ep_pccard_match(device_t dev) { + const struct pccard_product *pp; + + if ((pp = pccard_product_lookup(dev, ep_pccard_products, + sizeof(ep_pccard_products[0]), NULL)) != NULL) { + device_set_desc(dev, pp->pp_name); + return 0; + } return EIO; } |