summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/inphy.c
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2006-12-27 19:11:08 +0000
committerkettenis <kettenis@openbsd.org>2006-12-27 19:11:08 +0000
commitbc654221f2dffd406d146fa31511814f9a453db2 (patch)
tree70be9595eb22c5ee11d64d8d190b6c852c7d7dd9 /sys/dev/mii/inphy.c
parentpnozz is initialized by the prom in 8bpp mode, so don't bring high-depth (diff)
downloadwireguard-openbsd-bc654221f2dffd406d146fa31511814f9a453db2.tar.xz
wireguard-openbsd-bc654221f2dffd406d146fa31511814f9a453db2.zip
Always explicitly set IFM_HDX for half-duplex.
From brad@
Diffstat (limited to 'sys/dev/mii/inphy.c')
-rw-r--r--sys/dev/mii/inphy.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/mii/inphy.c b/sys/dev/mii/inphy.c
index 2f0861649f4..c11228a53d5 100644
--- a/sys/dev/mii/inphy.c
+++ b/sys/dev/mii/inphy.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: inphy.c,v 1.13 2005/02/19 06:00:04 brad Exp $ */
+/* $OpenBSD: inphy.c,v 1.14 2006/12/27 19:11:08 kettenis Exp $ */
/* $NetBSD: inphy.c,v 1.18 2000/02/02 23:34:56 thorpej Exp $ */
/*-
@@ -257,6 +257,7 @@ inphy_status(sc)
mii->mii_media_active |= IFM_NONE;
return;
}
+
scr = PHY_READ(sc, MII_INPHY_SCR);
if ((bmsr & BMSR_100T4) && (scr & SCR_T4))
mii->mii_media_active |= IFM_100_T4;
@@ -264,8 +265,11 @@ inphy_status(sc)
mii->mii_media_active |= IFM_100_TX;
else
mii->mii_media_active |= IFM_10_T;
+
if (scr & SCR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}