The USB and parallel port printer nodes come out 0600 root:root, so a
print spooler runs as root. The lp group is already allocated by p910nd
in the packages feed with gid 7, without anything creating it.
Add a printer-support package which allocates that group and puts the
usblp, lp and ppdev nodes into it, and make kmod-usb-printer and kmod-lp
depend on it.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The DVB adapter nodes under /dev/dvb come out 0600 root:root, so a
tuner daemon runs as root.
Add a dvb-support package which allocates the dvb group and puts those
nodes into it, and make kmod-dvb-core depend on it.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The evdev character devices come out 0600 root:root, so a display server
or any other process reading keyboards and pointers runs as root.
Add an input-support package which allocates the input group and puts the
input nodes into it, and make the evdev and joydev modules depend on it.
The one device profile that ships evdev lists the package directly.
kmod-input-core stays ungated: it carries no device node of its own, and
most drivers built on it deliver their events to in-kernel consumers such
as the keyboard and button handlers.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The display target feature gates every DRM module, but it says nothing
useful: it is set on ten targets, so a mediatek/mt7623 board can have a
display while a filogic board with a MIPI DBI panel cannot, and rockchip
claims it for a NanoPi R2S as much as for a Rock 5B. Whether a board
drives a panel is a per-device choice, not a property of the SoC family.
The DRM and V4L2 nodes also end up 0600 root:root, so a display server
runs as root or not at all.
Add a video-support package which allocates the video and video-capture
groups and installs the hotplug rules for the DRM and V4L2 nodes, and
make the modules depend on it. The dependency is a plain one, not a
select, so the modules are offered once the feature is chosen. Targets
whose display drivers are built into the kernel carry the package in
DEFAULT_PACKAGES, since no module pulls it in for them, and the one
device profile that ships a DRM module on another target lists it
directly. DISPLAY_SUPPORT stays for now, so this changes no existing
selection.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The audio group and the rule that puts the ALSA character devices in it
are part of procd and base-files, so every image carries them whether or
not it has a sound card, and a package wanting the group has nothing to
depend on. Playback, capture and MIDI all land in one group as well, so a
process allowed to play is also allowed to record.
Move the lot into a new audio-support package with three groups, audio,
audio-capture and midi, and a hotplug fragment that sorts the sound nodes
between them. kmod-sound-core depends on the package, and so do the image
profiles that ship a sound driver. The dependency is a plain one, not a
select, so sound support is offered once the feature is chosen; userspace
that needs one of the groups depends on the same package. Images without
it fall back to the generic rule and get /dev/snd/* as 0600 root:root.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Several rtw88 USB and SDIO chips do not always report the TX status of a
frame within RTW_TX_PROBE_TIMEOUT (500 ms). The driver then drops the
tracking skbs and warns
rtw_8822bu 3-1:1.0: failed to get tx report from firmware
every one to three seconds on an access point serving clients that use
power save. mac80211 never learns the ACK status of those frames, which
hostapd uses to tell whether a polled station is still there.
Add the pending upstream patch that uses the 2500 ms timeout, so far
applied only to RTL8723DU, for every USB and SDIO device and keeps
500 ms for PCIe. It is adapted to backports 7.2, which does not have
the RTL8723BS condition yet.
Pending upstream, submitted to rtw-next:
https://lore.kernel.org/linux-wireless/20260924004637.9958-1-pkshih@realtek.com/
Tested with backports 6.12.96 on a TP-Link Archer T4U v3 (RTL8812BU,
handled by rtw_8822bu) as a 2.4 GHz AP with six associated clients.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25303
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
BlueZ creates Bluetooth Low Energy HID devices through uhid, so a
Bluetooth remote or keyboard needs it in addition to kmod-bluetooth.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Enable MACsec (Media Access Control Security) support in the Mellanox
mlx5 driver by setting CONFIG_MLX5_MACSEC=y.
Enabling this configuration allows users to utilize hardware MACsec
offload capabilities on supported Mellanox ConnectX network adapters.
This provides point-to-point Layer 2 encryption at line rate while
significantly reducing CPU overhead.
The kmod-macsec dependency is intentionally omitted to make this an
opt-in feature. The offload support only builds if kmod-macsec is
also selected, preventing driver bloat for standard users.
Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/25400
Signed-off-by: Robert Marko <robimarko@gmail.com>
configure.in of drv_tapi and drv_vmmc compiles the whole configure command
line into the module. drv_tapi_linux.c prints it through a proc file. The
command line holds the absolute paths of the build machine, among them
--enable-kernelbuild, --with-ifxos-incl, --enable-tapiincl, CPPFLAGS and
LDFLAGS, so the module depends on the directory it was built in.
Measured in the published snapshot modules of lantiq/xway: drv_tapi.ko and
drv_vmmc.ko both hold
--enable-kernelbuild=/builder/shared-workdir/build/build_dir/...
The existing 020-not-leak-cflags.patch covers the Kbuild CFLAGS, not this
string.
Drop every argument that holds a path and keep the feature flags. The loop
repeats the idiom the file already uses for CONFIGURE_OPTIONS.
Signed-off-by: John Crispin <john@phrozen.org>
ltq-adsl-mei and ltq-deu call make directly after a cd into the kernel
directory, and ltq-ifxos builds its module through autotools. None of them
pass KERNEL_MAKE_FLAGS, so the module compile runs without the
-ffile-prefix-map that iremap adds. WARN_ON_ONCE() in check_copy_size()
expands to warn_slowpath_fmt(__FILE__, ...), so the absolute build path
lands in the .ko.
Measured on the published snapshot packages of lantiq/xway and
xrx200_legacy:
- drv_mei_cpe.ko holds
/builder/shared-workdir/build/build_dir/target-mips_24kc_musl/linux-lantiq_xway/linux-6.18.52/include/linux/ucopysize.h
- drv_ifxos.ko holds the same path for linux-lantiq_xrx200_legacy
- ltq_atm_danube.ko, built with the flags, holds no such string
The module size follows the length of the build path, so the apk record
and every image that carries the module differ between two builds in
different directories.
ltq_deu_vr9.ko holds no such string today, but the package has the same
defect.
Pass the flags in the same way as ltq-atm and ltq-vdsl-vr9-mei already do.
Signed-off-by: John Crispin <john@phrozen.org>
Dropping the rt2x00 MTD EEPROM patch changes the modules the package
builds, so bump the release for users to receive the update.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Eight of the rt2x00 patches either carry no From/Date/Subject header at
all or lack the leading "From <sha> Mon Sep 17 00:00:00 2001" line, so
"git am" cannot apply them and the contribution checks reject them. Take
the author, date and subject of each from the commit which first added
it to this tree.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
No device tree uses ralink,mtd-eeprom any more, and since the move from
rt2x00eeprom.c into rt2800lib.c the code is guarded by SOC_RT288X and
SOC_RT305X, so it was compiled out on the only two boards that still
asked for it and dead everywhere else. It also lost its
<linux/mtd/mtd.h> include in that move, which breaks the rt305x build
with implicit declarations of get_mtd_device_nm(), mtd_read() and
put_mtd_device(). Drop the patch; nvmem cells cover every remaining
user.
Fixes: bf44cb5fb0 ("mac80211: update to version 7.2")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The media tuner packages set CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y but hang
off kmod-i2c-core rather than kmod-dvb-core, so commit ccbdf20984
("kernel: restrict DVB and rc-core modules to kernel 6.18") left them
selectable on kernel 6.12. They open the digital TV menus on their own,
target/linux/generic/config-6.12 has no answer for the symbols that
become visible and syncconfig stops waiting for input. Restrict them
the same way until config-6.12 answers those symbols.
Fixes: 1560c75fa2 ("kernel: add initial DVB support")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The new DVB and remote controller packages are kernel version agnostic,
but the media symbols they make reachable were only answered in
target/linux/generic/config-6.18. On the targets still building kernel
6.12 the buildbot selects the packages through CONFIG_ALL_KMODS,
kconfig has no answer for the newly visible symbols and syncconfig
stops waiting for input.
Restrict the three packages the others hang off. Everything DVB
depends on kmod-dvb-core and kmod-video-em28xx-dvb follows
kmod-video-em28xx, while kmod-rc-core is a root of its own: RC_DEVICES
opens the remote controller menu with no DVB package involved.
Fixes: 1560c75fa2 ("kernel: add initial DVB support")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The kernel package lists $(SUBTARGET_MODULES) among its SCAN_DEPS, but
scan.mk takes that line as text and expands it in its own context,
where the variable does not exist. The per-target modules.mk files
therefore never invalidate the kernel package metadata, and an edited
or newly added modules.mk only takes effect after removing tmp/. Name
the files with wildcards that scan.mk can expand itself.
Fixes: 3a8825ad6a ("build: fix issues with targets installed via feeds")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Add kernel packages for DVB adapters, frontends and tuners. Not
everything is covered, but the list can grow over the time.
Userspace uses these through /dev/dvb, for example tvheadend from the
packages feed, which streams the tuners to network clients over HTTP
and HTSP.
Remote controller support (kmod-rc-core) goes into the Input modules
menu: rc-core depends only on INPUT and is not DVB specific.
Enabling DVB_CORE and RC_CORE makes parts of the media driver menu
visible which nothing in the tree has enabled so far, so kconfig has
no answer for them and stops for input. Add the 98 missing symbols to
the generic config. CONFIG_MEDIA_RC_SUPPORT, CONFIG_VIDEO_V4L2,
CONFIG_DVB_HD29L2, CONFIG_DVB_USB_FRIIO and CONFIG_IR_SIR do not exist
in kernel 6.18 anymore and are removed.
Tested on kernel 6.18.44, all 78 packages build with CONFIG_ALL_KMODS
and their module paths and kernel symbols were verified against the
kernel tree.
Signed-off-by: Michal Hrusecky <michal.hrusecky@nic.cz>
Signed-off-by: Karel Kočí <karel.koci@nic.cz>
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24788
Signed-off-by: Robert Marko <robimarko@gmail.com>
Remove the LINUX_6_12/LINUX_6_18 version guards that are now dead
weight following the removal of the 6.12 kernel, and drop the
kmod-rp1 and kmod-rp1-mailbox packages, which are no longer
buildable now that CONFIG_FIRMWARE_RP1 and CONFIG_MBOX_RP1 are
built into the bcm2712 6.18 kernel (=y) rather than as modules.
In detail:
- i2c.mk: drop the now-always-true LINUX_6_18 condition from the
i2c-designware-core DEPENDS.
- other.mk: remove kmod-rp1 and kmod-rp1-mailbox (now built into
the kernel on 6.18 via CONFIG_FIRMWARE_RP1/CONFIG_MBOX_RP1), and
drop the LINUX_6_12/LINUX_6_18 conditionals from kmod-rp1-pio and
kmod-rp1-pio-uart.
- video.mk: collapse the RP1_CFE_KCONFIG/RP1_CFE_FILES/
RP1_CFE_DEPENDS ifeq(CONFIG_LINUX_6_12/6_18) blocks in kmod-rp1-cfe
down to the 6.18 values, and drop the now-unconditional LINUX_6_18
dependency from kmod-rp1-cfe-downstream, kmod-rp1-hevc-dec and
kmod-drm-vc4.
Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25037
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
mac80211 7.2 changes cfg80211 key and station operations to take a
wireless_dev instead of a net_device. It also updates station notification
helpers and the remain-on-channel callback.
Adapt the driver to the new API and bump the package release.
Signed-off-by: Alexander Zaguzin <st7105@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25020
Signed-off-by: Robert Marko <robimarko@gmail.com>
Patch 200 reverted the ath12k conversion from tasklets to BH workqueues.
It arrived with 88f4c32060 ("mac80211: update to version 6.14.11") in May
2025, when main still built kernel 6.6 on 26 targets; BH workqueues only
exist from 6.9, so the revert was doing real work then.
Main now builds 6.12 and 6.18. Both provide system_bh_wq and from_work(),
so there is nothing left for the revert to paper over.
It also leaves the driver inconsistent. backports 7.2 uses intr_wq in
ce.h, pci.c and ahb.c alike, and patch 200 converts only the first two
back to tasklets -- ahb.c was added to the driver after the conversion
landed and never got the same treatment. Building with ATH12K_AHB enabled
therefore fails.
Against pristine backports 7.2 the mac80211 patch series applies 151/151
with this patch removed, and no intr_tq reference survives in ath12k. An
ipq53xx build with ATH12K_AHB enabled links ahb.o cleanly, and the driver
probes an on-chip radio on real hardware.
Bump PKG_RELEASE so existing installs pick up the rebuilt module: it feeds
ABI_VERSION for the kmod packages.
Signed-off-by: Hideo Sumi <hideo.sumi@mugops.com>
Link: https://github.com/openwrt/openwrt/pull/24978
Signed-off-by: Robert Marko <robimarko@gmail.com>
kbuild dropped EXTRA_CFLAGS in 6.15 (e966ad0edd00, "kbuild: remove
EXTRA_*FLAGS support"), so on 6.18 the define never reaches the
compiler and the module logs "nat46: module (version unknown) loaded".
CFLAGS_MODULE is read by both 6.12 and 6.18.
Assisted-by: Claude:claude-fable-5-1
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
Link: https://github.com/openwrt/openwrt/pull/25057
Signed-off-by: Robert Marko <robimarko@gmail.com>
On IPQ8074 a firmware assert reboots the SoC.
ath11k_core_reconfigure_on_crash() frees the data path and clears the
ring list while the DP NAPI is still polling, so the NAPI services a ring
whose address pointer has just been cleared:
Unable to handle kernel read from unreadable memory at virtual address 0
pc : ath11k_hal_srng_access_begin+0xc/0x60 [ath11k]
Call trace:
ath11k_hal_srng_access_begin+0xc/0x60 [ath11k] (P)
ath11k_dp_rx_process_mon_rings+0xa0/0x5d4 [ath11k]
ath11k_dp_service_srng+0x1f4/0x348 [ath11k]
ath11k_ahb_ext_grp_napi_poll+0x34/0xd4 [ath11k_ahb]
951 disables the interrupts on the crash path again. 950 is its
prerequisite: it wires up the CE interrupt ops that
ath11k_ahb_hif_ops_ipq8074 never set, which leaves the CE half of the
quiesce a no-op on AHB. Both are in ath-next as commit a7ab5c835e42
("wifi: ath11k: implement CE interrupt enable/disable for AHB") and
commit f7a74e131d3f ("wifi: ath11k: disable interrupts during firmware
crash recovery"), and are carried here verbatim.
Tested on a Xiaomi AX3600 (IPQ8074 hw2.0) with the debugfs
simulate_fw_crash assert trigger: one assert panics and reboots the SoC
before, five asserts recover after.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
Link: https://github.com/openwrt/openwrt/pull/24578
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add the two external Aeonsemi AS21xxx PHYs used by the LAN and WAN
10GBASE-T ports of the BPI-R4 Pro 8x. Configure their firmware, reset
timing and LEDs, and connect them to the MxL switch and GMAC1.
Replace the fixed SFP GPIO hog configuration with LAN and WAN overlays
selecting either the copper PHY or the corresponding SFP cage. Build all
four overlays, include them in the device image and select the SFP
overlays by default through U-Boot `bootconf_extra`.
Make the AS21xxx firmware package pull in the PHY driver on Linux 6.18,
instead of making the driver depend on the firmware. Update existing
Airoha device package lists accordingly so they continue to install both
components through the firmware package.
Breaking change for users using the router with SFP hogs from PR #21083.
After flashing the new image, configure `bootconf_extra` to select
between SFP or PHY overlays:
fw_setenv bootconf_extra \
mt7988a-bananapi-bpi-r4-pro-8x-lan-phy#mt7988a-bananapi-bpi-r4-pro-8x-wan-phy
If bootconf_extra had additional overlays (CN13 or CN14) keep them appended
Signed-off-by: Pietro Ameruoso <p.ameruoso@live.it>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Should have been deleted with the update. Fixes build error.
Fixes: a46721f04d ("mt76: update to Git HEAD (2026-09-01)")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
caf2a2b61403 wifi: mt76: connac: add MT7991A (0x7991) to is_mt7996()
4e6adf4f148a wifi: mt76: mt7615: avoid waiting for mac work under the mt76 mutex
403da5477681 wifi: mt76: mt792x: consolidate rx interrupt masks into all_complete_mask
f2157858189f wifi: mt76: connac2: apply new rx all_complete_mask
e246e3b09215 wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions
5d3681c06935 wifi: mt76: mt7925: add MT7927 per-chip rx irq definitions
610830a7da74 wifi: mt76: mt792x: replace shared PCIe MAC macros with per-chip struct
eacf301a0b69 wifi: mt76: connac2: add per-chip PCIe register definitions
accac9958d98 wifi: mt76: mt7925: add per-chip PCIe register definitions
5f6ca442190d wifi: mt76: mt792x: rename WFDMA DMASHDL enable bit to follow the convention
7c195dd52529 wifi: mt76: mt7925: rename WTBL registers to chip-specific format
60a17dfaa393 wifi: mt76: mt792x: add tx_done ring to common DMA queue allocation
2d5b97f4dbab wifi: mt76: connac3: update basic rate table starting index
59d1e9ecf1c5 wifi: mt76: mt7925: fix MMIO dynamic remap window size
65bfecfbdb81 wifi: mt76: mt7925: add MT7928 FWDL support
cb4df96e1331 wifi: mt76: mt7925: add MT7928 irq_map with chip-specific rx masks
4e0c8caee5a5 wifi: mt76: mt7925: add MT7928 DMA configuration
67bded21fb2a wifi: mt76: mt7925: add MT7928 TXD/TXS/TX_DONE support
933b8c1d7208 wifi: mt76: mt7925: add MMIO register remapping table for MT7928
132991c04ef7 wifi: mt76: mt7925: align scan IE and EFUSE TLV lengths to 4 bytes for MT7928
030c9362b7ce wifi: mt76: mt7925: add MT7928 per-chip PCIe register definitions
2e240e194d5c wifi: mt76: mt7925: add MT7928 PCIe support
b1f962a838c7 wifi: mt76: mt7915: configure noise floor reporting on reset
114c7028109f wifi: mt76: mt76u: use a threaded NAPI for the RX path
49795048d96e wifi: mt76: mt76x02: do not WARN on invalid rx descriptor length
f5dc4270d268 wifi: mt76: mt76x02: report rx FCS errors to mac80211
d88989f8c612 wifi: mt76: mt7925: remove code guarded by nonexistent config option
13561afa1fc4 wifi: mt76: mt7996: remove code guarded by nonexistent config option
36917c4e6378 wifi: mt76: mt7996: fix TX DMA mapping leak for AddBA req frames
099844ec9c31 wifi: mt76: mt7603: free beacon SKB on error
43fa7d4a9e4a wifi: mt76: fix handling channel context with different bands in mt76_switch_vif_chanctx()
d367ee6d72d8 wifi: mt76: mt7921: drop TXRX_NOTIFY on non-mmio buses
900f407746fa wifi: mt76: mt7925: drop TXRX_NOTIFY on non-mmio buses
6ae90289d1aa wifi: mt76: mt7615: drop TXRX_NOTIFY on non-mmio buses
332bbe9b2784 wifi: mt76: Disable napi when removing device
3d1ea4928688 wifi: mt76: mt7925: stop init retries on hung bus
bfc39f5a863a wifi: mt76: mt7925: skip reset work on hung bus
91828c69db3e wifi: mt76: mt792x: stop USB register access after bus hang
e1a1abf10036 wifi: mt76: mt792x: drain USB UDMA before WFSYS reset
ece1f4a5a86f wifi: mt76: mt792x: enable USB UDMA TX timeout
837eda0e251e wifi: mt76: mt792x: quiesce USB paths on disconnect
a7160a4b3781 mt76: add fixes to merged patches
ac4d1a16e9f8 wifi: mt76: mt7925: guard link STA in decap offload
6ff6004fdb48 wifi: mt76: mt7921: validate CLC firmware records
3eb3ab6b43f2 wifi: mt76: mt7996: validate default EEPROM firmware size
8b90f61178a3 wifi: mt76: wed: fix kernel panic on non-DBDC MT7986
17114619e55d wifi: mt76: mt7915: fix net_fill_forward_path for non-DBDC mt7986
75268f2eaac8 wifi: mt76: mt7921: fix memory leak when skb_linearize fails in mcu rx event
a1d83aad6ccc wifi: mt76: mt7915: bound the device EEPROM address before the EFUSE copy
76c38706bbab wifi: mt76: mt7996: bound the device EEPROM address before the EFUSE copy
1ee3e2f6c207 wifi: mt76: mt7996: expose per-band MAC addresses to cfg80211
a2c3c698e487 wifi: mt76: mt7915: guard HE capability lookups
96c231171267 wifi: mt76: connac: fix possible NULL-pointer deref in mt76_connac_mcu_uni_bss_he_tlv()
3a95f5d6c826 wifi: mt76: mt7925: fix possible NULL-pointer deref in mt7925_mcu_bss_he_tlv()
89b69012de22 wifi: mt76: mt7996: check pointer returned by mt76_connac_get_he_phy_cap()
763e99aadba0 wifi: mt76: mt7996: fix possible NULL-pointer deref in mt7996_mcu_sta_bfer_eht()
491d786c1b81 wifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete
fd2537190151 wifi: mt76: mt7915: add thermal zone device registration
e053e8c780c8 wifi: mt76: mt7603: add 0x7592 EEPROM chip ID
2d9b52d2246e wifi: mt76: restrict NPU/PPE active checks to MMIO devices
f8757dd2bf87 wifi: mt76: mt7925: ensure tx headroom in usb_sdio_tx_prepare_skb
98c13eb564e5 wifi: mt76: mt7925: Fix unregister deadlock
29d3554195a4 wifi: mt76: mt7925: cancel pending mlo_pm_work
c28c7e50b4b3 wifi: mt76: mt7925: cancel mlo_pm_work on stop
bd9cca0a3c39 wifi: mt76: mt7921: Add PCIe AER handler support to prevent system crash
7274d6cc43bc wifi: mt76: mt7927: set band index for sniffer mode
aa5a2b4fee38 wifi: mt76: mt7927: use real monitor vifs for dual-band monitors
833ad5705dfe wifi: mt76: mt7925: support new WoW pattern TLV
0ef8eb8d7762 wifi: mt76: mt7925: fix crash in reset link replay
2119837464f2 wifi: mt76: mt7925: update clc before setting sar power table
cead9778a957 wifi: mt76: mt7925: fix msg len mismatch between driver and firmware
da8507851e66 wifi: mt76: mt792x: Fix memory leak in SDIO TX path
da1c4a2e0042 wifi: mt76: mt7921: refactor regd update to fix recursive mutex deadlock
fb35160342e3 wifi: mt76: mt7925: add regulatory wiphy self manager support
dd93a16e5f42 wifi: mt76: mt7921: add regulatory wiphy self manager support
968dc6335ad9 wifi: mt76: mt7996: fix capability of EHT-MCS 15 in MRU
8e1889a5ba7e wifi: mt76: fix index accounting in __mt76_wcid_alloc for offset ranges
b05c7c1df24b wifi: mt76: fix RX data queuing of RRO 3.0
4efe882252d4 wifi: mt76: mt7996: fix MLD ID in MAC TXD and HIF TXP
4ac697d5fbe2 wifi: mt76: fix non-AQL packet accounting for MLO stations
620e45de30e9 wifi: mt76: assign link_id when sending probe request during scan
fc74da790f24 wifi: mt76: mt7996: validate RX band_idx before dereferencing phys[]
a3b62f2330fb wifi: mt76: mt7996: set MT76_MCU_RESET before waking MCU waiters on full reset
1920d6dc6807 wifi: mt76: mt7915: clear wcid mask under mutex after RCU pointer clear
f7b7fde7a0b0 wifi: mt76: mt7915: avoid nss underflow in mt7915_mcu_get_sta_nss
8ad57c3ccaf5 wifi: mt76: mt7996: don't report a zero TX bitrate
5230bcf0f67e wifi: mt76: mt7915: write RX header translation bit to the correct register
cdc6c0d07c10 wifi: mt76: fix 4th chain ACK RSSI bitmask in sta_poll
41b98d773fdd wifi: mt76: fix stranded frames in mt76_txq_schedule_pending
f67ffb60cd4f wifi: mt76: allow TX aggregation on the VO queue
220cf481a755 wifi: mt76: fix uninitialised RXDMAD_C descriptor info
58e3e46c2786 wifi: mt76: fix RXDMAD_C buffer recycling race
49ff13fc0aeb wifi: mt76: mt7915: poll the correct SLP CTRL register for the second adie
c73ffc4a2e84 wifi: mt76: check txfree done event on the WED hw path
e59324380042 wifi: mt76: fix HE DCM max-RU capability encoding
48c4d99acd84 wifi: mt76: mt7996: bound TLV walk in mt7996_mcu_get_chip_config
04017929f632 wifi: mt76: fix out-of-bounds access in mmio copy helpers
c52a151151c1 wifi: mt76: mt7915: unwind state on add_interface failure
2a574ac53652 wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER
41cecc382be9 wifi: mt76: decode the full VHT Rx STBC capability field
f012f82a8171 wifi: mt76: fix ER-SU 106-tone RU check in RX rate decode
f66cff22fb04 wifi: mt76: mt7996: reserve space for the CSA-abort countdown TLV
d67367ec3260 wifi: mt76: mt7996: don't leak MLD group index on remap alloc failure
3def0335127c wifi: mt76: cancel reset and rc work on device unregister
10a1541fb264 wifi: mt76: report data NSS for STBC frames in RX rate decode
5f3122610346 wifi: mt76: mt7915: use little-endian for bss_info_ra wire fields
1ece37f8a93a wifi: mt76: mt7996: add missing rdd_idx check when enabling background radar
0e1234440585 wifi: mt76: only consume the WO drop bit on WED v2 devices
eeb07a4edc8c wifi: mt76: mt7996: add mcu command to set bssid mapping address
ffabf1e53b63 wifi: mt76: mt7996: leave PS when a 4-address connection is established
8f1dae620e09 wifi: mt76: mt7915: unlink TWT flow if the MCU rejects the agreement
e14869fcee4b wifi: mt76: mt7996: skip key upload when adding an offchannel link
be8657a1cdf6 wifi: mt76: mt7996: wake MCU waiters before aborting scan in L1 SER
8d0dcd2bf947 wifi: mt76: fix queue reg access when building WED and NPU together
5ecae46405a1 wifi: mt76: mt7996: select net_setup_tc handler at runtime
130273a947ce wifi: mt76: fix stuck TX queues after SER with no active interfaces
bd41e0fbea0e wifi: mt76: mt7615: fix NULL deref in mt7615_mac_set_rates
af601a725f01 mt76: mt7915: trigger L1 SER on PLE MDP RIOC hang
386fd215577d wifi: mt76: mt7996: free vif links after clearing wcid entries on full reset
31f1fdb7cdbf wifi: mt76: mt7996: clear stale link state on full reset
142daad2c26b wifi: mt76: set MT76_SCANNING when starting a hw scan
498e5ee81537 wifi: mt76: serialize scan-link teardown with dev->mutex
50480826f5a9 wifi: mt76: mt7996: hold dev->mutex in remove_interface teardown
06b69763f2aa wifi: mt76: mt7996: fix infinite loop in PS sync event parsing
da2c90d2167d wifi: mt76: mt7996: send the STA_REC before the per-station VoW setup
7f4a3b710a98 wifi: mt76: mt7915: send the STA_REC before the VoW group setup
9be8ee34e8ca wifi: mt76: mt7925: fix declaration after case label in tx done event
cd26ff664675 wifi: mt76: mt7925: skip DMA re-init selectively
540a8ed5256f wifi: mt76: mt7915: simplify mt7915_sys_recovery_set()
0df35270b7b5 wifi: mt76: mt7925: Fix EHT Beamformee SS subfields to meet 802.11be minimum
cf8a369f5232 wifi: mt76: set the EOSP bit in the QoS header of the last released frame
baac541c0524 wifi: mt76: mt7603: fix U-APSD service period termination
56fe4e0c0aea wifi: mt76: mt7603: tell mac80211 when the PS queue has run empty
276db249c20a wifi: mt76: mt7603: restore hardware PS buffering after a service period
5504bac46a38 wifi: mt76: mt7603: file buffered frames under the TID reported to mac80211
8a03e88fc036 wifi: mt76: reject out-of-range link ids in mt76_vif_link()
b2704cf5a406 wifi: mt76: mt7996: fix out-of-bounds link array access in mt7996_tx()
dec412a05ac4 wifi: mt76: mt7996: program a link again if the driver holds it
26e36bf38f15 wifi: mt76: check the owner of a remain-on-channel request
95cb6eefae12 wifi: mt76: mt7996: take over connection monitoring
90f731f6c90d wifi: mt76: clear offchannel state if a scan has no channel to restore
2c84469c8fc8 wifi: mt76: account non-AQL frames per peer rather than per link
d49721c205c4 wifi: move action code from per-type frame structs
67c5f7ae2511 wifi: mac80211: fetch unsolicited probe response template by link ID
9abd11a8f8b2 wifi: Rename EMLSR delay constants and add EMLMR helpers and definitions
254a3442b3ad wifi: mac80211: fetch FILS discovery template by link ID
c5a3bd91aa73 wifi: mt76: pass LED define via ccflags-y in driver submodules
a221bf6cd6f6 wifi: mt76: mt792x: advertise mgmt frame registration
f9b5f7c0d93e wifi: mt76: mt7925: guard BSS capability lookups
e81b53328c9a wifi: mt76: connac: add NAN connection type
471fb15e87db wifi: mt76: mt7925: add NAN MCU helpers
302d9cb21068 wifi: mt76: mt7925: add NAN MCU handling
342da0fac10a wifi: mt76: add init_wiphy callback
2dc861ccd0ee wifi: mt76: mt7925: wire up NAN operations
3fdca8b53b7d wifi: mt76: mt792x: build iface combinations dynamically
33ef303d089a wifi: mt76: mt792x: advertise NAN data support
d905a7252724 wifi: mt76: mt7925: fix NAN NDP STA record role index
b2081f2a039e wifi: mt76: mt7925: fix NAN start failure
b51cd50b2081 wifi: mt76: mt7925: fix NAN committed CRB timeline layout
984def99436a wifi: mt76: mt7925: report only 2.4 GHz NAN supported band
dca87ee6fd94 wifi: mt76: mt7925: drop unused NAN 2.4/5 GHz support config
1f394b9c4206 wifi: mt76: mt7925: drop deferred NAN local schedule update handling
d19401e5d359 wifi: mt76: mt7925: use OFDM-only PHY mode for NAN STA records
a81f793eaf02 wifi: mt76: mt7925: share TLV setup for NAN enable command
7d3c4f81b1af wifi: mt76: mt7925: replace NAN DW end event with DW start
8573266a2612 wifi: mt76: mt7925: fill all DW intervals in NAN avail_map
26be5a8f793c wifi: mt76: mt7925: clear CRB before deactivating NAN peer record
33a39c2ce26d wifi: mt76: mt7925: add ULW event handling and peer ULW update
c09c19fe7cbf wifi: mt76: mt7925: configure NAN PHY setting on enable
724801b83aed wifi: mt76: mt7925: support deferred NAN schedule update and cluster events
435eb726936f wifi: mt76: mt7925: fix HT/VHT caps and rates for NAN NDP peers
f701fad5c06c wifi: mt76: mt7925: fix infinite loop in UNI event TLV parsing
9de658490af7 wifi: mt76: mt792x: do not advertise active monitor
2d6d69e7162a wifi: mt76: mt7996: do not leave state behind after a failed WED attach
074472e615e9 wifi: mt76: mt7996: reject iTWT setup requests from MLD stations
d1d977d7e82f wifi: mt76: mt7915: fix chainmask handling for non-dbdc phys on band 1
c0af23884432 wifi: mt76: mt7915: report RX chain signal for all RX paths
8baa3813f494 wifi: mt76: mt7915: update SKU power limits after changing antennas
ff7782ac7eac wifi: mt76: mt7915: release hif2 reference on probe IRQ failure
4c9484f83e0c wifi: mt76: mt7915: fix double hif2 init on the non-WED path
755e749c89f6 mt7925: sync with upstream
4d5b3357b934 mt76: remove <6.11 compat code
b9533b83eb21 wifi: mt76: mt7921u: add MT7902 USB support
912c51945059 wifi: mt76: mt7996: fix MIB TX aggregation counter registers for mt7990
69f26dbae7e1 wifi: mt76: mt7996: fix reg addr remap when addr is 0
dabd945ef496 wifi: mt76: mt7915: fix ext PHY use-after-free on register error path
e1f87cf2cf0e wifi: mt76: mt76x2u: Add support for ELECOM WDC-867SU3S
5d68813ec038 wifi: mt76: mt7921: fix lock inversion between dev->mutex and iflist_mtx
699df2cec2e8 wifi: mt76: mt7925: fix lock inversion between dev->mutex and iflist_mtx
8e856ad93d3a wifi: mt76: mt7921: check drv_pmctrl return in the PCIe reset path
4f2aa9910e0c wifi: mt76: mt7925: check drv_pmctrl return in the PCIe reset path
b00b36b602ad wifi: mt76: mt7925: restore the reset state when fw_pmctrl fails
6d1c6a758a4c Revert "wifi: mt76: Disable napi when removing device"
0898393ee0a0 wifi: mt76: use ALTX queue for packets to disassociated stations
62c038aa3e94 wifi: mt76: mt7921: fix the lock inversion in suspend and resume
4d82c9962031 wifi: mt76: mt7925: fix the lock inversion in suspend and resume
0789c43c1a77 wifi: mt76: mt76x02: validate TX-status rate index before mac80211 handoff
bfb044bd24e8 wifi: mt76: mt7925: honour mac80211's FIF_FCSFAIL instead of hardcoding drop_err
a6e5a072ebfd wifi: mt76: mt7921: honour FIF_FCSFAIL instead of hardcoding drop_err
5772439beb0a wifi: mt76: mt7925: restore the legacy BSS after MLO teardown
bd49f06353d7 wifi: mt76: mt7996: fix struct mt7996_mcu_wed_rro_ba_delete_event layout
d73f61254a79 wifi: mt76: mt7996: unlink TWT flow if the MCU rejects the agreement
a57185c5b64c wifi: mt7915: disable rx napi when removing device
be5ce7910521 wifi: mt76: mt7615: do not tear down BSS/STA state for monitor vifs
Fixes: https://github.com/openwrt/mt76/issues/1109
Signed-off-by: Felix Fietkau <nbd@nbd.name>
The recent update to mac80211 version 7.2 introduced a new module,
ath12k_wifi7.ko, which contains the hardware-specific code (including
the HAL for QCN9274, WCN7850, and QCC2072).
Because this module was not added to the kmod-ath12k package definition,
ath12k failed to probe or initialize PCIe radios since the required
hardware driver was missing.
Add the missing ath12k_wifi7.ko module to the package FILES and ensure
it is loaded alongside ath12k.ko.
Fixes: bf44cb5fb0 ("mac80211: update to version 7.2")
Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/24966
Signed-off-by: Robert Marko <robimarko@gmail.com>
Refresh all patches. Drop the ones that are upstream now.
Adapt the ath9k channel bandwidth debugfs patch to the removal of
WIPHY_FLAG_SUPPORTS_5_10_MHZ, and the ath11k QCN6122 hw params to
.max_tx_ring moving into struct ath11k_hw_hal_params as .num_tx_rings.
Add build fixes for mwlwifi and mt76: the action code moved out of the
per-type action frame structs into the common part of struct
ieee80211_mgmt and the union lost its 'u' name,
ieee80211_get_fils_discovery_tmpl() and
ieee80211_get_unsol_bcast_probe_resp_tmpl() take a link id, and the EML
capability defines were renamed.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
CONFIG_LEDS_LP5521 has no corresponding KernelPackage, unlike its
LP55xx siblings (LP5523, LP5562), so the driver could only ever be
built in, never as a module. Add the missing package definition,
mirroring KernelPackage/leds-lp5523.
Signed-off-by: Matt Eaton <git@divinehawk.com>
Link: https://github.com/openwrt/openwrt/pull/24812
Signed-off-by: Robert Marko <robimarko@gmail.com>
videobuf2-vmalloc.ko was listed unconditionally in video-videobuf2's
FILES, but CONFIG_VIDEOBUF2_VMALLOC is only reliably built when a
driver that needs a vmalloc-backed allocator (e.g. pwc, uvc, gspca)
is itself selected. Any build where none of those drivers happen to
be enabled (e.g. under CONFIG_ALL_KMODS=y on a target where those USB
webcam drivers aren't selected) fails hard while packaging
kmod-video-videobuf2, since the .ko it expects to copy was never
built:
ERROR: module '.../videobuf2-vmalloc.ko' is missing.
Split it out into its own kmod-video-vmalloc package, following the
same pattern already used for video-dma-contig and video-dma-sg.
videobuf2-vmalloc.c calls dma_buf_vmap_unlocked/dma_buf_vunmap_unlocked
directly, so the new package depends on kmod-dma-buf explicitly rather
than only transitively through kmod-video-videobuf2.
Adjust the DEPENDS of all six in-tree drivers that previously got the
module for free from kmod-video-videobuf2: video-pwc, video-uvc,
video-gspca-core, video-coda, video-tw686x and camera-bcm2835.
camera-bcm2835's AUTOLOAD priority also moves from 66 to 67, matching
its siblings bcm2835-codec/bcm2835-isp/rp1-cfe*, which already sit one
priority above the videobuf2 allocator helper (65/66) they depend on.
Fix also two dead entries in video-videobuf2's AUTOLOAD that never
matched a built module (videobuf2-core and videobuf-v4l2, vs. the actual
videobuf2-common.ko/videobuf2-v4l2.ko), which caused kmodloader to
complain on every boot; pre-existing, unrelated to the split itself.
Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24647
Signed-off-by: Robert Marko <robimarko@gmail.com>
Since 6.18, fb.ko calls into the backlight class rather than the
reverse, so it depends on backlight.ko when CONFIG_FB_BACKLIGHT is set,
which in-tree only happens via FB_TFT's select. Building kmod-fb-tft on
a 6.18 target with DISPLAY_SUPPORT therefore fails with:
Package kmod-fb is missing dependencies for the following libraries:
backlight.ko
Declare the dependency on kmod-fb, conditional on kmod-backlight being
built. An unconditional +kmod-backlight would form a recursive
dependency with KernelPackage/backlight's +kmod-fb, both as a kconfig
select cycle and as a circular PACK_ prerequisite that make resolves by
dropping an edge.
backlight.ko only references fb.ko on 6.12, so narrow that reverse
dependency to +LINUX_6_12:kmod-fb, which leaves a single edge on 6.18.
Signed-off-by: Matt Eaton <git@divinehawk.com>
Link: https://github.com/openwrt/openwrt/pull/24765
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for the GPIO-based backlight driver, which allows controlling
display backlights connected via GPIO pins. This is commonly used on
embedded boards and SBCs where a display backlight is toggled through
a GPIO line rather than a dedicated backlight IC.
Enables CONFIG_BACKLIGHT_GPIO.
Signed-off-by: Matt Eaton <git@divinehawk.com>
Link: https://github.com/openwrt/openwrt/pull/22740
Signed-off-by: Robert Marko <robimarko@gmail.com>
Update to Git HEAD (2026-07-31) and switch to 7.2 kernel based
driver. We also introduced a new patch 204-* to correct the driver
version number.
Upstream merged patches:
- 005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch
Tested on QCA9887 and IPQ4019.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
nf_flow_table.ko now links in the flowtable path discovery code
(nft_flow_route() and friends), which was moved out of
nft_flow_offload.c and references nf_tables symbols directly. This
makes nf_flow_table.ko depend on nf_tables.ko at load time, so
kmod-nf-flow needs kmod-nft-core.
Upstream: 93d7a7ed0734 ("netfilter: flowtable: move path discovery infrastructure to its own file")
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/24419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This was changed in upstream linux kernel with:
|commit db4bfcba7bb8 um: Fix hostaudio build errors
|Author: Randy Dunlap <rdunlap@infradead.org>
|Date: Tue Aug 1 22:15:00 2023 -0700
|
| um: Fix hostaudio build errors
|
| Use "select" to ensure that the required kconfig symbols are set
| as expected.
| Drop HOSTAUDIO since it is now equivalent to UML_SOUND.
|
| Set CONFIG_SOUND=m in ARCH=um defconfig files to maintain the
| status quo of the default configs.
|
| Allow SOUND with UML regardless of HAS_IOMEM. Otherwise there is a
| kconfig warning for unmet dependencies. (This was not an issue when
| SOUND was defined in arch/um/drivers/Kconfig. I have done 50 randconfig
| builds and didn't find any issues.)
| [...]
The reason why this was not spotted is because of IOMEM. We would need
to have a device that requires IOMEM first and the obvious choice would
be VFIO_PCI. But none of the pci features are set for the UML target.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
The EN7528 integrates an MT7530 Gigabit switch, memory-mapped in the SoC
register space like the built-in switches of the MediaTek MT7988 and
Airoha EN7581/AN7583 SoCs. Its chip revision register reads 0x7530, so
unlike those three it is a genuine MT7530 core rather than an MT7531
derivative.
Until now the out-of-tree econet-eth driver programmed it as a flat
"dumb switch" that simply bridged the four LAN ports together and
exposed them as a single eth0. Hand it to the upstream mt7530 DSA
driver instead, so the ports come up as managed user ports lan1-lan4.
- Add an ID_EN7528 variant to the mt7530 driver, bound through the MMIO
glue with the "econet,en7528-switch" compatible. It reuses
mt7988_setup() and the indirect PHY accessors, but selects the CPU
port through the MT7530-style MFC register rather than the MT7531 CFC
one, and describes the CPU port as a fixed 1000FDX link to the SoC
MAC. The LAN GPHYs advertise EEE, but negotiating it drops frames
with some link partners, so the LPI capabilities are left empty and
phylink keeps EEE off.
- The frame engine and the switch are adjacent but separate blocks. The
ethernet node used to describe a single 64K window covering both,
which overlaps the switch node and makes the two drivers fight over
the region. Size it to the frame engine alone (0x8000) and give the
switch its own node, so both keep an exclusive claim:
1fb50000-1fb57fff : 1fb50000.ethernet
1fb58000-1fb5ffff : 1fb58000.switch
The GSW reset moves to the switch node with it.
- econet-eth acts as the DSA conduit. It derives from the size of its
own register resource whether the window still covers the switch, and
when it does not, skips the dumb-switch setup and the switch
source-MAC write. The econet-eth driver now carries this support, so
bump PKG_SOURCE_VERSION to pull it in. EN751221 and EN751627 keep
the full window and are unaffected.
- Enable the switch on the DASAN H660GM-A. The two variants share a
board, but their sockets are not numbered the same way: LAN1 is
switch port 1 on the Airtel unit and port 4 on the generic one, so
the port labels are assigned per board .dts.
Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24199
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Replace deprecated one-element arrays with flexible array members.
CONFIG_FORTIFY_SOURCE reports the following warning when
one-element arrays are used as variable-length buffers:
sta_cmd.c:1033 mwifiex_sta_prepare_cmd
memcpy: detected field-spanning write (size 84) of single field
"domain->triplet" at .../marvell/mwifiex/sta_cmd.c:1033 (size 3)
Convert affected structs to use flexible array members.
- Preserve existing wire layouts.
- Use DECLARE_FLEX_ARRAY() for structs inside affected unions.
This fix has been accepted upstream:
https://github.com/torvalds/linux/commit/1cb5845a58d8e1f85d5766c6fbcbfddf96c212a1
Tested-on: WRT3200ACM
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24451
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Fix regression in rgpower table loading, caused by using
request_firmware(): when the requested firmware does not exist, e.g.
nxp/rgpower_WW.bin does not exist on OpenWrt builds for WRT3200ACM,
request_firmware() falls back to firmware_fallback_sysfs(), which expects
the firmware to be provided by user space using SYSFS. No such utility is
provided in this configuration, so the entire system locks up for 60
seconds, until the request times out. During this time, no other log
messages are observed, and the device does not respond to commands over
UART.
The request_firmware() call is performed in the following context:
current->comm kworker/1:2 in_task 1 irqs_disabled 0 in_atomic 0
Fixed by using request_firmware_direct(). This prevents fallback to SYSFS,
and avoids delay. The rgpower table is optional. The driver falls back
to the device tree power table if the firmware is not present.
The error code is printed for debugging and returned to the caller,
which only cares for success or failure, so there are no side effects.
Link: #24205Fixes: #24434
Fixes: https://forum.openwrt.org/t/25-12-0-slow-boot-on-linksys-wrt3200acm/247751
Fixes: https://github.com/torvalds/linux/commit/7b6f16a258065f85793fb2597a290041c1e3d201
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24205
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
The patch reverted ath10k/ath11k to iommu_domain_alloc(), which kernel
6.18 removed; iommu_paging_domain_alloc() exists on every kernel this
tree builds. Unnoticed upstream because no 6.18 target builds
ath11k-ahb.
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
Link: https://github.com/openwrt/openwrt/pull/24031
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>