Commit Graph
5780 Commits
Author SHA1 Message Date
Alexander Zaguzin 3c1066f412 rtl8812au-ct: fix build with mac80211 7.2
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>
2026-09-06 21:16:18 +02:00
Hideo Sumi 4ab78459bd mac80211: ath12k: drop the BH workqueue revert
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>
2026-09-06 20:57:50 +02:00
Julius Bairaktaris 76506c1094 nat46: pass NAT46_VERSION through CFLAGS_MODULE
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>
2026-09-06 20:26:10 +02:00
Julius Bairaktaris 3ec9ced6e1 mac80211: ath11k: stop a firmware crash from rebooting the SoC on AHB
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>
2026-09-06 19:00:58 +02:00
Frank Wunderlich 1446eff887 mediatek: filogic: bpi-r4-pro-8x: add aeonsemi phy to bpi-r4-pro-8x
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>
2026-09-01 16:58:57 +01:00
Felix Fietkau 6c315233aa mt76: delete obsolete patch
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>
2026-09-01 16:49:46 +02:00
Felix Fietkau a46721f04d mt76: update to Git HEAD (2026-09-01)
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>
2026-09-01 13:44:24 +02:00
Erik Larsson 0c0d6dd7d1 kernel: add kmod-hwmon-max6650
The max6650/max6651 are fan controllers.
The max6651 is used by the XikeStor SKS8300 12x v2.

Signed-off-by: Erik Larsson <who+github@cnackers.org>
Link: https://github.com/openwrt/openwrt/pull/24952
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-08-31 21:14:38 +02:00
Til Kaiser 04062c5315 mac80211: package missing ath12k_wifi7 module
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>
2026-08-31 12:34:07 +02:00
Felix Fietkau fa53cc0bd5 mac80211: fix MLO AP_VLAN issues
- fix warning on WMM setup
- fix station lookup for mgmt frames

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-08-31 08:56:24 +02:00
Felix Fietkau 9928f68f0b mac80211: change version mangling to handle -rc* releases
apk needs - to be replaced in order to avoid issues parsing the version number

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-08-31 08:56:24 +02:00
Felix Fietkau bf44cb5fb0 mac80211: update to version 7.2
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>
2026-08-31 08:56:24 +02:00
Matt Eaton 6a5a1dc1cc kernel: add kmod-leds-lp5521
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>
2026-08-23 11:30:58 +02:00
Joshua Covington 3cdb8b59d9 kernel: video: split videobuf2-vmalloc into its own package
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>
2026-08-20 10:24:34 +02:00
Matt Eaton 112c235940 kernel: fix kmod-fb/kmod-backlight dependency direction on 6.18
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>
2026-08-19 14:00:33 +02:00
Matt Eaton a7c326d6a1 kernel: add kmod-backlight-gpio
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>
2026-08-15 11:11:07 +02:00
Shiji Yang 308bb40b9a kernel: fix kmod-switch-rtl8366-smi dependencies for econet target
Add missing dependent package kmod-of-mdio to fix build error:

Package kmod-switch-rtl8366-smi is missing dependencies for the following libraries:
of_mdio.ko

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24727
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-08-14 18:53:23 +02:00
Shiji Yang ab1693f58a kernel: fix kmod-mdio-gpio dependencies for econet target
Add missing dependent package kmod-of-mdio to fix build error:

Package kmod-mdio-gpio is missing dependencies for the following libraries:
of_mdio.ko

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24710
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-08-14 10:58:23 +02:00
Shiji Yang 943bfe441c kernel: fix kmod-mdio-devres dependencies for econet target
Add missing dependent package kmod-of-mdio to fix build error:

Package kmod-mdio-devres is missing dependencies for the following libraries:
of_mdio.ko

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24710
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-08-14 10:58:23 +02:00
Shiji Yang 70b3f992b8 ath10k-ct: update to version 7.2
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>
2026-08-04 02:37:19 +02:00
John Audia b837748095 kernel: netfilter: add kmod-nft-core dep to kmod-nf-flow
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>
2026-08-01 23:43:05 +02:00
Christian Lamparter 0e9b52f757 kernel/modules: set CONFIG_UML_SOUND for UML if kmod-sound-core is selected
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>
2026-08-01 17:27:20 +02:00
Ahmed Naseef c0e9507c32 econet: en7528: manage the on-die MT7530 switch with DSA
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>
2026-07-31 09:35:13 +02:00
Georgi Valkov 8ab2eb1262 mac80211: mwifiex: replace one-element arrays with flexible array members
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>
2026-07-28 20:21:31 +02:00
Georgi Valkov 9a928a437c mac80211: mwifiex: fix freeze for 60 seconds caused by request_firmware
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: #24205
Fixes: #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>
2026-07-28 09:49:18 +02:00
Julius Bairaktaris c752530abf mac80211: drop the ath iommu_paging_domain revert
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>
2026-07-27 09:34:39 +02:00
Steffen Loley 067c7603a6 kernel: modules: add kmod-hwmon-ina3221
From datasheet: "The INA3221 is a three-channel, high-side current and
bus voltage monitor with an I2C- and SMBUS-compatible interface."

Signed-off-by: Steffen Loley <slo-src@web.de>
Link: https://github.com/openwrt/openwrt/pull/24361
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-25 23:53:44 +02:00
Rosen Penev aa09799aa2 gpio-button-hotplug: enable get_devtree_pdata everywhere
Upstream prefers fwnode helpers instead of OF ones (already done). This is
important for software nodes, which upstream is migrating to for its non
OF devices.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24348
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-25 22:53:20 +02:00
Hauke Mehrtens aac6df7bdc mac80211: bump to version 6.18.39
This contains many fixes from upstream Linux.

mac80211/371-wifi-mac80211-Add-eMLSR-eMLMR-action-frame-parsing-s.patch
  adapted to upstream split of include/linux/ieee80211.h

Changes:
```
$ git log --oneline  v6.18.26...v6.18.39 -- drivers/net/wireless/ net/mac80211/ net/wireless/ include/linux/ieee80211*
1de92789ce31 wifi: iwlwifi: mld: validate sta_mask before ffs() in BA session handlers
b0b07e04f0c7 wifi: iwlwifi: mld: fix race condition in PTP removal
df626f284cb9 wifi: iwlwifi: mvm: fix race condition in PTP removal
200d58c851b8 wifi: rtw88: usb: fix memory leaks on USB write failures
73d427d271f7 wifi: rtw88: increase TX report timeout to fix race condition
0aeb4d3ff6ce wifi: rtlwifi: rtl8821ae: Fix C2H bit location in RX descriptor
40aa3c2b0cb8 wifi: ath11k: fix warning when unbinding
a7cdc384c9c5 wifi: mt76: mt7925: don't disable AP BSS when removing TDLS peer
7e25b5e22c1f wifi: mt76: mt76x2u: Add support for ELECOM WDC-867SU3S
3c499851753a wifi: mt76: add wcid publish check in mt76_sta_add
37c059d4d92f wifi: mac80211: tests: mark HT check strict
4dac39a4db14 wifi: mac80211: skip ieee80211_verify_sta_ht_mcs_support check in non-strict mode
265c07c09c83 wifi: nl80211: reject oversized EMA RNR lists
ac2000be0cbe wifi: iwlwifi: pcie: simplify the resume flow if fast resume is not used
fb8db813eba2 wifi: fix leak if split 6 GHz scanning fails
9b40c59bab08 wifi: mac80211: limit injected antenna index in ieee80211_parse_tx_radiotap
9dca67624721 wifi: iwlwifi: mvm: don't support the reset handshake for old firmwares
95c82d498d74 wifi: wilc1000: fix dma_buffer leak on bus acquire failure
55c479aae99b wifi: mac80211: fix MLE defragmentation
2d8379834800 wifi: mac80211: bounds-check link_id in ieee80211_ml_epcs
926a08cf19be wifi: ath11k: fix peer resolution on rx path when peer_id=0
3a74aaad0473 wifi: iwlwifi: mld: don't dereference a pointer before NULL checking it
9e360e610a73 wifi: iwlwifi: mld: fix TSO segmentation explosion when AMSDU is disabled
e1b429d8e712 wifi: ath10k: skip WMI and beacon transmission when device is wedged
d94127d04017 wifi: ath11k: fix error path leak in ath11k_tm_cmd_wmi_ftm()
acde4692afcd wifi: ath11k: fix error path leaks in some WMI WOW calls
2dd9304727c7 wifi: mac80211: consume only present negotiated TTLM maps
6cfae4914439 wifi: cfg80211: advance loop vars in cfg80211_merge_profile()
dc31c6947652 wifi: iwlwifi: mld: stop TX during firmware restart
6fe92651b44f wifi: iwlwifi: mvm: fix driver-set TX rates on old devices
614cacec60fe wifi: ath11k: clear shared SRNG pointer state on restart
254633506626 wifi: ath10k: fix station lookup failure during disconnect
a9937a3ac585 wifi: mac80211: handle VHT EXT NSS in ieee80211_determine_our_sta_mode()
cbea71b44803 wifi: brcmfmac: Fix error pointer dereference
6b9694702c37 wifi: rtw89: phy: fix uninitialized variable access in rtw89_phy_cfo_set_crystal_cap()
a1a8a8bdfa21 wifi: mt76: mt7996: fix RRO EMU configuration
dc34c01521bf wifi: mt76: support upgrading passive scans to active
a2cde15af378 wifi: mt76: fix multi-radio on-channel scanning
98e0118ab51c wifi: mt76: mt7996: Decrement sta counter removing the link in mt7996_mac_reset_sta_iter()
e54c6440114d wifi: mt76: mt7996: Switch to the secondary link if the default one is removed
d6f6b3a65660 wifi: mt76: mt7996: use correct link_id when filling TXD and TXP
5a3353b06387 wifi: mt76: mt7996: Remove link pointer dependency in mt7996_mac_sta_remove_links()
7da35e2d2fb7 wifi: mt76: mt7996: Add missing CHANCTX_STA_CSA property
1e0f3e5e2835 wifi: mt76: mt7921: fix 6GHz regulatory update on connection
aa4a31cd89f4 wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work()
6b7cbb13c838 wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work()
419babee9b5c wifi: mt76: mt7996: fix struct mt7996_mcu_uni_event
ae94ef093a15 wifi: mt76: mt7996: fix wrong DMAD length when using MAC TXP
5fc8c5d45e44 wifi: mt76: fix deadlock in remain-on-channel
35180c772f5e wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync
153bcba36c87 wifi: mt76: mt7925: fix potential deadlock in mt7925_roc_abort_sync
e125def8b380 wifi: mt76: mt7925: drop puncturing handling from BSS change path
a1a59bd3cd1e wifi: mt76: mt7925: cqm rssi low/high event notify
dcbc13d19bef wifi: mt76: Fix memory leak destroying device
35835ff71e6e wifi: mt76: mt7921: Place upper limit on station AID
e00c27608536 wifi: mt76: mt7996: fix FCS error flag check in RX descriptor
815db7fd57aa wifi: mt76: mt7925: prevent NULL vif dereference in mt7925_mac_write_txwi
93d0694fb56d wifi: mt76: mt7925: prevent NULL pointer dereference in mt7925_tx_check_aggr()
b81a93dc0aed wifi: mt76: mt7915: fix use_cts_prot support
729b4adad191 wifi: mt76: mt7615: fix use_cts_prot support
9aa3b49e1c5b wifi: mt76: mt7925: Fix incorrect MLO mode in firmware control
3880639cec09 wifi: mt76: mt7921: Reset ampdu_state state in case of failure in mt76_connac2_tx_check_aggr()
1e16b0a9b988 wifi: mt76: mt7996: Reset ampdu_state state in case of failure in mt7996_tx_check_aggr()
455a48685fee wifi: mt76: mt7996: Clear wcid pointer in mt7996_mac_sta_deinit_link()
6d7f231d5fff wifi: mt76: mt7996: Reset mtxq->idx if primary link is removed in mt7996_vif_link_remove()
15205c72f1ec wifi: mt76: mt7996: Set mtxq->wcid just for primary link
900579479395 wifi: mt76: mt7996: fix iface combination for different chipsets
096b74331df2 wifi: mt76: mt7996: fix the behavior of radar detection
00c0317cebf4 wifi: libertas: don't kill URBs in interrupt context
a761a1539a55 wifi: libertas: use USB anchors for tracking in-flight URBs
0ee803fc4787 wifi: ieee80211: fix definition of EHT-MCS 15 in MRU
dd827cff429d wifi: ieee80211: split EHT definitions out
df5720d35848 wifi: ieee80211: split HE definitions out
f8d1e8038bc7 wifi: ieee80211: split VHT definitions out
4d5caab09dab wifi: ieee80211: split HT definitions out
3f459076b2d8 wifi: ieee80211: split mesh definitions out
aa10a452e348 wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet
9fe48cacab63 wifi: mwifiex: Fix memory leak in mwifiex_11n_aggregate_pkt()
658d2e46c2e9 wifi: brcmfmac: Fix potential use-after-free issue when stopping watchdog task
d7029879bafd wifi: b43: enforce bounds check on firmware key index in b43_rx()
9e28654f79f4 wifi: mac80211: remove station if connection prep fails
e9f1081bc775 wifi: ath5k: do not access array OOB
7577a4b8a10f wifi: mac80211: use safe list iteration in radar detect work
4f9a4ae8d2c1 wifi: rsi: fix kthread lifetime race between self-exit and external-stop
e131562d6f2b wifi: mac80211: drop stray 'static' from fast-RX rx_result
9d1bc1558029 wifi: b43legacy: enforce bounds check on firmware key index in RX path
6d55948a62ab wifi: mt76: mt7921: fix ROC abort flow interruption in mt7921_roc_work
0aa63d33742b wifi: mt76: mt7921: fix a potential clc buffer length underflow
6fc7c8b414ce wifi: mt76: mt7925: fix incorrect length field in txpower command
5860ab3ddeaa wifi: mt76: mt7925: fix AMPDU state handling in mt7925_tx_check_aggr
8c4339dbab49 wifi: mt76: mt7925: fix incorrect TLV length in CLC command
7d7863018f40 wifi: mt76: mt792x: fix mt7925u USB WFSYS reset handling
0bc155c4ca47 wifi: mt76: mt792x: describe USB WFSYS reset with a descriptor
69c4d137b22d wifi: rtl8xxxu: fix potential use of uninitialized value
4e179a60a60c wifi: mwifiex: fix use-after-free in mwifiex_adapter_cleanup()
000134a20bbf wifi: rtw88: check for PCI upstream bridge existence
```

Link: https://github.com/openwrt/openwrt/pull/24353
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-07-23 21:47:25 +02:00
Andris PE 1186b585ef kernel: minimize kmod-sched-ctinfo dependencies
Do not pull iptables core for kmod-sched-ctinfo, only nf-conntrack,
reflecting kernel config dependencies.

There is no use of this module in openwrt repos, but it is used by
@hudra0 qosmate
and some less popular qos scripts.

Signed-off-by: Andris PE <neandris@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24104
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-22 10:17:49 +02:00
Carlo Szelinsky d3c5d345d2 kernel: pse-pd: add Hasivo HS104 PoE PSE controller driver
Direct-I2C driver for the HS104 PSE chip (unlike the MCU-fronted
realtek-pse-mcu family). Packaged as kmod-pse-hasivo-hs104.

This driver will be submitted upstream once the pending PSE-core
patches it builds on (above) have landed.

Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
Link: https://github.com/openwrt/openwrt/pull/22245
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-21 18:59:26 +02:00
Daniel Golle 0f256a0a7a kernel: modules: package OP-TEE and fTPM modules
Add kmod packages to support accessing the fTPM (in-firmware TPM) which
can be implemented in the boot firmware of most modern platforms.

 - kmod-optee: Open Portable Trusted Execution Environment
 - kmod-optee-rng: OP-TEE random number generator client
 - kmod-rtc-optee: OP-TEE real-time clock client
 - kmod-scmi-transport-optee: SCMI OP-TEE transport
 - kmod-tee: Generic Trusted Execution Environment
 - kmod-tee-stmm-efi: EFI variable service Trusted Application
 - kmod-tpm-ftpm-tee: Microsoft fTPM Trusted Application

Using the TPM 2.0 can be useful for various security applications,
such as encrypting on-disk credentials. OP-TEE itself alone is also
useful as it can provide a PKCS#11 token for authentication (eg. to
connect to a VPN) and significantly lower the risk of leaking secrets
used for authentication. Also, on some platforms RNG and RTC can only be
accessed via OP-TEE, and some ARM SystemReady platforms require EFI
variables to be access via a TA.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-07-21 11:56:04 +01:00
Andris PE e85fa66006 kernel: load vmware net modules early
Load vmware network modules early to make them available for failsafe
mode and first-time scripts
REF:
`https://knowledge.broadcom.com/external/article/321259/choosing-a-network-adapter-for-a-virtual.html`
Additionally add e1000 which is default on "Other Linux" vm profiles

Signed-off-by: Andris PE <neandris@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24212
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-20 20:15:11 +02:00
Rosen Penev 938a43b522 kernel: remove kmod-crypto-misc
Nothing selects this. In addition, a lot of those algorithms are
legacy/obsolete.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23927
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-17 09:51:18 +02:00
Jonas Jelonek 301d98f81f realtek: add Realtek PSE MCU driver
Add pending patches which add a PSE driver for the PSE setup found on
most of Realtek-based switches. An MCU with a Realtek-defined firmware
and protocol fronts one or more PSE chips (from Realtek or Broadcom) as
a management controller.

The driver provides both I2C/SMBus and UART communication, which varies
among our supported switches. There is no need for complicated userspace
handling anymore, the PSE setup is defined in the device tree and
interfaced in userspace via ethtool, netlink and netifd support.

Those patches have progressed far enough upstream, the bindings are
reviewed. Thus, we can keep this intermediate version downstream to open
it up earlier for usage. Only little changes are expected til the final
version lands.

Link: https://github.com/openwrt/openwrt/pull/23222
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:45:29 +02:00
Rosen Penev 594b4aef09 gpio-button-hotplug: don't include of_irq.h
Not used. Add the proper headers.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24177
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:43:29 +02:00
Rosen Penev 5de5bb79fd gpio-button-hotplug: remove pointless void cast
void pointer casting like this is unnecessary.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24177
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:43:28 +02:00
Rosen Penev a88866c5c4 treewide: remove weird double void casting
This must be some older compiler and kernel warning.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24177
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:43:28 +02:00
Robert Marko d0d71dcc09 kernel: drop qca-nss-dp and qca-ssdk
Now that all targets using NSS-DP and SSDK have been converted, we can
finally drop these.

Signed-off-by: Robert Marko <robimarko@gmail.com>Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:44 +02:00
Rosen Penev b0a03893cb gpio-button-hotplug: fix signed issue
struct gpio_keys_button has an unsigned int for its irq field. A signed
one is needed for fwnode_irq_get. Handle it before passing it to the
button member.

Fixes: 79b9a36959 ("gpio-button-hotplug: use device and fwnode")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24174
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 00:32:05 +02:00
Rosen Penev 79b9a36959 gpio-button-hotplug: use device and fwnode
Upstream prefers these instead of OF functions.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24120
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-09 09:33:41 +02:00
Marius Dinu bfa2d2f7c6 kernel-packages: multiplexer: fix menuconfig
One of the drivers appeared outside it's submenu. Fixed.

Signed-off-by: Marius Dinu <m95d+git@psihoexpert.ro>
2026-07-08 19:08:21 +02:00
Robert Marko 273b186ac3 mac80211: ath12k: fix regulatory range for wideband radios
Currently, trying to start a 5GHz radio on 8devices Kiwi will fail as
despite the phy listing the 5GHz channels in iw phy dump, no radio actually
claims the 5GHz range.

This is because driver assumes that if radio supports 6GHz then it cannot
be used for 5Ghz, this is however not correct for wideband radios.

So, similar to the 103-wifi-ath12k-fix-5GHz-operation-on-wideband-QCN.patch
patch ath12k_regd_update() so that 5Ghz range is listed as well.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Link: https://github.com/openwrt/openwrt/pull/24106
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-07 10:52:39 +02:00
Joshua Covington fa65dfa9d5 bcm27xx-gpu-fw: update to 20260521
Update to Git HEAD as of 2026-05-21

Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23703
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-07 08:48:42 +02:00
Joshua Covington 2935c748f7 bcm27xx-gpu-fw: remove dependency for bcm2712
bcm2712 uses a dedicated eeprom chip with closed-source blobs
provided via rpi-eeprom which is part of the bcm27xx-utils.
No need to install the old firmware files on this target.

Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23703
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-07 08:48:41 +02:00
Joshua Covington 11de7145c9 kernel: i2c-designware: disable core on 32-bit bcm27xx targets on 6.18
The bcm27xx/bcm2708 all-kmods CI build fails when modpost reaches the
DesignWare I2C core module:

  ERROR: modpost: "__aeabi_uldivmod"
  [drivers/i2c/busses/i2c-designware-core.ko] undefined!

This is triggered by CONFIG_ALL_KMODS=y. The old 32-bit Raspberry Pi
subtargets do not normally select this driver for runtime use, but all-kmods
forces the kmod package to be built anyway. On 32-bit ARM, raw 64-bit
division in a module can cause GCC to emit the ARM EABI helper
__aeabi_uldivmod, which is not available as a kernel module symbol.

The failing reference comes from i2c-designware-master.c, where clock_calc()
uses raw u64 division for SCL timing calculations (introduced with commit
3805d13c3ead21494f7d00aa44f10e3656363d4c in rpi-6.18.y / "i2c: designware:
Support non-standard bus speeds"). That is a kernel-side portability issue,
but these old bcm27xx subtargets do not use DesignWare I2C hardware. They
use the Broadcom I2C controller instead.

The failure is emitted for i2c-designware-core.ko, so guard the hidden core
package itself rather than only guarding the platform or PCI frontend package.
This prevents CONFIG_ALL_KMODS from selecting the failing core module directly
on the affected 32-bit bcm27xx subtargets.

DesignWare I2C is relevant for newer Raspberry Pi 5 / RP1 based systems, so
keep it available for bcm2712.

A similar issue was reported by NixOS for Raspberry Pi ARM builds, where
i2c-designware-core.ko failed with the same unresolved __aeabi_uldivmod symbol.
Their workaround was to disable the DesignWare I2C symbols for older Raspberry
Pi targets that do not need them.
Link: https://github.com/NixOS/nixpkgs/issues/464515

Until the underlying ARM32 kernel-side issue is fixed, avoid building
the DesignWare core package on bcm2708, bcm2709 and bcm2710.

Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23703
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-07 08:48:40 +02:00
Andrew LaMarche 24ab1e83d0 mac80211: read calibration variant from device tree
ath10k and ath11k support reading calibration variants from the device
tree to locate the correct Board Description File (BDF). The ath12k-wsi
binding already describes using qcom,calibration-variant but it is not
implemented in the driver.

Many ath12k designs expose all the radios under a single phy, each of
which typically require a separate BDF. Without this, the radios may not
come up or will not be calibrated correctly.

Fix this by parsing the device tree for the generation-agnostic
qcom,calibration-variant. This allows the driver to properly select,
read and apply the correct BDF.

Additionally, the ath12k-wsi binding documentation describes using the
generation-specific qcom,ath12k-calibration-variant binding as well as
the generation-agnostic qcom,calibration-variant binding to load
board-specific calibration data from the device tree. However, the
driver never implemented either of these.

Given that no devices currently supported use
qcom,ath12k-calibration-variant and the previous patch implements
qcom,calibration-variant, drop the generation-specific version from the
binding to prevent future confusion.

Tested on Askey SBE1V1K.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21767
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-07 08:32:11 +02:00
Marius Dinu bf6d2e78ba kernel-packages: video: remove path variables
These path names are unlikely to change. There is no need for variables.

Tested on Turris Omnia, but not all of these drivers were tested. Variables
were replaced automatically (search-and-replace in text editor). There
shouldn't be any problems.

Signed-off-by: Marius Dinu <m95d+git@psihoexpert.ro>
2026-07-06 11:22:01 +02:00
Andris PE a3811bbf4c kernel: minimize kmod-sched-connmark dependencies
Remove iptables kmod dependency from kmod-sched-connmark.
Both dependents
package/network/config/qos-scripts
../packages/net/trafficshaper
Already pull in ipt kmods via iptables-mod-conntrack-extra
Permits "clean" nftables migration at
https://github.com/openwrt/packages/pull/29830

Signed-off-by: Andris PE <neandris@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24019
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-06 09:04:10 +02:00
Rosen Penev d78d2c784b treewide: various fwnode conversions
Avoid having to use of_fwnode_handle and use fwnode_handle directly.

Upstream prefers fwnode to of anyway.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24039
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-05 23:35:05 +02:00