git: 9d5a14887559 - stable/14 - e1000: Identify SerDes adapters with LED blink

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Wed, 26 Aug 2026 01:00:05 UTC
The branch stable/14 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=9d5a1488755938edf8a05d472fe68399b9129c11

commit 9d5a1488755938edf8a05d472fe68399b9129c11
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-08-12 00:29:17 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-08-26 00:59:48 +0000

    e1000: Identify SerDes adapters with LED blink
    
    The generic LED on and off operations do not handle internal SerDes
    media, leaving the led(4) device ineffective on my I210 fiber port.
    
    Use the hardware blink operation for the on phase on internal SerDes.
    The off phase restores the saved OEM LED configuration as before.
    
    (cherry picked from commit 28f96cc3748fc46408cc6ab6172f09bc2182cad7)
---
 sys/dev/e1000/if_em.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 704fd099870b..c9abee7eb65e 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -4924,7 +4924,10 @@ em_if_led_func(if_ctx_t ctx, int onoff)
 
 	if (onoff) {
 		e1000_setup_led(&sc->hw);
-		e1000_led_on(&sc->hw);
+		if (sc->hw.phy.media_type == e1000_media_type_internal_serdes)
+			e1000_blink_led(&sc->hw);
+		else
+			e1000_led_on(&sc->hw);
 	} else {
 		e1000_led_off(&sc->hw);
 		e1000_cleanup_led(&sc->hw);