summaryrefslogtreecommitdiffstats
path: root/sys/dev/ep/if_ep_pccard.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-01-07 21:24:41 +0000
committerpeter <peter@FreeBSD.org>2001-01-07 21:24:41 +0000
commit98a14853d90aeca5871b2412955bbed2d3d9e06b (patch)
treefec650907a0165e3f258156eceec9ffd5b5bb49e /sys/dev/ep/if_ep_pccard.c
parente32240b99a8d48287f599734cac19327674038b7 (diff)
downloadFreeBSD-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.c22
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;
}
OpenPOWER on IntegriCloud