Commit fb8c3a3c authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Kalle Valo
Browse files

ath5k: fix building with LEDS=m

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: b64acb28 ("ath9k: fix build error with LEDS_CLASS=m")
Fixes: 72cdab80 ("ath9k: Do not select MAC80211_LEDS by default")
Fixes: 3a078876 ("ath5k: convert LED code to use mac80211 triggers")
Link: https://lore.kernel.org/all/20210722105501.1000781-1-arnd@kernel.org/


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210920122359.353810-1-arnd@kernel.org
parent 91dab18f
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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
+6 −4
Original line number Diff line number Diff line
@@ -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