All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ping-Ke Shih <pkshih@realtek.com>
To: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	"Johnson Tsai" <wenjie.tsai@realtek.com>
Cc: "rtl8821cerfe2@gmail.com" <rtl8821cerfe2@gmail.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH] wifi: rtw89: fix LED dependencies
Date: Fri, 2 Oct 2026 00:22:09 +0000	[thread overview]
Message-ID: <bdb19ff5e0bc456cb035a1aa0124612f@realtek.com> (raw)
In-Reply-To: <0162247f-ca33-4152-bd32-255343c7216b@app.fastmail.com>

Arnd Bergmann <arnd@arndb.de> wrote:
> On Wed, Sep 30, 2026, at 02:28, Ping-Ke Shih wrote:
> > Arnd Bergmann <arnd@kernel.org> wrote:
> >> The problem is a misunderstanding of how Kconfig dependencies
> >> work, as the 'imply' keyword is not sufficient to enable a
> >> a user-visible dependency, and the boolean 'RTW89_LEDS_MC'
> >> symbol cannot determine whether linking against the MC code is
> >> valid.
> >
> > People intend to weakly select the dependency. I think keeping
> > 'imply' is harmless.
> 
> Whoever those 'people' are, please tell them to stop using 'imply'.
> 
> It's obviously harmless in the sense that it doesn't do enforce
> anything, it just make it more error-prone:
> 
>  - the first 'imply' only works because MAC80211_LEDS has
>    the same dependency as RTW89_LEDS, so it works as a 'select'
>    as long as the dependencies don't change. If the dependency
>    were to change, the only difference is that imply makes it
>    harder to debug because it skips the helpful message from
>    kconfig.
> 
> - the second 'imply' turns on a random symbol from another
>   subsystem, which is discouraged.
> 
> - we already have a mix of 'depends on' and 'select'
>   for the LED support, which can lead to circular dependencies
>   and other problems. Adding a third way can only make it
>   worse.
> 

Agree. I'll remove these two discouraged 'imply'. 

> >> Address this by using the correct construct to determing whether
> >> linking agains the MAC80211_LEDS and LEDS_CLASS_MULTICOLOR
> >> code is possible, respectively.
> >>
> >> Fixes: d910631ff352 ("wifi: rtw89: add LED support to reflect the wireless association status")
> >> Fixes: 721d90c8509a ("wifi: rtw89: add multicolor LED support for RTL8852CU valve board")
> >> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> >> ---
> >>  drivers/net/wireless/realtek/rtw89/Kconfig | 6 ++----
> >>  1 file changed, 2 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/net/wireless/realtek/rtw89/Kconfig
> >> b/drivers/net/wireless/realtek/rtw89/Kconfig
> >> index 7c678dd1f6b3..4000ae344544 100644
> >> --- a/drivers/net/wireless/realtek/rtw89/Kconfig
> >> +++ b/drivers/net/wireless/realtek/rtw89/Kconfig
> >> @@ -208,15 +208,13 @@ config RTW89_DEBUGFS
> >>  config RTW89_LEDS
> >>         bool
> >>         depends on RTW89_CORE
> >> -       depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
> >
> > I remember we fixed to this style years ago by imitating ath10k and iwlwifi,
> > which they look like that still.
> 
> ath10k doesn't use ieee80211_led but seems to just duplicate that code.
> 
> I do see that my version also got it wrong, as the
> 
> +       depends on MAC80211_LEDS=y || MAC80211_LEDS=RTW89_CORE
> 
> line is nonsense with MAC80211_LEDS being a 'bool' symbol.
> 
> The way this was meant to be used is to have
> 
> config RTW89_LEDS
>       def_bool RTW89_CORE && MAC80211_LEDS
> 

I'd keep first block as

        depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211

mac80211 implements ieee80211_get_assoc_led_name() used by this driver as

  static inline const char *ieee80211_get_assoc_led_name(struct ieee80211_hw *hw)
  {
  #ifdef CONFIG_MAC80211_LEDS
	  return __ieee80211_get_assoc_led_name(hw);
  #else
	  return NULL;
  #endif
  }

That means if CONFIG_MAC80211_LEDS wasn't defined, driver can still use
ieee80211_get_assoc_led_name() as default trigger, but just NULL.
More, use space can adjust LED trigger via sysfs, so having LED support
is still usable if LEDS_CLASS exists.

Ping-Ke


  reply	other threads:[~2026-10-02  0:22 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-29 10:41 [PATCH] wifi: rtw89: fix LED dependencies Arnd Bergmann
2026-09-30  0:28 ` Ping-Ke Shih
2026-09-30  7:52   ` Arnd Bergmann
2026-10-02  0:22     ` Ping-Ke Shih [this message]
2026-10-02  6:11       ` Arnd Bergmann

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=bdb19ff5e0bc456cb035a1aa0124612f@realtek.com \
    --to=pkshih@realtek.com \
    --cc=arnd@arndb.de \
    --cc=arnd@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=rtl8821cerfe2@gmail.com \
    --cc=wenjie.tsai@realtek.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.