summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2000-09-20 00:59:17 +0000
committerwpaul <wpaul@FreeBSD.org>2000-09-20 00:59:17 +0000
commit1794dd585719ba2b3eabff1b40720ff5ccb7649c (patch)
treeea5b690acbf6c99dced8fc75c9fc41df9d7e9f0d /sys/pci
parent8727af6e0f5df46a3f1f3297568cabb65da19a0a (diff)
downloadFreeBSD-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.c13
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) {
OpenPOWER on IntegriCloud