Commit Graph

1471 Commits

Author SHA1 Message Date
Felix Fietkau
163c87dfc2 mac80211: fix another regression in the broadcast AQL patch
Add a separate bit in struct ieee80211_tx_info to indicate airtime tracked
as broadcast/multicast. This avoids a race condition where airtime from
stations that were just removed wasn't getting subtracted from the total
PHY airtime.

Fixes: 95e633efbd ("mac80211: add AQL support for broadcast/multicast packets")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-03-15 20:37:21 +01:00
Weijie Gao
a325c5fa01 mac80211: fix build with linux kernel 6.6
Fix build failure with linux kernel 6.6

Related kernel commits:

20b0b53aca43 (genetlink: introduce split op representation)

bffcc6882a1b (genetlink: remove userhdr from struct genl_info)

e9a688bcb193 (random: use rejection sampling for uniform bounded
random integers)

3c202d14a9d7 (prandom: remove prandom_u32_max())

3d2f20ad46f8 (wifi: iwlwifi: Use generic thermal_zone_get_trip()
function)

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
2024-03-11 20:17:26 +01:00
Zoltan HERPAI
ce1138867c mac80211: select BRCMFMAC_SDIO on starfive
As the Visionfive V1 board has an Ampak module connected via SDIO, enable
support for SDIO in the brcmfmac module.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2024-03-10 18:21:50 +01:00
Shiji Yang
97f542238a mac80211: rtl8xxxu: sync with linux-next 20240229
Backporting upstream patches to improve RTL8188F support.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2024-03-09 23:42:37 +01:00
Felix Fietkau
1f5fd5cb97 mac80211: fix a regression in the broadcast AQL patch
The AQL limit for buffered broadcast packets is higher than the maximum
total pending airtime limit. This can get unicast data stuck whenever there
is too much pending broadcast data. Fix this by excluding broadcast AQL from
the total limit.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-03-08 22:46:32 +01:00
Robert Marko
e247763617 ath25: drop target
ath25 has been on life support for the last couple of releases, eventually
leading to marking it as source-only in 2023.

It has been basically only touched to do a kernel bump so that we can make
the new OpenWrt release which was a challenge due to small RAM amount.

However, with the attempt of kernel 6.1 update it turns out that kernel
cannot even finish booting due to RAM constraints, so its time to let this
target go.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-03-07 12:15:51 +01:00
Eneas U de Queiroz
375dd23011 mac80211: only build ath10k with smallbuffers
When both variants of ath10k drivers are selected, any driver that is
selected along is being built twice, one for each ath10k variant.

Avoid these redundant builds by introducing an optional second parameter
to config_package that lists the variants for which the package is to be
built.

If the symbol is to be set for all of the variants, $(ALL_VARIANTS) can
be used.  This is the case for the mac80211 and cfg80211 modules.  If
the parameter is empty, then the module will be selected and thus built
when the first variant is compiled.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2024-02-23 14:02:53 +01:00
Eneas U de Queiroz
4390ea484d mac80211: build each variant in its own dir
Having different build directories is the default when the package
Makefile defines more than one variant.

Mac80211 overrides PKG_BUILD_DIR, not taking different variants in
consideration, which causes clobbering the directories when both
variants are built.

When compiled with AUTOREMOVE=y, the effect is that the package is
unnecessarily rebuilt when the package is compiled again.

Wihout AUTOREMOVE, the problem is worse: the second variant will not be
rebuilt, and you end up with the smallbuffers variant being a copy of
the regular one.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2024-02-23 14:02:53 +01:00
Mantas Pucka
aa6cc0a52b mac80211: ath11k: disable coldboot for ipq6018
Coldboot calibration does not work at the moment and causes failure during
wifi startup.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
2024-02-21 21:42:23 +01:00
Felix Fietkau
2a752ff028 mac80211: add a fix for racy drv_sta_rc_update calls
Fixes potential crash issues in mt76 and other drivers

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-21 15:28:53 +01:00
Felix Fietkau
95e633efbd mac80211: add AQL support for broadcast/multicast packets
Should improve performance/reliability with lots of mcast packets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-21 10:56:22 +01:00
Robert Marko
fb45887e85 mac80211: update to 6.6.15
Update backports to the latest 6.6 point release.

Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-21 10:56:22 +01:00
Felix Fietkau
2716853132 wifi-scripts: add new package, move wifi scripts to a single place
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-03 16:16:36 +01:00
Álvaro Fernández Rojas
0c45d2cfc6 mac80211: brcm: fix warning on ARCH_BCM2835
Completely disable dump_survey code on ARCH_BCM2835 to fix defined but not
used warning.
512b762ddb (commitcomment-137899352)

Fixes: 512b762ddb ("mac80211: brcm: disable dump_survey on Raspberry Pi")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-27 10:30:47 +01:00
Álvaro Fernández Rojas
512b762ddb mac80211: brcm: disable dump_survey on Raspberry Pi
Enabling this causes slow iwinfo calls on Raspberry Pi and LuCI slows down
when wireless is enabled.
Fixes: https://github.com/openwrt/openwrt/issues/14013

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-26 18:29:22 +01:00
Álvaro Fernández Rojas
8dcc695633 mac80211: brcm: remove alternative DT firmware names patch
This patch has been reverted in the Raspberry Pi linux repository.
Also refresh the rest of the patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-26 18:29:22 +01:00
Felix Fietkau
e617fa33b5 mac80211: fix typo in getting path from board.json
Use json_get_vars in order to avoid getting bogus values when extra properties
are present

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-26 14:37:30 +01:00
Felix Fietkau
195cf4b58d hostapd: remove obsolete function
Leftover from authsae, which was removed a long time ago

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-25 20:02:30 +01:00
Felix Fietkau
5b8f188c0f Revert "mac80211: rework interface setup, fix race condition"
This reverts commit b7f9742da8.
There are several reports of regressions with this commit. Will be added
back once I've figured out and fixed the cause

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-13 11:19:34 +01:00
Felix Fietkau
b7f9742da8 mac80211: rework interface setup, fix race condition
Only tell netifd about vifs when the setup is complete and hostapd +
wpa_supplicant have been notified

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-11 10:40:43 +01:00
Felix Fietkau
d5a1de17ad mac80211.sh: fix deadlock on configuring multiple PHYs simultaneously
When hitting a timing window where ubus configuration calls are hitting hostapd
and wpa_supplicant simultaneously, they can deadlock waiting for each other.
Fix this by using a lock around the ubus calls.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-11 10:40:43 +01:00
Felix Fietkau
80e4e2285f mac80211: do not emit VHT160 capabilities if channel width is less than 160 MHz
Fixes compatibility issues with VHT160 capable clients

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-09 14:36:46 +01:00
David Bauer
1278d47bea mac80211: avoid crashing on invalid band info
Frequent crashes have been observed on MT7916 based platforms. While the
root of these crashes are currently unknown, they happen when decoding
rate information of connected STAs in AP mode. The rate-information is
associated with a band which is not available on the PHY.

Check for this condition in order to avoid crashing the whole system.
This patch should be removed once the roout cause has been found and
fixed.

Link: https://github.com/freifunk-gluon/gluon/issues/2980

Signed-off-by: David Bauer <mail@david-bauer.net>
2024-01-07 23:06:17 +01:00
Rany Hany
6ca8752a9c
mac80211: add missing newline for "min_tx_power"
This prevents min_tx_power from functioning properly in some circumstances.
Add the missing newline.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
2024-01-05 16:33:52 +01:00
Felix Fietkau
438a97fab6 mac80211: fix a race condition related to enabling fast-xmit
fast-xmit must only be enabled after the sta has been uploaded to the driver,
otherwise it could end up passing the not-yet-uploaded sta via drv_tx calls
to the driver, leading to potential crashes because of uninitialized drv_priv
data.
Add a missing sta->uploaded check and re-check fast xmit after inserting a sta.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-04 18:01:31 +01:00
Oldřich Jedlička
3e738781a9 mac80211: fix flush during station removal
This fixes WARN_ONs when using AP_VLANs after station removal. The flush
call passed AP_VLAN vif to driver, but because these vifs are virtual and
not registered with drivers, we need to translate to the correct AP vif
first.

Fixes: openwrt#12420
Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
2023-12-24 10:34:46 +01:00
Rafał Miłecki
a14240d384 kernel: backport list_count_nodes()
It's needed by various stuff we backport. That includes NVMEM changes
queued for v6.8.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2023-12-15 11:44:38 +01:00
Chukun Pan
3f5e0fb66f mac80211: realtek: rtw88: add RTL8822CU support
Add the Realtek RTL8822CU support to rtw88 package.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2023-11-13 22:01:49 +01:00
Chukun Pan
055f6dd6f2 mac80211: realtek: rtw88: add RTL8821CU support
Add the Realtek RTL8821CU support to rtw88 package.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2023-11-13 22:01:49 +01:00
Chukun Pan
1418d9568a mac80211: realtek: rtw88: add RTL8821CE support
Add the Realtek RTL8821CE support to rtw88 package.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2023-11-13 22:01:49 +01:00
Chukun Pan
16cff054f1 mac80211: realtek: fix rtw88 driver dependencies
The RTW88 PCI/USB driver uses the same firmware,
so add firmware dependencies.

Also CI report that:
  Package kmod-rtw88-usb is missing dependencies for the following libraries:
  usbcore.ko
This commit fixes it.

Fixes: 3538a19 ("mac80211: split rtw88 configuration for each supported chip")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2023-11-13 22:01:49 +01:00
Shiji Yang
fbe48e99bd mac80211: rt2x00: correct wrong BBP register in RxDCOC calibration
This fix can reduce the total calibration time from 6 seconds to
1 second.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-11-13 00:55:38 +00:00
Shiji Yang
6bcd1c2501 mac80211: sync some rt2x00 patches with wireless-next
Some local patches have been sent to upstream and they are slightly
different from the upstream version. So it's better to replace them
to avoid conflicts with the new mac80211 backport driver. The
different parts have been merged into patch 996.

This commit also includes some additional fixes:
* Fix watchdog function.
* Improve MT7620 register initialization.
* Introduce DMA busy watchdog for rt2800.

P.S.
Sometimes rt2800 series chips may fall into a DMA busy state. The
tx queues become very slow and the client cannot connect to the AP.
Usually, We can see a lot of hostapd warnings at this point:
'hostapd: IEEE 802.11: did not acknowledge authentication response'

The DMA busy watchdog can help the driver automatically recover
from this abnormal state. By the way, setting higer 'cell_density'
and disabling 'disassoc_low_ack' can significantly reduce the
probability of the DMA busy.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-11-13 00:55:38 +00:00
Alexis Lothoré
12ef0be4fe mac80211: add support for rtw88_8822bu
Kernel 6.1 has introduced support for RTW8822BU network adapter, which
is an USB variant of the rtw8822b 802.11ac chipset family.

Build and install the corresponding module in the rtw88 package

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
2023-11-12 19:43:19 +01:00
Alexis Lothoré
3538a19c6e mac80211: split rtw88 configuration for each supported chip
Current rtw88 build configuration builds modules for all chips supported by
rtw88 driver family. This brings the following issues:
- adding a chip with a different bus is not convenient (all chips currently
  depends on PCI)
- some features requirements are not relevant for all chips in family (eg
  802.11AC is enforced but RTW88-8723DE is only a 802.11b/g/n chip)

Remove those constraints/issues by adding one module build option per
supported chip, and add intermediate options to properly cascade
dependencies.

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
2023-11-12 19:42:09 +01:00
Lech Perczak
a5ba28454b mac80211: ath9k-htc: support "chanbw" in debugfs
ath9k-htc USB-based adapters also support 5/10MHz channel bandwidth.
Move the code handling the features in debugfs to common-debug.c,
and create proper registration functions to use in debug.c and
htc_drv_debug.c, leaving only debugfs registration there.

While at that, refresh one patch that would conflict otherwise.

Tested on TP-Link Archer C7v2 (ath79) and TP-Link WN722Nv1 (AR9287)
and WN822Nv2 (AR7010+AR9287).

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2023-11-12 16:27:16 +01:00
Lech Perczak
bd6dc4bffa mac80211: ath9k-htc: support "eeprom" in debugfs
ath9k-htc USB-based adapterssupport 5/10MHz channel bandwidth, the
same as standard ath9k ones.
Move the code handling the features in debugfs to common-debug.c,
and create proper registration functions to use in debug.c and
htc_drv_debug.c, leaving only debugfs registration there.

While at that, refresh one patch that would conflict otherwise.

Tested on TP-Link Archer C7v2 (ath79) and TP-Link WN722Nv1 (AR9287)
and WN822Nv2 (AR7010+AR9287).

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2023-11-12 16:27:16 +01:00
Christian Marangi
1070fbce6e
mac80211: fix not set noscan option for wpa_supplicant
noscan option was changed to hostapd_noscan but the entry in
wpa_supplicant was never updated resulting in the noscan option actually
never set.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-11-09 15:58:34 +01:00
Shiji Yang
2d314984b1 mac80211: ath: add struct_group for struct ath_cycle_counters
Add a struct_group to around all members in struct ath_cycle_counters.
It can help the compiler detect the intended bounds of the memcpy() and
memset().

This patch fixes the following build warning:

In function 'fortify_memset_chk',
    inlined from 'ath9k_ps_wakeup' at /home/db/openwrt/build_dir/target-mips_24kc_musl/linux-ath79_generic/backports-6.1.24/drivers/net/wireless/ath/ath9k/main.c:140:3:
./include/linux/fortify-string.h:314:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
  314 |                         __write_overflow_field(p_size_field, size);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-10-31 21:12:15 +01:00
Zeyu Dong
4b0b90d3fa
mac80211: compile kconf with host gcc
Fix the building issue setting CC to KERNEL_CC in kernel.mk. The
kernel backports by default uses CC to compile kconf. A new patch is
added to mac80211 to compile kconf with host gcc.

Signed-off-by: Zeyu Dong <dzy201415@gmail.com>
[ refresh patches ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-10-28 21:34:23 +02:00
Christian Marangi
bea4f50207
mac80211: rt2x00: improve EEPROM load patches
Improve EEPROME load patches. Reorganize and rework them.

The current patch are bugged and with the case of MTD loading, leaks and
never free the EEPROM read values.

Also add support for loading EEPROM using NVMEM cells.

As a cleanup, change the binding to swap EEPROM read from mtd to
ralink,eeprom-swap and generilize it.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-10-16 14:16:55 +02:00
Robert Marko
359a6e36e9 mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

All of the changes are various bugfixes, there is no new major feature.
Notable bugfixes are:
* WCN6855 board name fixes
* One MSI vector booting is working again
This is rather important for most of the older platforms.

* DFS CAC state in virtual interfaces was fixed
* TX power during CAC reporting

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-10-14 08:26:56 +02:00
Robert Marko
aab2e6d9ae mac80211: backport upstream DFS CAC time export
DFS CAC time export is required for backport of a ath11k fix so lets
backport the required cfg80211 upstream commit as well.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-10-14 08:26:56 +02:00
Shiji Yang
d152188906 mac80211: rt2x00: fix MT7620 low RSSI issue
Introducing SoC specific RSSI base value to fix the low RSSI issue
on MT7620. With this fix[1], the RSSI value reported by MT7620 will
increase by 10 dB.

[1] https://lore.kernel.org/linux-wireless/TYAP286MB031571CDB146C414A908A66DBCFEA@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM/

Fixes: https://github.com/openwrt/openwrt/issues/11036
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-09-23 03:30:00 +01:00
Felix Fietkau
13b24340d7 mac80211: backport upstream patch required for mt76 update
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-18 12:50:45 +02:00
Robert Marko
b33bfcf9fa
mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

All of the changes are various bugfixes, there is no new major feature.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-09-17 14:44:34 +02:00
Robert Marko
10eea40f7b
mac80211: ath11k: drop upstreamed patches
Commit ed3725e15a154ebebf44e0c34806c57525483f92
("wifi: ath11k: Fix qmi_msg_handler data structure initialization")
has been present upstream since 6.1.2 but it seems Quilt refreshed it
wrongly so it appeared like a completely different patch.

Commit 7c15430822e71e90203d87e6d0cfe83fa058b0dc
("wifi: ath11k: allow system suspend to survive ath11k")
has been present upstream since 6.1.16 but somehow quilt still happily
applied it.

So, drop both of them.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-09-17 14:44:30 +02:00
Felix Fietkau
16889141d9 mac80211: fix AP reconfiguration on DFS channels in non-ETSI regdomain
Allow grace period for DFS available after shutting down beacons on the channel

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-14 19:13:35 +02:00
Felix Fietkau
02b4dc93b6 mac80211: only add the mbssid option to the config when set
This avoids errors when the feature is not built into the hostapd binary

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 17:38:25 +02:00
Felix Fietkau
20c667cc88 hostapd: rework reload support and MAC address handling
MAC address and interface name assigned by mac80211.sh depend on the order in
which interfaces are brought up. This order changes when interfaces get added
or removed, which can cause unnecessary reload churn.

One part of the fix it making MAC address allocation more dynamic in both
wpa_supplicant and hostapd, by ignoring the provided MAC address using
the next available one, whenever the config does not explicitly specify one.

The other part is making use of support for renaming netdevs at runtime and
preserving the MAC address for renamed netdevs.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 12:37:44 +02:00
Felix Fietkau
651cb1422e mac80211: add multiple BSSID support
This advertises multiple BSS interfaces in a single set of beacons

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 12:37:44 +02:00
Felix Fietkau
da55eba968 mac80211: add support for configuring number of globally allocated MAC addresses
When a device has more than one reserved mac address, they can be used for
virtual interfaces without the local bit in the first byte

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 12:37:44 +02:00
Felix Fietkau
13c1080a3f hostapd: move mac address allocation from mac80211.sh to wdev.uc
Preparation for upcoming hostapd reload improvements

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 12:37:44 +02:00
Felix Fietkau
1688c47e3e mac80211: disable automatically created sta interfaces
They are not useful for anything on the system and are annoying when a PHY
is disabled in the config

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 11:57:06 +02:00
Felix Fietkau
2148579116 mac80211: add missing kernel modules for brcmfmac
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 09:45:56 +02:00
Felix Fietkau
20bd3502d3 mac80211: fix mesh id corruption on 32 bit systems
increase size of ifmsh->mbss_changed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-12 15:35:24 +02:00
Felix Fietkau
42fda2f64e mac80211: add missing dependency for iwlwifi
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-12 11:18:45 +02:00
Felix Fietkau
e648e3ccf9 mac80211: fix build regressions on linux 6.1
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-11 18:54:13 +02:00
Felix Fietkau
f861292abc mac80211: update to version 6.5
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-11 14:29:36 +02:00
Felix Fietkau
4a0b1af905 hostapd: allow adding initial AP without breaking STA interface connection
When switching from a STA-only configuration to AP+STA on the same phy, the
STA was previously restarted in order to notify hostapd of the new frequency,
which might not match the AP configuration.
Fix the STA restart by querying the operating frequency from within hostapd
when bringing up the AP.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-03 09:51:28 +02:00
Felix Fietkau
99a98b3024 mac80211: remove non-upstream antenna gain configuration patch
It seems that this was not functioning properly and was likely completely unused.
Keeping this out of tree also introduced some annoying churn when updating, because
of the iw nl80211.h sync patch.
If this is needed, it will be reintroduced when/if it is added upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-08-30 12:28:30 +02:00
Jacob Aharon
adcd032679 mac80211: Add ath11k to the help text of ATH_DEBUG
ATH_DEBUG package is required to debug ath11k.

Fixes: 93ae4353cd ("mac80211: add ath11k PCI support")
Signed-off-by: Jacob Aharon <ah.jacob@gmail.com>
2023-08-25 23:56:21 +02:00
Shiji Yang
ce6ad123e7 mac80211: fix MT7620 Wi-Fi channel scanning function
During the channel scanning process, the driver will continuously
switch channels. It seems that the full RF calibration step in
rt2800_config_channel() caused the channel scanning function to
timeout. To fix it, move the RF calibration to rt2800_enable_radio()
so that it is only executed once. This commit also includes some
coding format adjustments to follow the Linux recommended style.

Fixes: 2824fa6963 ("mac80211: rework MT7620 PA/LNA RF calibration")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-08-22 19:17:24 +01:00
Felix Fietkau
ed0ad7759c hostapd: remove config_id parameters from hostapd.conf
They are no longer used

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-08-10 22:27:59 +02:00
Felix Fietkau
4bd9f2eda5 mac80211: fix setting mesh parameters after hostapd reload change
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-08-09 10:50:53 +02:00
Felix Fietkau
afa229038c mac80211: fix applying tx/rx antenna changes afer hostapd reload change
Tear down all interfaces if the antenna settings change, so that the
capabilities can be recalculated properly

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-08-08 20:12:13 +02:00
Felix Fietkau
e56c5f7b27 hostapd: add ucode support, use ucode for the main ubus object
This implements vastly improved dynamic configuration reload support.
It can handle configuration changes on individual wifi interfaces, as well
as adding/removing interfaces.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-08-01 10:08:03 +02:00
Shiji Yang
2824fa6963 mac80211: rework MT7620 PA/LNA RF calibration
This patch makes some improvements to the MT7620 RF calibration.

1. Move MT7620 PA/LNA calibration code to dedicated functions.
2. Restore RF and BBP registers before R-Calibration.
3. Do Rx DCOC calibration again before RXIQ calibration.
4. Use SoC specific AGC initial LNA value.
5. Correct MAC_RX_EN mask in rt2800_r_calibration()[1].

[1] This change may fix the "BBP/RF register access failed" error:
ieee80211 phy0: rt2800_wait_bbp_rf_ready: Error - BBP/RF register access failed, aborting

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-07-29 15:07:11 +01:00
Lu jicong
06d5c773fa rockchip: enable wifi support for NanoPC T4
wifi module: AP6356S (BCM4356) SDIO

Signed-off-by: Lu jicong <jiconglu58@gmail.com>
2023-07-26 12:15:20 +02:00
Shiji Yang
a680ac8bcb mac80211: limit MT7620 TX power based on eeprom calibration
This patch adds basic TX power control for the MT7620 and limits its
maximum TX power. This can avoid the link speed decrease caused by
chip overheating.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-07-23 12:40:12 +01:00
Felix Fietkau
8f7be2a2ba mac80211: add fix for receiving STP frames on mesh
Fix length in ethernet header

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-07-11 14:38:20 +02:00
David Bauer
d9070f8d23 mac80211: partly revert force-mac80211 loss detection
This patch will only force mac80211 loss detection upon ath10k by
masking the driver-specific loss-detection bit.

Ref: commit ed816f6ba8 ("mac80211: always use mac80211 loss detection")

Signed-off-by: David Bauer <mail@david-bauer.net>
2023-07-05 12:40:34 +02:00
Felix Fietkau
c8963580aa mac80211: fix mesh fast tx cache issues
Split the cache by tx type in order to avoid packet drop issues

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-06-30 13:18:55 +02:00
Felix Fietkau
f343001b25 mac80211: fix quilt patch corruption
Fixes: 9219b0660a ("mac80211: fix HE issues with AP_VLAN interfaces")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-06-23 17:34:19 +02:00
Felix Fietkau
9219b0660a mac80211: fix HE issues with AP_VLAN interfaces
Fixes issues with aggregation

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-06-23 13:58:09 +02:00
David Bauer
ed816f6ba8 mac80211: always use mac80211 loss detection
ath10k does not report excessive loss in case of broken block-ack
sessions. The loss is communicated to the host-os, but ath10k does not
trigger a low-ack events by itself.

The mac80211 framework for loss detection however detects this
circumstance well in case of ath10k. So use it regardless of ath10k's
own loss detection mechanism.

Signed-off-by: David Bauer <mail@david-bauer.net>
2023-06-23 00:21:48 +02:00
Robert Marko
f02f6aaa8d
ipq807x: rename target to qualcommax
Currently, ipq807x only covers Qualcomm IPQ807x SoC-s.
However, Qualcomm also has IPQ60xx and IPQ50xx SoC-s under the AX WiSoC-s
and they share a lot of stuff with IPQ807x, especially IPQ60xx so to avoid
duplicating kernel patches and everything lets make a common target with
per SoC subtargets.

Start doing that by renaming ipq807x to qualcommax so that dependencies
on ipq807x target can be updated.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-16 11:11:08 +02:00
Robert Marko
acde5271a6 mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

This introduces support for MBSSID and EMA, adds factory test mode and
some new HTT stats.

Tested-by: Francisco G Luna <frangonlun@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-04 12:50:31 +02:00
Robert Marko
84b5735b4c mac80211: backport EMA beacon support
Backport EMA beacon support from kernel 6.4.
It is required for MBSSID/EMA suport in ath11k that will follow.

Tested-by: Francisco G Luna <frangonlun@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-04 12:50:25 +02:00
Felix Fietkau
9713d62c01 mac80211: remove legacy unused lib80211 support patch
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-05-26 13:38:34 +02:00
Robert Marko
bc4ba54a09 mac80211: backport merged version of A-MSDU mesh patch
Kernel 6.1 now has fortify_memcpy_chk() and it is causing the following
warning while trying to compile backports:
  CC [M]  /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/net/wireless/util.o
In file included from ./include/linux/string.h:253,
                 from /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/backport-include/linux/string.h:3,
                 from ./include/linux/bitmap.h:11,
                 from ./include/linux/cpumask.h:12,
                 from ./include/linux/smp.h:13,
                 from ./arch/arm64/include/asm/arch_timer.h:18,
                 from ./arch/arm64/include/asm/timex.h:8,
                 from ./include/linux/timex.h:67,
                 from ./include/linux/time32.h:13,
                 from ./include/linux/time.h:60,
                 from /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/backport-include/linux/time.h:3,
                 from ./include/linux/skbuff.h:15,
                 from /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/backport-include/linux/skbuff.h:3,
                 from ./include/linux/if_ether.h:19,
                 from /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/backport-include/linux/if_ether.h:3,
                 from ./include/linux/etherdevice.h:20,
                 from /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/backport-include/linux/etherdevice.h:3,
                 from /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/net/wireless/util.c:12:
In function 'fortify_memcpy_chk',
    inlined from 'ieee80211_strip_8023_mesh_hdr' at /home/robimarko/Building/AX3600/ipq807x-5.15/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/backports-6.1.24/net/wireless/util.c:590:3:
./include/linux/fortify-string.h:404:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
  404 |                         __write_overflow_field(p_size_field, size);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

This issue was fixed in the final version of
("wifi: mac80211: fix receiving A-MSDU frames on mesh interfaces") that was
merged upstream but we have a older version that is using:
memcpy(&payload.eth.h_dest, mesh_addr, 2 * ETH_ALEN);
instead of:
memcpy(&payload.eth, mesh_addr, 2 * ETH_ALEN);

So, lets just backport the merged version of patch to fix the issue.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-05-23 13:37:28 +02:00
Rafał Miłecki
bd26266314 mac80211: brcm: drop brcmfmac patch waiting for register_wiphy()
That was a workaround for OpenWrt generation of config files. This patch
was used to postpone returning from probe function until loading
firmware and calling register_wiphy().

All of that is not needed anymore thanks to the ieee80211 hotplug.d
script introduced in the commit 5f8f8a3661 ("base-files, mac80211,
broadcom-wl: wifi detection and configuration"). That takes care of
generating /etc/config/wireless entries even if wireless device appears
late in the booting process.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2023-05-22 08:18:45 +02:00
Daniel Golle
a67f2ab745 mac80211: fix mt7601u firmware path and refresh patches
Import patch fixing the updated firmware path of mt7601u.bin.
Refresh patches while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-05-18 02:39:55 +01:00
Christian Marangi
b545df5cfd
mac80211: brcm: fix compilation warning for unused brcmf_of_fwnames
If CPTCFG_BRCMFMAC_SDIO is not used brcmf_of_fwnames is defined but not
used in the case of CONFIG_OF not compiled.

Restrict brcmf_of_fwnames only with CPTCFG_BRCMFMAC_SDIO selected.
Fix compilation warning:
/__w/openwrt/openwrt/openwrt/build_dir/target-x86_64-openwrt-linux-musl_musl/linux-x86_64/backports-6.1.24/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h:16:1: error: 'brcmf_of_fwnames' defined but not used [-Werror=unused-function]
   16 | brcmf_of_fwnames(struct device *dev, u32 *map_count)
      | ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-12 03:15:37 +02:00
Christian Marangi
cbf299c86c
mac80211: ath9k: handle error from copy_to_user in read_file_eeprom
Handle error from copy_to_user in read_file_eeprom.
Fix compilarion warning:
/__w/openwrt/openwrt/openwrt/build_dir/target-x86_64-openwrt-linux-musl_musl/linux-x86_64/backports-6.1.24/drivers/net/wireless/ath/ath9k/debug.c: In function 'read_file_eeprom':
/__w/openwrt/openwrt/openwrt/build_dir/target-x86_64-openwrt-linux-musl_musl/linux-x86_64/backports-6.1.24/drivers/net/wireless/ath/ath9k/debug.c:1451:17: error: ignoring return value of 'copy_to_user' declared with attribute 'warn_unused_result' [-Werror=unused-result]
 1451 |                 copy_to_user(user_buf, from, bytes);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-12 03:15:36 +02:00
Robert Marko
15abf8d18b
mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

This replaces the 160MHz with the upstreamed one, fixes 6GHz only WIPHY
registration, allows SAR usage on WCN6750 and plenty of REO fixes.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-05-06 07:15:57 +02:00
Álvaro Fernández Rojas
77d85a1bd3 mac80211: b43: only enable bcma or ssb on bmips
By default both kmod-bcma and kmod-ssb are selected by kmod-b43.
However, only one of both modules is needed for bmips subtargets:
- bcma: bcm6318, bcm6328, bcm6362, bcm63268
- ssb: bcm6358, bcm6368

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-04-23 12:18:36 +02:00
Robert Marko
f7f47b1369
mac80211: ath11k: replace 160MHz fix with upstream pending one
QCA has finally sent a proper fixup for the 160MHz regression upstream,
so lets use the pending fix which also properly sets center frequency 2
in case 80+80 MHz is used.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-04-18 13:59:12 +02:00
Felix Fietkau
e722b667c5 mac80211: update to v6.1.24
Drop patches accepted upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-04-18 10:43:06 +02:00
Robert Marko
930e702d72
mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

This replaces the management TLV pending fix with the upstreamed one,
fixes traffic flooding when AP and monitor modes are used at the same time,
fixes QCN9074 always showing -95 dBm for station RSSI in dumps,
fixes potential crash on boot if spectral scan is enabled due to writing to
unitialized memory and adds 11d scan offloading for WCN6750 and WCN6855.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-04-12 16:06:03 +02:00
Robert Marko
7475321f46 mac80211: ath11k: Remove regulatory intersection
Currently, during initialization ath11k will receive a regulatory event
from the firmware in which it will receive the default regulatory domain
code and accompanying rules list and report those to the kernel.

Then if you try to change the regulatory domain to a different country code
it will do a weird thing in which it will send that to the FW and after
receiving the appropriate regulatory event it will parse the rules.
However, while its parsing there is a weird thing being done, and that is
that new raw rules from FW get intersected with the rules from the default
domain.
This is creating a big issue as the default domain is almost always set to
"US" or just "00" aka world so ath11k will unfairly limit you to the most
restrictive combination of rules based on the default domain and your
desired domain.
For example, in ETSI countries this is causing channels 12 and 13 on 2.4GHz
to not be usable since "US" limits 2.4GHz to 2472MHz instead of 2482MHz
like ETSI countries do.

So, lets do what TIP and even QCA do in their ath11k downstream tree and
completely get rid of the interesection code in ath11k.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-04-11 20:20:18 +02:00
Robert Marko
3188480092
mac80211: ath11k: Fix invalid mgmt rx frame length issue
FW 2.9 uses multiple TLV-s for the RX mgmt even which driver currently does
not support, so import a pending upstream patch to fix that [1].

[1] https://patchwork.kernel.org/project/linux-wireless/patch/20230320133840.30162-1-quic_nmaran@quicinc.com/

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-04-07 11:11:44 +02:00
Robert Marko
da4f7e51f3 mac80211: ath11k: restore 160MHz support
Recent ath11k sync introduced a regression causing 80+80 and 160MHz to
stop being advertised and thus not selectable due to the respective feature
flags being cleared.

So, until we get answers upstream to what was the reasoning behind this and
it gets fixed, lets just remove the flag clearing to reanable 160MHz.

Fixes: 789a0bac35 ("mac80211: ath11k: sync with ath-next")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-04-01 19:30:48 +02:00
Felix Fietkau
d54c91bd9a mac80211, mt76: add fixes for recently discovered security issues
Fixes CVE-2022-47522

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-03-30 11:40:11 +02:00
Felix Fietkau
3ab670b24e mac80211: fix receiving mesh packets in forwarding=0 networks
When forwarding is set to 0, frames are typically sent with ttl=1.
Move the ttl decrement check below the check for local receive in order to
fix packet drops.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-03-26 17:19:39 +02:00
Felix Fietkau
9779ee021d mac80211: fix invalid calls to drv_sta_pre_rcu_remove
Potentially fixes some driver data structure corruption issues

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-03-24 13:32:51 +01:00
Felix Fietkau
d0a06965e8 mediatek: add kernel code for supporting offloading wlan->eth and wlan->wlan flows
Will be enabled by an upcoming mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-03-23 17:54:18 +01:00
Robert Marko
789a0bac35 mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

This brings in actually setting the MU-MIMO parameters in HW and 6GHz
regulatory support along with some minor resource handling fixes.

This allows to easily backport further fixes as cherry picking them has
started requiring manual conflict resolution.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-03-20 12:23:11 +01:00
Nick Hainke
d033c3ba87
mac80211: mark patches accepted upstream
Add kernel tags to the patches that got accepted upstream.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-03-19 18:10:36 +01:00
Rosen Penev
d650ca9247 mac80211: enable ATH9K_HWRNG
in kernel 5.17, fcd09c90c3c5254b18ef34e30c57c65d34290a84 integrated it
better with thee random framework.

Gives boot time randomness on supported devices.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-05 19:13:22 +01:00