aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mii
diff options
context:
space:
mode:
authorPaul Saab <ps@FreeBSD.org>2003-05-04 02:03:20 +0000
committerPaul Saab <ps@FreeBSD.org>2003-05-04 02:03:20 +0000
commit20430a6b04886a972708255c8d7d1a3b4b9fdb6b (patch)
tree77b58c4e59ac0346918d95695cd0f96241e089b2 /sys/dev/mii
parent8c787209180f6b3e3e9f4cec1b938e81d887f09b (diff)
downloadsrc-20430a6b04886a972708255c8d7d1a3b4b9fdb6b.tar.gz
src-20430a6b04886a972708255c8d7d1a3b4b9fdb6b.zip
Something I missed in my tree.
If the media changes, poke the DSP on the 5401/5411 Broadcom PHY's. Obtained from: NetBSD
Notes
Notes: svn path=/head/; revision=114628
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/brgphy.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index 7f426882d4cb..614d0af9a405 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -341,8 +341,24 @@ setit:
/* Update the media status. */
brgphy_status(sc);
- /* Callback if something changed. */
- mii_phy_update(sc, cmd);
+ /*
+ * Callback if something changed. Note that we need to poke
+ * the DSP on the Broadcom PHYs if the media changes.
+ *
+ */
+ if (sc->mii_media_active != mii->mii_media_active ||
+ sc->mii_media_status != mii->mii_media_status ||
+ cmd == MII_MEDIACHG) {
+ mii_phy_update(sc, cmd);
+ switch (brgphy_mii_model) {
+ case MII_MODEL_xxBROADCOM_BCM5401:
+ bcm5401_load_dspcode(sc);
+ break;
+ case MII_MODEL_xxBROADCOM_BCM5411:
+ bcm5411_load_dspcode(sc);
+ break;
+ }
+ }
return (0);
}