diff options
author | wpaul <wpaul@FreeBSD.org> | 2000-09-20 00:59:17 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2000-09-20 00:59:17 +0000 |
commit | 1794dd585719ba2b3eabff1b40720ff5ccb7649c (patch) | |
tree | ea5b690acbf6c99dced8fc75c9fc41df9d7e9f0d /sys/pci | |
parent | 8727af6e0f5df46a3f1f3297568cabb65da19a0a (diff) | |
download | FreeBSD-src-1794dd585719ba2b3eabff1b40720ff5ccb7649c.zip FreeBSD-src-1794dd585719ba2b3eabff1b40720ff5ccb7649c.tar.gz |
If this is a Davicom DM9102A and we're enabling the homePNA link, force
dc_link to 1 and don't activate the tick routine. Without this, dc_start()
always thinks the link is down and never transmits in homePNA mode.
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/if_dc.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c index 1b069c7..039f835 100644 --- a/sys/pci/if_dc.c +++ b/sys/pci/if_dc.c @@ -2765,10 +2765,15 @@ static void dc_init(xsc) (void)splx(s); - if (sc->dc_flags & DC_21143_NWAY) - sc->dc_stat_ch = timeout(dc_tick, sc, hz/10); - else - sc->dc_stat_ch = timeout(dc_tick, sc, hz); + /* Don't start the ticker if this is a homePNA link. */ + if (IFM_SUBTYPE(mii->mii_media.ifm_media) == IFM_homePNA) + sc->dc_link = 1; + else { + if (sc->dc_flags & DC_21143_NWAY) + sc->dc_stat_ch = timeout(dc_tick, sc, hz/10); + else + sc->dc_stat_ch = timeout(dc_tick, sc, hz); + } #ifdef __alpha__ if(sc->dc_srm_media) { |