summaryrefslogtreecommitdiffstats
path: root/sys/dev/gem/if_gem_pci.c
diff options
context:
space:
mode:
authorbenno <benno@FreeBSD.org>2002-07-10 10:24:23 +0000
committerbenno <benno@FreeBSD.org>2002-07-10 10:24:23 +0000
commitc04f2a4cddd9c20c6ade603b2184d9589561ed90 (patch)
tree59419e0670d18b76107059ef309fecded9fd9b5f /sys/dev/gem/if_gem_pci.c
parent9e81110a6ef2934f0e55dd5e0afbc4fcac5df4f0 (diff)
downloadFreeBSD-src-c04f2a4cddd9c20c6ade603b2184d9589561ed90.zip
FreeBSD-src-c04f2a4cddd9c20c6ade603b2184d9589561ed90.tar.gz
Incorporate changes made to the NetBSD version of this driver.
- Remove some obsolete code (NetBSD gem.c r1.12) - Clean up how the local MAC address is programmed (NetBSD gem.c r1.13) - Make the driver work on PowerMacs with gigabit interfaces (NetBSD gem.c r1.14 and r1.15, gemreg.h r1.3 and r1.4, gemvar.h r1.6 and 1.7) - Suppress RX_MAC interrutps regarding the FRAME_COUNT register. (NetBSD gem.c r1.16 and r1.17) - Fix receiver lockups. (NetBSD gem.c r1.18, gemvar.h r1.8) - Distinguish between Apple and Sun variants (NetBSD if_gem_pci.c r1.9) Reviewed by: tmm Obtained from: NetBSD
Diffstat (limited to 'sys/dev/gem/if_gem_pci.c')
-rw-r--r--sys/dev/gem/if_gem_pci.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/gem/if_gem_pci.c b/sys/dev/gem/if_gem_pci.c
index 44f945b..a2b5e27 100644
--- a/sys/dev/gem/if_gem_pci.c
+++ b/sys/dev/gem/if_gem_pci.c
@@ -107,12 +107,13 @@ DRIVER_MODULE(if_gem, pci, gem_pci_driver, gem_devclass, 0, 0);
struct gem_pci_dev {
u_int32_t gpd_devid;
+ int gpd_variant;
char *gpd_desc;
} gem_pci_devlist[] = {
- { 0x1101108e, "Sun ERI 10/100 Ethernet Adaptor" },
- { 0x2bad108e, "Sun GEM Gigabit Ethernet Adaptor" },
- { 0x0021106b, "Apple GMAC Ethernet Adaptor" },
- { 0x0024106b, "Apple GMAC2 Ethernet Adaptor" },
+ { 0x1101108e, GEM_SUN_GEM, "Sun ERI 10/100 Ethernet Adaptor" },
+ { 0x2bad108e, GEM_SUN_GEM, "Sun GEM Gigabit Ethernet Adaptor" },
+ { 0x0021106b, GEM_APPLE_GMAC, "Apple GMAC Ethernet Adaptor" },
+ { 0x0024106b, GEM_APPLE_GMAC, "Apple GMAC2 Ethernet Adaptor" },
{ 0, NULL }
};
@@ -125,11 +126,15 @@ gem_pci_probe(dev)
{
int i;
u_int32_t devid;
+ struct gem_pci_softc *gsc;
devid = pci_get_devid(dev);
for (i = 0; gem_pci_devlist[i].gpd_desc != NULL; i++) {
if (devid == gem_pci_devlist[i].gpd_devid) {
device_set_desc(dev, gem_pci_devlist[i].gpd_desc);
+ gsc = device_get_softc(dev);
+ gsc->gsc_gem.sc_variant =
+ gem_pci_devlist[i].gpd_variant;
return (0);
}
}
OpenPOWER on IntegriCloud