Commit Graph

1543 Commits

Author SHA1 Message Date
Janusz Dziedzic
7f5c7b8626 mac80211: fix netns crash
[  201.286070] CPU: 0 UID: 0 PID: 34 Comm: kworker/u8:1 Tainted: G S         O       6.12.51 #0
[  201.294509] Tainted: [S]=CPU_OUT_OF_SPEC, [O]=OOT_MODULE
[  201.299812] Hardware name: Bananapi BPI-R64 (DT)
[  201.304422] Workqueue: netns cleanup_net
[  201.308347] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  201.315304] pc : cfg80211_switch_netns+0x270/0x2d0 [cfg80211]
[  201.321086] lr : cfg80211_switch_netns+0x26c/0x2d0 [cfg80211]
[  201.326846] sp : ffffffc081143ca0
[  201.330153] x29: ffffffc081143ca0 x28: 61c8864680b583eb x27: 0000000000000000
[  201.337287] x26: ffffffc080c46000 x25: ffffff8000d28800 x24: ffffffc081143d80
[  201.344421] x23: ffffff800834e360 x22: ffffffc080d6b280 x21: ffffffc07904aeb8
[  201.351554] x20: ffffff800834c200 x19: ffffff8005e90000 x18: 0000000000000000
[  201.358688] x17: 0000000000000000 x16: 000000000000001d x15: ffffffc081143cf8
[  201.365821] x14: ffffff8005703600 x13: 00000000000003bb x12: 0000000000000000
[  201.372955] x11: 00000000000000c0 x10: 0000000000000000 x9 : ffffffc081143bd0
[  201.380088] x8 : 0000000000000000 x7 : 7f7f7f7f7f7f7f7f x6 : 1f1f1f1f1f1f6348
[  201.387222] x5 : 0000000000000004 x4 : ffffff8000ce8000 x3 : 0000000000000000
[  201.394355] x2 : 0000000000000000 x1 : ffffff8005e90800 x0 : 00000000ffffffea
[  201.401489] Call trace:
[  201.403926]  cfg80211_switch_netns+0x270/0x2d0 [cfg80211]
[  201.409340]  ops_exit_list+0x40/0x80
[  201.412910]  cleanup_net+0x344/0x558
[  201.416480]  process_one_work+0x174/0x300
[  201.420489]  worker_thread+0x278/0x430
[  201.424234]  kthread+0xd8/0xdc
[  201.427283]  ret_from_fork+0x10/0x20

Fixes: e005cdea10 ("mac80211: update to version 6.16")
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20829
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-21 02:17:53 +01:00
Pawel Dembicki
38ed1510db mac80211: mwl8k: inject DSSS Parameter Set element into beacons if missing
Some Marvell AP firmware used with mwl8k misbehaves when beacons do not
contain the DSSS Parameter Set (WLAN_EID_DS_PARAMS) with the current
channel. When hostapd/mac80211 omits this element (which is valid on
some bands), the firmware may report bogus RX channel information and AP
mode becomes unusable.

Backport the upstream fix that ensures beacons always carry the DSSS
Parameter Set for mwl8k: when setting the beacon, detect if the element
is missing and inject it after SSID and Supported Rates (per spec
ordering). This mirrors behaviour in newer Marvell drivers and restores
stable operation.

Tested on Linksys EA4500 (88W8366).

Fixes: openwrt/openwrt#19088
Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git/commit/?id=c4e1ac09ee1c750890e36cb1f841f25518f23589

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20757
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 22:11:29 +01:00
Florian Maurer
8faa9dedb4
ath11k: fix transmit queue flushing through flush_sta implementation
warning print "ath11k c000000.wifi: failed to flush transmit queue 0"
is observed during busy times.

The mac80211 fallback implementation of `flush_sta` does not handle the per STA queues well.
This is fixed by providing a ath11k specific implementation of flush_sta telling the firmware to flush a given station.
The draining of the transmit queues should therefore stop correctly, even if new packets arrive in the mean time.

An upstream ath11k RFC is available at:
https://patchwork.kernel.org/project/linux-wireless/patch/GV1P250MB14333A5BF24623C4753A10E1E8E0A@GV1P250MB1433.EURP250.PROD.OUTLOOK.COM/

The patch was tested on a Xiaomi AX3600.

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
Tested-by: Florian Maurer  <f.maurer@outlook.de>
Co-authored-by: Benjamin Berg <benjamin@sipsolutions.net>
Tested-by: Flole <flole@flole.de>
Link: https://github.com/openwrt/openwrt/pull/20293
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-04 20:12:06 +01:00
Agustin Lorenzo
ea2c2ca2ae mac80211: ath11k: backport of the latest changes applied for ath11k in 6.16.12
This includes the following commits from upstream Linux between 6.16 and 6.16.12:

wifi: ath11k: clear initialized flag for deinit-ed srng lists
wifi: ath11k: fix sleeping-in-atomic in ath11k_mac_op_set_bitrate_mask()
wifi: ath11k: fix dest ring-buffer corruption
wifi: ath11k: fix source ring-buffer corruption
wifi: ath11k: fix dest ring-buffer corruption when ring is full
wifi: ath11k: fix group data packet drops during rekey [1]
wifi: ath11k: fix NULL dereference in ath11k_qmi_m3_load()

[1] The patch "940-ath11k-Revert-clear-the-keys-properly-when-DISABLE_K.patch" has been removed, as it has been fixed upstream in "wifi: ath11k: fix group data packet drops during rekey" and is added in 945 patch.
Related: https://github.com/openwrt/openwrt/pull/18705
Related: https://github.com/openwrt/openwrt/issues/9555
Related: https://github.com/openwrt/openwrt/issues/14117

Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/20395
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-20 00:23:43 +02:00
Agustin Lorenzo
9295b5a436 mac80211: ath11k: reordered the patches 906 and 907 and refreshed, no functional changes
Remove leading 0 from filename.

Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/20395
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-20 00:23:15 +02:00
Tianling Shen
d1f281a534 mac80211: realtek: rtw88: add RTL8822CS support
Add Realtek RTL8822CS support to the rtw88 package.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20423
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-10-16 21:39:16 +02:00
Florian Maurer
ab50b9a561 mac80211: ath: improve ath10k "failed to flush transmit queue" errors
Currently, in busy environments, ath10k logs "failed to flush transmit
queue" errors and have a spiking CPU usage, making the wireless barely
usable.
With this patch, taken from https://patchwork.kernel.org/project/linux-wireless/patch/20250806070005.1429-1-hujy652@gmail.com/
this does not occur in normal operation and the wifi is much more stable

Supersedes #19427
Ref: https://github.com/openwrt/openwrt/issues/15929#issuecomment-2227391307
Ref: https://github.com/openwrt/openwrt/issues/14965

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
Link: https://github.com/openwrt/openwrt/pull/19529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-01 22:15:13 +02:00
Andy Chiang
9a02069365 mac80211: use https instead of http
Use CDN first, if fails, it will use https://mirror2.openwrt.org/sources

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19979
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-09 00:12:55 +02:00
Hauke Mehrtens
d751f1e57e mac80211: Fix compilation of iwlwifi driver
The Intel iwlwifi mld driver uses some updated thermal functions. Adapt
the driver to compile again kernel 6.6 again.

Fixes: 9c82d49999 ("mac80211: iwlwifi fix BE200 probe")
Link: https://github.com/openwrt/openwrt/pull/19948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:10:06 +02:00
Hauke Mehrtens
350d8a0711 mac80211: iwlwifi: Add DRIVER_11BE_SUPPORT
The driver support Wifi 7, add dependency to DRIVER_11BE_SUPPORT.

Link: https://github.com/openwrt/openwrt/pull/19948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:09:35 +02:00
Hauke Mehrtens
a51d246e85 mac80211: Refresh patches
Automatically Refresh the patches.

Fixes: 4d3a35f368 ("mac80211: remove rt2x00_platform_data")
Link: https://github.com/openwrt/openwrt/pull/19948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:09:35 +02:00
Janusz Dziedzic
9c82d49999 mac80211: iwlwifi fix BE200 probe
Fix probing and load correct drivers
when using last backports.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19927
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 00:59:58 +02:00
Felix Fietkau
a04b5fdcb6 mac80211: add support for MLD AP client probing
Select a link for outgoing probe packets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-28 22:09:23 +02:00
Felix Fietkau
6fbf6d0cfd mac80211: extend connection monitoring for MLO
Required for latest mt76

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-27 15:24:30 +02:00
Rosen Penev
4d3a35f368 mac80211: remove rt2x00_platform_data
All of this uses OF now. No need to keep platform data around.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19804
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-20 09:57:46 +02:00
Felix Fietkau
e005cdea10 mac80211: update to version 6.16
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-13 11:06:12 +02:00
Felix Fietkau
886c4f054e mac80211: fix division by zero in expected throughput estimation
Fixes: https://github.com/openwrt/openwrt/issues/19729
Fixes: f10732fb56 ("mac80211: estimate expected throughput if not provided by driver/rc")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-09 16:48:33 +02:00
Felix Fietkau
f10732fb56 mac80211: estimate expected throughput if not provided by driver/rc
Estimate the tx throughput based on the expected per-packet tx time.
This is useful for mesh implementations that rely on expected throughput,
e.g. 802.11s or batman-adv.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-06 11:10:06 +02:00
Felix Fietkau
1e84b91634 mac80211: backport upstream fixes
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-06 11:10:06 +02:00
Rosen Penev
7e09959efd mac80211: fix wmac node names
The upstream submission for this mandates the node to be named wifi
instead of wmac. Change all ath79 entries to match the new names and
remove the compatibility patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19328
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-07 17:28:14 +02:00
Felix Fietkau
d2b2670937 ath9k: add back previous DT compatible strings for ahb
The ath9k ahb patch was updated to match the latest upstream version,
however the openwrt DT files still use the older names.
Add those as extra entries in order to remain compatible until DT files
are fixed.

Fixes: 88f4c32060 ("mac80211: update to version 6.14.11")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-06 19:25:01 +02:00
Felix Fietkau
e1d39bdbdb mac80211: fix rt2x00 build error on 6.12
Fix missing remove callback type signature conversion

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-06 11:22:41 +02:00
Mieczyslaw Nalewaj
88f4c32060 mac80211: update to version 6.14.11
Update to version 6.14.11

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-05 14:43:08 +02:00
Felix Fietkau
87f130a6ae mac80211: add WIFI_SCRIPTS_UCODE to PKG_CONFIG_DEPENDS
It affects package depdendencies

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-05 14:40:25 +02:00
George Moussalem
aefdbf0edc wifi: ath11k: increase max ATH11K_QMI_CALDB_SIZE macro
QCN6122 wifi in fw-memory-mode 1 has a slightly larger caldb size than
currently defined in the ath11k driver. When coldboot calibration was
disabled, the fw mem mode was changed from 2 (256MB mem profile) to 1
(512MB mem profile), which is the correct setting for devices in scope.
However, in fw mem mode, the caldb size is 0x500000 instead of the max
0x480000 defined in the driver, causing QCN6122 wifi failing to boot:

ath11k b00a040.wifi1: qmi mem size is low to load caldata
ath11k b00a040.wifi1: failed to assign qmi target memory: -22

As such, change the max caldb memory size accordingly.

This macro is used by the driver only as a max size limit to validate
the requested caldb size returned by QMI. Different ath11k wifi chips
have different caldb sizes (for ex. the size for IPQ5018 is 0x200000).

Fixes: cf715a2305 ("wifi: ath11k: disable coldboot calibration for ipq5018")
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19118
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-13 10:29:50 +02:00
George Moussalem
cf715a2305 wifi: ath11k: disable coldboot calibration for ipq5018 and qcn6122
Coldboot calibration does not work causes the firmware to crash during
wifi startup. So let's disable coldboot calibration until a solution is
found.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19083
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 10:47:44 +02:00
Marty Jones
7dd9cf82cd mac80211: realtek: add support for RTL8814AE/RTL8814AU
This adds support for RTL8814AE/RTL8814AU PCI/USB adapters.
Run-tested: x86/64/rockchip
USB adapter tested: Hawking HW17ACU Wireless-AC1750.

Signed-off-by: Marty Jones <mj8263788@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19052
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 16:10:40 +02:00
Marty Jones
4a1aca5376 mac80211: realtek: rtw88: sync with v6.16
Renamed 046..051 pending patches with the merged tag/hash.
Two patches were skipped, they make use of WQ_BH present since v6.14:
  13221be720
  3e3aa566dd
Manually refreshed 062-v6.14-wifi-rtw88-Add-support-for-LED-blinking.patch
Manually refreshed  063-v6.14-wifi-rtw88-add-RTW88_LEDS-depends-on-LEDS_CLASS-to-K.patch
Manually backported 090-v6.15-wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch

git log --no-merges --pretty=oneline --abbrev-commit 4c2c372de...0daa521a drivers/net/wireless/realtek/rtw88:
4c2c372de2e1 wifi: rtw88: fix the 'para' buffer size to avoid reading out of bounds
f24d0d8c3cd7 wifi: rtw88: Fix the random "error beacon valid" messages for USB
80fe0bc1659c wifi: rtw88: usb: Upload the firmware in bigger chunks
490340faddea wifi: rtw88: usb: Reduce control message timeout to 500 ms
b7f0cc647e52 wifi: rtw88: rtw8822bu VID/PID for BUFFALO WI-U2-866DM
2c17afde9ff6 wifi: rtw88: Handle RTL8723D(S) with blank efuse
0ffa1ba81b35 wifi: rtw88: Fix RX aggregation settings for RTL8723DS
20d3c19bd8f9 wifi: rtw88: do not ignore hardware read error during DPK
fc5f5a0ec463 wifi: rtw88: sdio: call rtw_sdio_indicate_tx_status unconditionally
b2effcdc2379 wifi: rtw88: sdio: map mgmt frames to queue TX_DESC_QSEL_MGMT
581cf3a9cb61 wifi: rtw88: Fix the module names printed in dmesg
b8d49bb8d16a wifi: rtw88: Don't set SUPPORTS_AMSDU_IN_AMPDU for RTL8814AU
0d2a88690e58 wifi: rtw88: Set AMPDU factor to hardware for RTL8814A
dcbb7bb3a364 wifi: rtw88: usb: Enable RX aggregation for RTL8814AU
bf1103654df9 wifi: rtw88: usb: Enable switching the RTL8814AU to USB 3
625fbc16524a wifi: rtw88: usb: Remove redundant 'flush_workqueue()' calls
5c4cf36c538b wifi: rtw88: sdio: Remove redundant 'flush_workqueue()' calls
d58ad77d5cc2 wifi: rtw88: Add __nonstring annotations for unterminated strings
deb3ddeb1865 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
bad060e8a425 wifi: rtw88: Add rtw8814au.c
dad8e8793102 wifi: rtw88: Add rtw8814ae.c
1a7545784642 wifi: rtw88: Add rtw8814a.{c,h}
e38246889cc9 wifi: rtw88: Add rtw8814a_table.c (part 2/2)
f4debfcb1b3c wifi: rtw88: Add rtw8814a_table.c (part 1/2)
679ec431477c wifi: rtw88: Add some definitions for RTL8814AU
c374281f8285 wifi: rtw88: Extend rtw_debugfs_get_tx_pwr_tbl() for RTL8814AU
cfebabdd351e wifi: rtw88: Extend rtw_debugfs_get_phy_info() for RTL8814AU
8b42c46cf665 wifi: rtw88: Extend rtw_phy_config_swing_table() for RTL8814AU
053a7aace020 wifi: rtw88: Fix rtw_rx_phy_stat() for RTL8814AU
6be7544d19fc wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU
c7eea1ba05ca wifi: rtw88: Fix rtw_init_ht_cap() for RTL8814AU
86d04f8f991a wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31
e66bca16638e wifi: rtw88: Fix rtw_mac_power_switch() for RTL8814AU
80c4668d024f wifi: rtw88: Add support for Mercusys MA30N and D-Link DWA-T185 rev. A1
9f00e2218e15 wifi: rtw88: Fix rtw_update_sta_info() for RTL8814AU
0f98a5959657 wifi: rtw88: Extend TX power stuff for 3-4 spatial streams
ad815f392003 wifi: rtw88: Rename RTW_RATE_SECTION_MAX to RTW_RATE_SECTION_NUM
e66f3b5c7535 wifi: rtw88: Constify some more structs and arrays
8f0076726b66 wifi: rtw88: Extend rtw_fw_send_ra_info() for RTL8814AU
d80e7d9b6ba3 wifi: rtw88: Extend rf_base_addr and rf_sipi_addr for RTL8814AU
62f726848da4 wifi: rtw88: Extend struct rtw_pwr_track_tbl for RTL8814AU
9e8243025cc0 wifi: rtw88: Fix download_firmware_validate() for RTL8814AU
8425f5c8f04d wifi: rtw88: Fix __rtw_download_firmware() for RTL8814AU
105dc94233e4 wifi: rtw88: Fix a typo of debug message in rtw8723d_iqk_check_tx_failed()
0d1d165eff9d wifi: rtw88: Don't use static local variable in rtw8821c_set_tx_power_index_by_rate
00451eb3bec7 wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate
b4bfbc50b1b9 wifi: rtw88: add RTW88_LEDS depends on LEDS_CLASS to Kconfig
4b6652bc6d8d wifi: rtw88: Add support for LED blinking
fb2fcfbe5eef wifi: rtw88: sdio: Fix disconnection after beacon loss
a806a8160a0f wifi: rtw88: 8703b: Fix RX/TX issues
5ad483955acc wifi: rtw88: Delete rf_type member of struct rtw_sta_info
5b1b9545262b wifi: rtw88: Add USB PHY configuration
not backported (3e3aa566dd18 wifi: rtw88: usb: Preallocate and reuse the RX skbs)
not backported (13221be72034 wifi: rtw88: Handle C2H_ADAPTIVITY in rtw_fw_c2h_cmd_handle() )
e9048e2935f7 wifi: rtw88: usb: Copy instead of cloning the RX skb
74a72c367573 wifi: rtw88: 8821a/8812a: Set ptct_efuse_size to 0
59ab27a9f20f wifi: rtw88: 8812a: Support RFE type 2

Signed-off-by: Marty Jones <mj8263788@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19052
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 16:10:40 +02:00
Rosen Penev
0ccc336c56 mac80211: ath9k: avoid a double reset
The original OF code effectively does a reset at ahb.c but then again in
hw.c. For AR9330, it's already done in the driver and with the others,
there are patches in here that do the same. hw.c looks like the proper
place to handle this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19031
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-05 13:10:25 +02:00
Rosen Penev
6f607c69dc mac80211: ath9k: fix refclock typo
Fixes ath9k on ar934x platforms.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19031
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-05 13:10:25 +02:00
Felix Fietkau
91d33d1563 mac80211: allow scanning operating on DFS channels
Only for multi-radio configurations where the scan would not affect the radio
running DFS detection

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-31 16:23:03 +02:00
Rosen Penev
3d6e1a3c9d mac80211: ath9k: replace qca,led-sources
Upstream seems to be using led-sources instead of custom properties.

Code mostly taken from mt76.

Changed all(few) users of qca,led_pin to use the new format.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18805
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 21:33:37 +02:00
Álvaro Fernández Rojas
f23ad96e47 mac80211: brcm: update RPi brcmfmac patches
- Reorganize brcmfmac patches.
- Drop outdated RPi brcmfmac patches.
- Add RPi 6.12 brcmfmac patches with "rpi-6.12" name tag (excluding SAE).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-23 20:20:51 +02:00
Rosen Penev
12913c3c56 mac80211: move OF stuff to ath9k_of_init
It's the proper function to handle this stuff in.

The original patch abused the fact that the ath9k driver in init called
ath9k_init_platform to populate all the needed configuration. This is
the wrong place to do so and it also goes away in 6.13.

Move 553-ath9k_of_gpio_mask.patch contents to ath9k_of_init where they
belong.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18764
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-14 19:35:46 +02:00
Benjamin Berg
26e64260e9 mac80211: add patch to suppress PREP when mesh forwarding is disabled
This fixes a bug where mac80211 would respond to a PREQ frame when a
neighbor table entry exists locally even though it will not forward the
frame and the reported path does not actually work.

Link: https://github.com/openwrt/openwrt/pull/18657
Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=for-next&id=cf1b684a06170d253b47d6a5287821de976435bd
Link: https://patches.linaro.org/project/linux-wireless/patch/20250430191042.3287004-1-benjamin@sipsolutions.net/

Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
2025-05-13 03:32:26 +02:00
Henry Tung
94e04a4513 mac80211: ath11k: fix broadcast failures during GTK rekeying
Revert key_cipher change to NONE when clearing key.
Setting to NONE triggers asserts in the firmware and causes broadcast
drops with ath11k firmware 2.9.0.1, so until a future blob
fixes this, revert this as a workaround.

Imported from
https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/win.wlan_host_opensource.3.0.r24/patches/ath11k/350-ath11k-Revert-clear-the-keys-properly-when-DISABLE_K.patch

Related discussion links:

- https://github.com/openwrt/openwrt/issues/9555
- https://lore.kernel.org/linux-wireless/Z2Q9POuV-6MIdzRf@pilgrim/T/#t

Signed-off-by: Henry Tung <henryptung@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18705
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-08 11:28:08 +02:00
Mieczyslaw Nalewaj
6b0f414aff mac80211: rt2x00: use remove_new
Easy compability fix for kernel 6.12.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18719
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 00:36:33 +02:00
Shiji Yang
6deb2a03ba mac80211: ath9k: fix missing prototypes warnings
Fix following warnings by including the corresponding headers:

backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:50:6: error: no previous prototype for 'ath9k_hsr_init' [-Werror=missing-prototypes]
   50 | void ath9k_hsr_init(struct ath_hw *ah)
      |      ^~~~~~~~~~~~~~
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:165:5: error: no previous prototype for 'ath9k_hsr_disable' [-Werror=missing-prototypes]
  165 | int ath9k_hsr_disable(struct ath_hw *ah)
      |     ^~~~~~~~~~~~~~~~~
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:177:5: error: no previous prototype for 'ath9k_hsr_enable' [-Werror=missing-prototypes]
  177 | int ath9k_hsr_enable(struct ath_hw *ah, int bw, int fq)
      |     ^~~~~~~~~~~~~~~~
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:234:5: error: no previous prototype for 'ath9k_hsr_status' [-Werror=missing-prototypes]
  234 | int ath9k_hsr_status(struct ath_hw *ah)
      |     ^~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-03 20:16:25 +02:00
Shiji Yang
9aea4c9280 mac80211: fix unaligned.h header location for 6.12 kernel
Fix mt76 build error on 6.12 kernel:

In file included from /workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/mt76-2025.04.11~be28ef77/mt76x0/eeprom.c:13:
/workspaces/openwrt/staging_dir/target-x86_64_musl/usr/include/mac80211-backport/asm/unaligned.h:3:15: fatal error: asm/unaligned.h: No such file or directory
    3 | #include_next <asm/unaligned.h>
      |               ^~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-03 20:16:25 +02:00
Shiji Yang
bad441ae4e mac80211: rt2x00: fix build warnings on 6.12 kernel
Move rt2x00lib_read_eeprom() function prototype from rt2800lib.h to
rt2x00.h and make rt6352_enable_pa_pin() static to fix the missing
prototypes warnings:

/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/mac80211-regular/backports-6.12.6/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c:213:5: error: no previous prototype for 'rt2x00lib_read_eeprom' [-Werror=missing-prototypes]
  213 | int rt2x00lib_read_eeprom(struct rt2x00_dev *rt2x00dev)
      |     ^~~~~~~~~~~~~~~~~~~~~
/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/mac80211-regular/backports-6.12.6/drivers/net/wireless/ralink/rt2x00/rt2800lib.c:308:6: error: no previous prototype for 'rt6352_enable_pa_pin' [-Werror=missing-prototypes]
  308 | void rt6352_enable_pa_pin(struct rt2x00_dev *rt2x00dev, int enable)
      |      ^~~~~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-03 20:16:25 +02:00
Rosen Penev
410111a8da mac80211: ath9k: remove wrong devm for request_irq
Since the irq gets copied to sc, it's a really bad idea to use devm,
especially when probe fails.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Fixes: 4e18d22 ("mac80211: ath9k: simplify probe with devm")
Link: https://github.com/openwrt/openwrt/pull/18570
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-23 11:51:17 +02:00
Mantas Pucka
8ffb3b2829 mac80211: ath12k: fix regdb parsing for 6GHz
Add backport patch that fixes ath12k regdomain parsing failure in
6GHz band triggered by the latest regdb/board-2.bin update.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18512
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-18 17:51:45 +02:00
Mantas Pucka
903566c2d6 mac80211: refresh patches
Previous commits missed some refreshing

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18512
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-18 17:51:45 +02:00
Mantas Pucka
9e3a2466f6
mac80211: ath12k: add patches for 160MHz support
Add series enabling 160MHz channels on ath12k

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-04-12 10:38:53 +02:00
Mantas Pucka
49e6e1daf4
mac80211: ath12k: fix wideband operation on QCN9274
Add patches to enable QCN9274 radios that support both 5GHz and 6GHz
bands.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-04-12 10:38:53 +02:00
Mantas Pucka
c1acef2e0c
mac80211: ath12k: support fetching regdb from board-2.bin
In board-2.bin available at linux-firmare regdb is stored with
board-id=255. This change is needed to properly use it.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-04-12 10:38:52 +02:00
Felix Fietkau
bfb106e8ae mac80211: backport API change for sta rate control update
Helps stay in sync with mt76 upstream development

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-04-11 10:41:12 +02:00
Rosen Penev
4e18d224c8 mac80211: ath9k: simplify probe with devm
Upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-09 12:43:30 +02:00
Rosen Penev
8534844847 mac80211: fix led-pin usage
ath9k uses a deprecated GPIO API that assumes a starting base of 0. This
is no longer the case and so must be fixed.

Upstream pending patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-09 12:43:30 +02:00
Rosen Penev
d70f8dea1e mac80211: ath9k: remove gpio buttons support
This is only used by mach files, which are no longer used in OpenWrt.

Allows removing a custon ath9k_platform.h file.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-09 12:43:30 +02:00