summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/lmc/if_lmc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/lmc/if_lmc.c b/sys/dev/lmc/if_lmc.c
index d6b586150..a04ef28 100644
--- a/sys/dev/lmc/if_lmc.c
+++ b/sys/dev/lmc/if_lmc.c
@@ -416,8 +416,6 @@ lmc_watchdog(lmc_softc_t * const sc)
LMC_PRINTF_ARGS);
if (sc->lmc_flags & LMC_IFUP)
lmc_ifup(sc);
- sc->lmc_flags |= LMC_MODEMOK;
- lmc_led_on(sc, LMC_MII16_LED1);
return;
}
@@ -448,7 +446,6 @@ lmc_ifup(lmc_softc_t * const sc)
sc->lmc_media->set_status(sc, NULL);
sc->lmc_flags |= LMC_IFUP;
- lmc_led_on(sc, LMC_MII16_LED1);
/*
* select what interrupts we want to get
@@ -471,6 +468,14 @@ lmc_ifup(lmc_softc_t * const sc)
untimeout(ng_lmc_watchdog_frame, sc, sc->lmc_handle);
sc->lmc_handle = timeout(ng_lmc_watchdog_frame, sc, hz);
sc->lmc_running = 1;
+
+ /*
+ * check if the physical link is up
+ */
+ if (sc->lmc_media->get_link_status(sc)) {
+ sc->lmc_flags |= LMC_MODEMOK;
+ lmc_led_on(sc, LMC_MII16_LED1);
+ }
}
/*
OpenPOWER on IntegriCloud