| From c923a26874c35d66cefc1d7cf31a34ccf45e27d0 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 20 Sep 2021 14:23:44 +0200 |
| Subject: ath5k: fix building with LEDS=m |
| |
| From: Arnd Bergmann <arnd@arndb.de> |
| |
| [ Upstream commit fb8c3a3c52400512fc8b3b61150057b888c30b0d ] |
| |
| Randconfig builds still show a failure for the ath5k driver, |
| similar to the one that was fixed for ath9k earlier: |
| |
| WARNING: unmet direct dependencies detected for MAC80211_LEDS |
| Depends on [n]: NET [=y] && WIRELESS [=y] && MAC80211 [=y] && (LEDS_CLASS [=m]=y || LEDS_CLASS [=m]=MAC80211 [=y]) |
| Selected by [m]: |
| - ATH5K [=m] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ATH [=y] && (PCI [=y] || ATH25) && MAC80211 [=y] |
| net/mac80211/led.c: In function 'ieee80211_alloc_led_names': |
| net/mac80211/led.c:34:22: error: 'struct led_trigger' has no member named 'name' |
| 34 | local->rx_led.name = kasprintf(GFP_KERNEL, "%srx", |
| | ^ |
| |
| Copying the same logic from my ath9k patch makes this one work |
| as well, stubbing out the calls to the LED subsystem. |
| |
| Fixes: b64acb28da83 ("ath9k: fix build error with LEDS_CLASS=m") |
| Fixes: 72cdab808714 ("ath9k: Do not select MAC80211_LEDS by default") |
| Fixes: 3a078876caee ("ath5k: convert LED code to use mac80211 triggers") |
| Link: https://lore.kernel.org/all/20210722105501.1000781-1-arnd@kernel.org/ |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Link: https://lore.kernel.org/r/20210920122359.353810-1-arnd@kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath5k/Kconfig | 4 +--- |
| drivers/net/wireless/ath/ath5k/led.c | 10 ++++++---- |
| 2 files changed, 7 insertions(+), 7 deletions(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath5k/Kconfig b/drivers/net/wireless/ath/ath5k/Kconfig |
| index f35cd8de228e..6914b37bb0fb 100644 |
| --- a/drivers/net/wireless/ath/ath5k/Kconfig |
| +++ b/drivers/net/wireless/ath/ath5k/Kconfig |
| @@ -3,9 +3,7 @@ config ATH5K |
| tristate "Atheros 5xxx wireless cards support" |
| depends on (PCI || ATH25) && MAC80211 |
| select ATH_COMMON |
| - select MAC80211_LEDS |
| - select LEDS_CLASS |
| - select NEW_LEDS |
| + select MAC80211_LEDS if LEDS_CLASS=y || LEDS_CLASS=MAC80211 |
| select ATH5K_AHB if ATH25 |
| select ATH5K_PCI if !ATH25 |
| help |
| diff --git a/drivers/net/wireless/ath/ath5k/led.c b/drivers/net/wireless/ath/ath5k/led.c |
| index 6a2a16856763..33e9928af363 100644 |
| --- a/drivers/net/wireless/ath/ath5k/led.c |
| +++ b/drivers/net/wireless/ath/ath5k/led.c |
| @@ -89,7 +89,8 @@ static const struct pci_device_id ath5k_led_devices[] = { |
| |
| void ath5k_led_enable(struct ath5k_hw *ah) |
| { |
| - if (test_bit(ATH_STAT_LEDSOFT, ah->status)) { |
| + if (IS_ENABLED(CONFIG_MAC80211_LEDS) && |
| + test_bit(ATH_STAT_LEDSOFT, ah->status)) { |
| ath5k_hw_set_gpio_output(ah, ah->led_pin); |
| ath5k_led_off(ah); |
| } |
| @@ -104,7 +105,8 @@ static void ath5k_led_on(struct ath5k_hw *ah) |
| |
| void ath5k_led_off(struct ath5k_hw *ah) |
| { |
| - if (!test_bit(ATH_STAT_LEDSOFT, ah->status)) |
| + if (!IS_ENABLED(CONFIG_MAC80211_LEDS) || |
| + !test_bit(ATH_STAT_LEDSOFT, ah->status)) |
| return; |
| ath5k_hw_set_gpio(ah, ah->led_pin, !ah->led_on); |
| } |
| @@ -146,7 +148,7 @@ ath5k_register_led(struct ath5k_hw *ah, struct ath5k_led *led, |
| static void |
| ath5k_unregister_led(struct ath5k_led *led) |
| { |
| - if (!led->ah) |
| + if (!IS_ENABLED(CONFIG_MAC80211_LEDS) || !led->ah) |
| return; |
| led_classdev_unregister(&led->led_dev); |
| ath5k_led_off(led->ah); |
| @@ -169,7 +171,7 @@ int ath5k_init_leds(struct ath5k_hw *ah) |
| char name[ATH5K_LED_MAX_NAME_LEN + 1]; |
| const struct pci_device_id *match; |
| |
| - if (!ah->pdev) |
| + if (!IS_ENABLED(CONFIG_MAC80211_LEDS) || !ah->pdev) |
| return 0; |
| |
| #ifdef CONFIG_ATH5K_AHB |
| -- |
| 2.33.0 |
| |