[PATCH wireless-next v2 1/2] wifi: mt76: share the throughput LED trigger across bands
Petr Wozniak
petr.wozniak at gmail.com
Tue Jul 14 03:26:14 PDT 2026
ieee80211_create_tpt_led_trigger() creates one trigger per ieee80211_hw
and returns NULL with a WARN_ON() if called again for the same hw.
Under the single-wiphy MLO model each band registers its own LED classdev
for the same hw, and the bands can be initialised in any order. Create the
trigger on the first mt76_led_init() call, stash it on the primary phy's
classdev and let the other bands reuse it. This avoids the WARN_ON() splat
and gives every band the same throughput trigger regardless of init order.
Signed-off-by: Petr Wozniak <petr.wozniak at gmail.com>
---
drivers/net/wireless/mediatek/mt76/mac80211.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
index 13c4e8abe..0c6641050 100644
--- a/drivers/net/wireless/mediatek/mt76/mac80211.c
+++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
@@ -228,11 +228,19 @@ static int mt76_led_init(struct mt76_phy *phy)
wiphy_name(hw->wiphy));
phy->leds.cdev.name = phy->leds.name;
- phy->leds.cdev.default_trigger =
- ieee80211_create_tpt_led_trigger(hw,
- IEEE80211_TPT_LEDTRIG_FL_RADIO,
- mt76_tpt_blink,
- ARRAY_SIZE(mt76_tpt_blink));
+ /* The throughput trigger is created once per ieee80211_hw. Under
+ * single-wiphy MLO every band registers its own LED classdev for the
+ * same hw and the bands can come up in any order, so create the trigger
+ * on the first call, stash it on the primary phy and let other bands
+ * reuse it; calling it again would trip a WARN_ON().
+ */
+ if (!dev->phy.leds.cdev.default_trigger)
+ dev->phy.leds.cdev.default_trigger =
+ ieee80211_create_tpt_led_trigger(hw,
+ IEEE80211_TPT_LEDTRIG_FL_RADIO,
+ mt76_tpt_blink,
+ ARRAY_SIZE(mt76_tpt_blink));
+ phy->leds.cdev.default_trigger = dev->phy.leds.cdev.default_trigger;
dev_info(dev->dev,
"registering led '%s'\n", phy->leds.name);
--
2.51.0
More information about the Linux-mediatek
mailing list