Skip to content

wifi: mt76: pass LED define via ccflags-y in driver submodules#1090

Open
mbc07 wants to merge 1 commit into
openwrt:masterfrom
mbc07:fix/config_mt76_leds
Open

wifi: mt76: pass LED define via ccflags-y in driver submodules#1090
mbc07 wants to merge 1 commit into
openwrt:masterfrom
mbc07:fix/config_mt76_leds

Conversation

@mbc07

@mbc07 mbc07 commented Jun 16, 2026

Copy link
Copy Markdown

This PR fixes #1077.

Completes the EXTRA_CFLAGS → ccflags-y migration for -DCONFIG_MT76_LEDS that was started in d2b01fb. That commit only touched the top-level Makefile, but ccflags-y/EXTRA_CFLAGS are scoped per kbuild makefile and aren't inherited by subdirectories.

I tested this by compiling openwrt/openwrt@e4c35c2 with those changes for my D-Link DIR-882 A1 (has dual MT7615 radios); the mt76-* LED class devices now correctly appear under /sys/class/leds, the same behavior reported earlier in #1077 (comment) with a different router (but also using MT7615 radios).

The mt7603, mt7915 and mt7996 changes are the same fix applied for consistency, but I don't have hardware to test those.

mt7996 in particular enables an IS_ENABLED(CONFIG_MT76_LEDS) code path that appears to have never been built with the define on before, so it'd be good if someone with that hardware could confirm it doesn't regress anything before merging. Alternatively, I can also drop the mt7996 change from this PR and leave only the others...

Commit d2b01fb ("mt76: pass LED define via ccflags-y")
converted the top-level Makefile from the deprecated EXTRA_CFLAGS
to ccflags-y so that -DCONFIG_MT76_LEDS keeps working now that
kbuild no longer honours EXTRA_CFLAGS.

However, ccflags-y (like EXTRA_CFLAGS before it) only applies to
the kbuild makefile it is set in and is not inherited by
subdirectories pulled in via obj-y/obj-m. The mt7603, mt7615 and
mt7915 driver subdirectories each set their own
"EXTRA_CFLAGS += ... -DCONFIG_MT76_LEDS", which is now a silent
no-op. As a result CONFIG_MT76_LEDS is undefined when building
mt7603/init.c, mt7615/init.c, mt7615/pci_init.c and mt7915/init.c,
the IS_ENABLED(CONFIG_MT76_LEDS) blocks are compiled out, and the
mt76-* LED class devices are never registered for these drivers.

Convert these subdirectory Makefiles to ccflags-y as well.

mt7996/Makefile never carried the define at all, even though
mt7996/init.c has the same IS_ENABLED(CONFIG_MT76_LEDS) checks for
its LED callbacks and GPIO mux setup. Add ccflags-y there too so
mt7996 LED support is enabled consistently with the other drivers.

mt76x0, mt76x2, mt7921 and mt7925 contain no CONFIG_MT76_LEDS
references and are left untouched.

Fixes: d2b01fb ("mt76: pass LED define via ccflags-y")
Link: openwrt#1077
Signed-off-by: Mateus B. Cassiano <mbc07@live.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MT76xx - WLAN leds doesn't work with the testing kernel

1 participant