diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c index 5ec115f7081..5fc735fdd5f 100644 --- a/sys/dev/dwc/if_dwc.c +++ b/sys/dev/dwc/if_dwc.c @@ -1166,6 +1166,12 @@ dwc_init_locked(struct dwc_softc *sc) if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) return; + /* + * Call mii_mediachg() which will call back into dwc_miibus_statchg() + * to set up the remaining config registers based on current media. + */ + mii_mediachg(sc->mii_softc); + dwc_setup_rxfilter(sc); dwc_setup_core(sc); dwc_enable_mac(sc, true); @@ -1174,11 +1180,6 @@ dwc_init_locked(struct dwc_softc *sc) if_setdrvflagbits(ifp, IFF_DRV_RUNNING, IFF_DRV_OACTIVE); - /* - * Call mii_mediachg() which will call back into dwc_miibus_statchg() - * to set up the remaining config registers based on current media. - */ - mii_mediachg(sc->mii_softc); callout_reset(&sc->dwc_callout, hz, dwc_tick, sc); }