Sharing a fix that's been a long-standing annoyance on MT7996/BE14 cards: only the 2.4 GHz LED ever worked — the 5/6 GHz band LEDs stayed dark, and a WARN_ON() fired at probe.
Root cause (single-wiphy MLO model): all bands register their own LED classdev (mt76-phy0/1/2) against the same ieee80211_hw. Two driver issues:
- The throughput LED trigger is one-per-
ieee80211_hw—ieee80211_create_tpt_led_trigger()warns and returns NULL on the second band, so secondary bands got a NULL trigger. mt7996assigned the LEDbrightness_set/blink_setcallbacks only to the primary (2.4 GHz) PHY, somt76_led_init()bailed for 5/6 GHz and never registered their classdevs.
Fix — two generic mt76 driver patches (mac80211.c + mt7996/init.c, ~25 lines):
wifi: mt76: share the throughput LED trigger across bandswifi: mt76: mt7996: register a LED classdev for every band
With both, all three per-band LEDs come up and blink on their own band's traffic — verified with single-band and active MLO clients.
Scope: this is a generic mt76/mt7996 fix, not board-specific — any MT7996/BE14 device benefits (the per-band hardware blink path already existed; only the classdev registration was missing). To light up on a given board you still need the DT to wire the gphy LED pins. Verified on BPI-R4 (incl. MLO).
Mainline (linux-wireless):
Series: [PATCH 0/2] wifi: mt76: fix per-band LEDs under single-wiphy MLO
lore: https://lore.kernel.org/linux-wireless/20260628095313.7790-1-petr.wozniak@gmail.com/
patchwork: https://patchwork.kernel.org/project/linux-wireless/list/?series=1117621