diff options
Diffstat (limited to 'sys/dev/msk/if_msk.c')
-rw-r--r-- | sys/dev/msk/if_msk.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c index 37ee752..4c144fd 100644 --- a/sys/dev/msk/if_msk.c +++ b/sys/dev/msk/if_msk.c @@ -401,9 +401,6 @@ msk_miibus_readreg(device_t dev, int phy, int reg) { struct msk_if_softc *sc_if; - if (phy != PHY_ADDR_MARV) - return (0); - sc_if = device_get_softc(dev); return (msk_phy_readreg(sc_if, phy, reg)); @@ -442,9 +439,6 @@ msk_miibus_writereg(device_t dev, int phy, int reg, int val) { struct msk_if_softc *sc_if; - if (phy != PHY_ADDR_MARV) - return (0); - sc_if = device_get_softc(dev); return (msk_phy_writereg(sc_if, phy, reg, val)); @@ -1647,10 +1641,11 @@ msk_attach(device_t dev) * Do miibus setup. */ MSK_IF_UNLOCK(sc_if); - error = mii_phy_probe(dev, &sc_if->msk_miibus, msk_mediachange, - msk_mediastatus); + error = mii_attach(dev, &sc_if->msk_miibus, ifp, msk_mediachange, + msk_mediastatus, BMSR_DEFCAPMASK, PHY_ADDR_MARV, MII_OFFSET_ANY, + mmd->mii_flags); if (error != 0) { - device_printf(sc_if->msk_if_dev, "no PHY found!\n"); + device_printf(sc_if->msk_if_dev, "attaching PHYs failed\n"); ether_ifdetach(ifp); error = ENXIO; goto fail; @@ -1891,8 +1886,10 @@ mskc_attach(device_t dev) } mmd->port = MSK_PORT_A; mmd->pmd = sc->msk_pmd; - if (sc->msk_pmd == 'L' || sc->msk_pmd == 'S' || sc->msk_pmd == 'P') + if (sc->msk_pmd == 'L' || sc->msk_pmd == 'S') mmd->mii_flags |= MIIF_HAVEFIBER; + if (sc->msk_pmd == 'P') + mmd->mii_flags |= MIIF_HAVEFIBER | MIIF_MACPRIV0; device_set_ivars(sc->msk_devs[MSK_PORT_A], mmd); if (sc->msk_num_port > 1) { @@ -1911,8 +1908,10 @@ mskc_attach(device_t dev) } mmd->port = MSK_PORT_B; mmd->pmd = sc->msk_pmd; - if (sc->msk_pmd == 'L' || sc->msk_pmd == 'S' || sc->msk_pmd == 'P') + if (sc->msk_pmd == 'L' || sc->msk_pmd == 'S') mmd->mii_flags |= MIIF_HAVEFIBER; + if (sc->msk_pmd == 'P') + mmd->mii_flags |= MIIF_HAVEFIBER | MIIF_MACPRIV0; device_set_ivars(sc->msk_devs[MSK_PORT_B], mmd); } |