diff options
author | benno <benno@FreeBSD.org> | 2002-07-10 10:24:23 +0000 |
---|---|---|
committer | benno <benno@FreeBSD.org> | 2002-07-10 10:24:23 +0000 |
commit | c04f2a4cddd9c20c6ade603b2184d9589561ed90 (patch) | |
tree | 59419e0670d18b76107059ef309fecded9fd9b5f /sys/dev/gem/if_gem_pci.c | |
parent | 9e81110a6ef2934f0e55dd5e0afbc4fcac5df4f0 (diff) | |
download | FreeBSD-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.c | 13 |
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); } } |