diff --git a/mac80211.c b/mac80211.c index 7fe7f68ac..28203208b 100644 --- a/mac80211.c +++ b/mac80211.c @@ -196,14 +196,12 @@ static int mt76_led_init(struct mt76_phy *phy) { struct mt76_dev *dev = phy->dev; struct ieee80211_hw *hw = phy->hw; + const char *led_label; if (!phy->leds.cdev.brightness_set && !phy->leds.cdev.blink_set) return 0; - snprintf(phy->leds.name, sizeof(phy->leds.name), "mt76-%s", - wiphy_name(hw->wiphy)); - - phy->leds.cdev.name = phy->leds.name; + phy->leds.cdev.name = NULL; phy->leds.cdev.default_trigger = ieee80211_create_tpt_led_trigger(hw, IEEE80211_TPT_LEDTRIG_FL_RADIO, @@ -221,10 +219,19 @@ static int mt76_led_init(struct mt76_phy *phy) phy->leds.pin = led_pin; phy->leds.al = of_property_read_bool(np, "led-active-low"); + if (!of_property_read_string(np, "label", &led_label)) { + phy->leds.cdev.name = led_label; + } of_node_put(np); } } + if (!phy->leds.cdev.name) { + snprintf(phy->leds.name, sizeof(phy->leds.name), "mt76-%s", + wiphy_name(hw->wiphy)); + phy->leds.cdev.name = phy->leds.name; + } + return led_classdev_register(dev->dev, &phy->leds.cdev); }