public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
From: Christian Lamparter <chunkeey@gmail.com>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: kernel test robot <lkp@intel.com>,
	Kalle Valo <kvalo@codeaurora.org>,
	Christian Lamparter <chunkeey@googlemail.com>,
	linux-wireless@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v2] wireless: carl9170: fix LEDS build errors & warnings
Date: Sat, 29 May 2021 19:42:26 +0200	[thread overview]
Message-ID: <febdec96-d30c-4af4-be2c-02c52665d448@gmail.com> (raw)
In-Reply-To: <20210529164420.11454-1-rdunlap@infradead.org>

On 29/05/2021 18:44, Randy Dunlap wrote:
> kernel test robot reports over 200 build errors and warnings
> that are due to this Kconfig problem when CARL9170=m,
> MAC80211=y, and LEDS_CLASS=m.
> 
> 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]:
>    - CARL9170_LEDS [=y] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ATH [=y] && CARL9170 [=m]
> 
> CARL9170_LEDS selects MAC80211_LEDS even though its kconfig
> dependencies are not met. This happens because 'select' does not follow
> any Kconfig dependency chains.
> 
> Fix this by making CARL9170_LEDS always set/enabled if certain
> conditions are met: LEDS_CLASS=y or LEDS_CLASS=CARL9170, just as
> this is done for Mediatek MT76.
> 

Hmm, that commit was really a long time ago. In fact it was part of
the initial series for that driver (from September 2010)
1d7e1e6b1b8ed ("carl9170: Makefile, Kconfig files and MAINTAINERS")

 From what I can tell, the "bool / tristate" of LED_CLASS flipped
from tristate (2006) to bool (2010) and back to tristate (2012).

And since MAC80211_LEDS is involved it seems that the latest change
from Arnd:
b64acb28da83 ("ath9k: fix build error with LEDS_CLASS=m")

So, the "select" stuff was present from the start, but it
hasn't been kept up to date I guess.

> Fixes: 1d7e1e6b1b8ed ("carl9170: Makefile, Kconfig files and MAINTAINERS")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Kalle Valo <kvalo@codeaurora.org>
> Cc: Christian Lamparter <chunkeey@googlemail.com>
> Cc: linux-wireless@vger.kernel.org
> Cc: Arnd Bergmann <arnd@arndb.de>
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> ---
> v2: modify as suggesed by Arnd
> 
>   drivers/net/wireless/ath/carl9170/Kconfig |   12 +++---------
>   1 file changed, 3 insertions(+), 9 deletions(-)
> 
> --- linux-next-20210528.orig/drivers/net/wireless/ath/carl9170/Kconfig
> +++ linux-next-20210528/drivers/net/wireless/ath/carl9170/Kconfig
> @@ -15,16 +15,10 @@ config CARL9170
>   	  If you choose to build a module, it'll be called carl9170.
>   
>   config CARL9170_LEDS
> -	bool "SoftLED Support"
> -	depends on CARL9170
> -	select MAC80211_LEDS
> -	select LEDS_CLASS
> -	select NEW_LEDS
> +	bool
>   	default y
> -	help
> -	  This option is necessary, if you want your device' LEDs to blink
> -
> -	  Say Y, unless you need the LEDs for firmware debugging.
> +	depends on CARL9170
> +	depends on LEDS_CLASS=y || LEDS_CLASS=CARL9170

What happens if CARL9170=M|Y, LED_CLASS=M|Y but MAC80211_LEDS=N?
(with =N, I mean of course: # CONFIG_MAC80211_LEDS is not set. )
 From what I can tell, in this case, the driver will create the LEDs
devices just fine. But since the triggers aren't available (because
they are provided by MAC80211_LEDS) these LEDs will be still called
"tx" and "assoc" but are completely "brainless"/"off".

(carl9170 sets sane default triggers for the LEDS in carl9170_led_register)
---
         err = carl9170_led_register_led(ar, 0, "tx",
                                         ieee80211_get_tx_led_name(ar->hw));
         if (err)
                 goto fail;

         if (ar->features & CARL9170_ONE_LED)
                 return 0;

         err = carl9170_led_register_led(ar, 1, "assoc",
                                         ieee80211_get_assoc_led_name(ar->hw));
---

I would have liked to keep that extra dependency to MAC80211_LEDS.
Would this work with depends/imply? Or will this break in a different way?

Cheers,
Christian

  reply	other threads:[~2021-05-29 17:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-29 16:44 [PATCH v2] wireless: carl9170: fix LEDS build errors & warnings Randy Dunlap
2021-05-29 17:42 ` Christian Lamparter [this message]
2021-05-30  0:13   ` Randy Dunlap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=febdec96-d30c-4af4-be2c-02c52665d448@gmail.com \
    --to=chunkeey@gmail.com \
    --cc=arnd@arndb.de \
    --cc=chunkeey@googlemail.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=rdunlap@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox