Commit graph

1,268,367 commits

Author SHA1 Message Date
Kalle Valo
f29dcae96e rtw-next patches for v6.11
Some fixes and refactors of rtlwifi, rtw88 and rtw89. Only one major change
 listed below:
 
 rtlwifi:
  - add new chip support of RTL8192DU
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuyEnvMdOsBl1WjpdjlvZYmhshd8FAmZecvoACgkQjlvZYmhs
 hd9zfQ//ZdUjUqjIYZX7fWtWy5WLYbDXus/ky8e4jdR7vR2LQg7OJca658n9LjwG
 L7Nwsh3quLXOLvNVZREsbJhXswNmk62TvtTxH9nT8jNioNCnqUQg0dDH5dCwmZZz
 uAD+ypwdA5oON6knyE90Rp1Tx+SJkgi029VarUbajUJ9Awi8wd2tsv/jtPxM6ZQF
 BtX0JdQpVrYP/lsZeFhs/jsFhKr1rIBn/1xPW/exq0yNAi2xkEJlrRqgA/YLdwkJ
 yEC9lIq9wwGFs7Qhm6/twIj6PC387AIHx4ccdvlIy07H6ZAgsQdCqQsudcdqBxeQ
 MllJ3g9c43mDiVbmzZYjLwqPosvnNnOXie7B6uzWwyzbJx1b65Wz4w7w7WdNo6bp
 foh7bYjhtmwdydBF53UDv6kuepY7JR3spSuoN4xA32fMdSO3GPLb18m+GsOK//IN
 a0XjUTH6i12HSiZgPeR9okbOoEvpT56EL5Z1FjzLPQX8+GLZAr/UCybOo0sRNcEy
 dZ5kXiAfXKaBJRoO0uFJ0iCgbhcYH44WMI0ubw+B3m5SaNQMdLYNxXLyv/b6lNnj
 EyJHjZcwQWu2KHDLmF0c+mcchCuff+rg6r5OvWpnuM8YzoEJu0RithugQ6oWYZ9r
 blIo9MNkDhkrTbvZW5NoeqMaFxs1VJoA/UUrHEdjkqbLo0fXUdg=
 =tWr4
 -----END PGP SIGNATURE-----

Merge tag 'rtw-next-2024-06-04' of https://github.com/pkshih/rtw

rtw-next patches for v6.11

Some fixes and refactors of rtlwifi, rtw88 and rtw89. Only one major change
listed below:

rtlwifi:
 - add new chip support of RTL8192DU
2024-06-05 21:23:16 +03:00
Jiapeng Chong
9373ed2806 wifi: rtw89: chan: Use swap() in rtw89_swap_sub_entity()
Use existing swap() function instead of keeping duplicate source code.

./drivers/net/wireless/realtek/rtw89/chan.c:2336:32-33: WARNING opportunity for swap().

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=9174
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240529020244.129027-1-jiapeng.chong@linux.alibaba.com
2024-06-03 09:44:53 +08:00
Dr. David Alan Gilbert
5bcd9a0a59 wifi: brcm80211: remove unused structs
'brcmf_pcie_core_info' was added in
commit 9e37f045d5 ("brcmfmac: Adding PCIe bus layer support.")
but never used.

'brcms_c_bit_desc' last use was removed in
commit cdf4352f5c ("brcmsmac: Improve tx trace and debug support").

Remove them.

Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240526234553.286773-1-linux@treblig.org
2024-06-01 13:09:22 +03:00
Erick Archer
dcb77f854a wifi: brcm80211: use sizeof(*pointer) instead of sizeof(type)
It is preferred to use sizeof(*pointer) instead of sizeof(type)
due to the type of the variable can change and one needs not
change the former (unlike the latter). This patch has no effect
on runtime behavior.

At the same time remove some redundant NULL initializations.

Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Erick Archer <erick.archer@outlook.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/AS8PR02MB7237FF1C2E880D1231684D708BF02@AS8PR02MB7237.eurprd02.prod.outlook.com
2024-06-01 13:08:57 +03:00
Ping-Ke Shih
9c4fde42cc wifi: rtlwifi: handle return value of usb init TX/RX
Handle error code to cause failed to USB probe result from unexpected
USB EP number, otherwise when USB disconnect skb_dequeue() an uninitialized
skb list and cause warnings below.

usb 2-1: USB disconnect, device number 76
INFO: trying to register non-static key.
The code is fine but needs lockdep annotation, or maybe
you didn't initialize this object before use?
turning off the locking correctness validator.
CPU: 0 PID: 54060 Comm: kworker/0:1 Not tainted 6.9.0-rc7 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014
Workqueue: usb_hub_wq hub_event
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x116/0x1b0 lib/dump_stack.c:114
 assign_lock_key kernel/locking/lockdep.c:976 [inline]
 register_lock_class+0xc18/0xfa0 kernel/locking/lockdep.c:1289
 __lock_acquire+0x108/0x3bc0 kernel/locking/lockdep.c:5014
 lock_acquire kernel/locking/lockdep.c:5754 [inline]
 lock_acquire+0x1b0/0x550 kernel/locking/lockdep.c:5719
 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
 _raw_spin_lock_irqsave+0x3d/0x60 kernel/locking/spinlock.c:162
 skb_dequeue+0x20/0x180 net/core/skbuff.c:3846
 rtl_usb_cleanup drivers/net/wireless/realtek/rtlwifi/usb.c:706 [inline]
 rtl_usb_deinit drivers/net/wireless/realtek/rtlwifi/usb.c:721 [inline]
 rtl_usb_disconnect+0x4a4/0x850 drivers/net/wireless/realtek/rtlwifi/usb.c:1051
 usb_unbind_interface+0x1e8/0x980 drivers/usb/core/driver.c:461
 device_remove drivers/base/dd.c:568 [inline]
 device_remove+0x122/0x170 drivers/base/dd.c:560
 __device_release_driver drivers/base/dd.c:1270 [inline]
 device_release_driver_internal+0x443/0x620 drivers/base/dd.c:1293
 bus_remove_device+0x22f/0x420 drivers/base/bus.c:574
 device_del+0x395/0x9f0 drivers/base/core.c:3909
 usb_disable_device+0x360/0x7b0 drivers/usb/core/message.c:1418
 usb_disconnect+0x2db/0x930 drivers/usb/core/hub.c:2305
 hub_port_connect drivers/usb/core/hub.c:5362 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5662 [inline]
 port_event drivers/usb/core/hub.c:5822 [inline]
 hub_event+0x1e39/0x4ce0 drivers/usb/core/hub.c:5904
 process_one_work+0x97b/0x1a90 kernel/workqueue.c:3267
 process_scheduled_works kernel/workqueue.c:3348 [inline]
 worker_thread+0x680/0xf00 kernel/workqueue.c:3429
 kthread+0x2c7/0x3b0 kernel/kthread.c:388
 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>

Reported-by: Shichao Lai <shichaorai@gmail.com>
Closes: https://lore.kernel.org/linux-wireless/CAEk6kZuuezkH1dVRJf3EAVZK-83=OpTz62qCugkpTkswj8JF6w@mail.gmail.com/T/#u
Tested-by: Shichao Lai <shichaorai@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240524003248.5952-1-pkshih@realtek.com
2024-05-30 10:52:24 +08:00
Bitterblue Smith
59ea089dcb wifi: rtlwifi: Enable the new rtl8192du driver
The RTL8192DU is an older Wifi 4 dual band chip. It comes in two
flavours: single MAC single PHY (like most Realtek Wifi 4 USB devices),
and dual MAC dual PHY.

The single MAC single PHY version is 2T2R and can work either in the
2.4 GHz band or the 5 GHz band.

The dual MAC dual PHY version has two USB interfaces and appears to the
system as two separate 1T1R Wifi devices, one working in the 2.4 GHz
band, the other in the 5 GHz band.

This was tested only with a single MAC single PHY device, mostly in
station mode. The speeds in the 2.4 GHz band with 20 MHz channel width
are similar to the out-of-tree driver: 85/51 megabits/second.

Stefan Lippers-Hollmann tested the speed in the 5 GHz band with 40 MHz
channel width: 173/99 megabits/second.

It was also tested briefly in AP mode. It's emitting beacons and my
phone can connect to it.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/5f2da7ee-876a-42fc-8fec-ec5386fa8c26@gmail.com
2024-05-30 10:32:47 +08:00
Bitterblue Smith
b5dc8873b6 wifi: rtlwifi: Add rtl8192du/sw.c
This contains the new module's entry point.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/1fdc83ac-4a6f-4645-8837-6e38683b6c84@gmail.com
2024-05-30 10:30:12 +08:00
Bitterblue Smith
1d8b5003a5 wifi: rtlwifi: Constify rtl_hal_cfg.{ops,usb_interface_cfg} and rtl_priv.cfg
This allows the drivers to declare the structs rtl_hal_cfg, rtl_hal_ops,
and rtl_hal_usbint_cfg as const.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/1b29994f-3d07-4297-875d-57c3a87a1ec6@gmail.com
2024-05-30 10:28:39 +08:00
Bitterblue Smith
3f8b94dbff wifi: rtlwifi: Add rtl8192du/dm.{c,h}
These contain functions related to the dynamic mechanism, which runs
every two seconds to adjust to changes in the environment.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/a010ed6d-efb0-456d-bd4a-dfc6da23e7aa@gmail.com
2024-05-30 10:28:02 +08:00
Bitterblue Smith
91f43aee0b wifi: rtlwifi: Add rtl8192du/fw.{c,h} and rtl8192du/led.{c,h}
fw.c contains a function for loading the firmware.
led.c contains a function for controlling the LED.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/a52b8907-267c-4811-90ca-5eb852a2aa09@gmail.com
2024-05-30 10:26:36 +08:00
Bitterblue Smith
c0e4ae46ff wifi: rtlwifi: Add rtl8192du/rf.{c,h}
These contain one RF configuration function and some functions related
to dual MAC operation.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/36258d72-11fd-4f70-84c6-782972f706ed@gmail.com
2024-05-30 10:26:24 +08:00
Bitterblue Smith
8321424134 wifi: rtlwifi: Add rtl8192du/trx.{c,h}
These contain routines related to sending frames to the chip.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/bd2c24a0-a1fe-493a-8079-d83fda81a0d5@gmail.com
2024-05-30 10:25:31 +08:00
Bitterblue Smith
af46caf051 wifi: rtlwifi: Add rtl8192du/phy.{c,h}
These contain mostly the calibration and channel switching routines
for RTL8192DU.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/299a5ab7-46bf-410b-bbeb-e252eeeeb34c@gmail.com
2024-05-30 10:23:12 +08:00
Bitterblue Smith
e769c67105 wifi: rtlwifi: Add rtl8192du/hw.{c,h}
These contain mostly hardware init/deinit routines for RTL8192DU.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/282afe18-f37d-45f7-9275-68c39d1fde09@gmail.com
2024-05-30 10:13:53 +08:00
Bitterblue Smith
dc71f4e142 wifi: rtlwifi: Add new members to struct rtl_priv for RTL8192DU
These are needed for the dual MAC version of RTL8192DU.

The two mutexes are used to avoid concurrent access to the hardware
from the two USB interfaces.

The two arrays are filled by one interface during LC calibration and
accessed by the other interface during channel switching.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/d1bf581b-de41-4d09-bf56-768c2fc29dd3@gmail.com
2024-05-30 10:12:19 +08:00
Bitterblue Smith
ed41175674 wifi: rtlwifi: Add rtl8192du/table.{c,h}
These contain the MAC, BB, RF, and AGC initialisation tables for
RTL8192DU.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/5ea548b9-5ec6-4358-aa5d-94071f2341cb@gmail.com
2024-05-30 10:09:44 +08:00
Bitterblue Smith
b21faf0ede wifi: rtlwifi: rtl8192d: Use "rtl92d" prefix
Some functions moved from rtl8192de still use the "rtl92de" prefix.
Rename them.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/abe3624d-f986-4a24-966c-67defa962e3f@gmail.com
2024-05-30 10:06:01 +08:00
Johannes Berg
8526f8c877 wifi: nl80211: clean up coalescing rule handling
There's no need to allocate a tiny struct and then
an array again, just allocate the two together and
use __counted_by(). Also unify the freeing.

Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240523120213.48a40cfb96f9.Ia02bf8f8fefbf533c64c5fa26175848d4a3a7899@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:38:53 +02:00
Johannes Berg
6322e0e75a wifi: mac80211: handle HW restart during ROC
If we have a HW restart in the middle of a ROC period,
then there are two cases:
 - if it's a software ROC, we really don't need to do
   anything, since the ROC work will still be queued
   and will run later, albeit with the interruption
   due to the restart;
 - if it's a hardware ROC, then it may have begun or
   not, if it did begin already we can only remove it
   and tell userspace about that.

In both cases, this fixes the warning that would appear
in ieee80211_start_next_roc() in this case.

In the case of some drivers such as iwlwifi, the part of
restarting is never going to happen since the driver will
cancel the ROC, but flushing the work to ensure nothing
is pending here will also result in no longer being able
to trigger the warning in this case.

Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240523120352.f1924b5411ea.Ifc02a45a5ce23868dc7e428bad8d0e6996dd10f4@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:38:53 +02:00
Johannes Berg
a0ca76e5b7 wifi: mac80211: check ieee80211_bss_info_change_notify() against MLD
It's not valid to call ieee80211_bss_info_change_notify() with
an sdata that's an MLD, remove the FIXME comment (it's not true)
and add a warning.

Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240523121140.97a589b13d24.I61988788d81fb3cf97a490dfd3167f67a141d1fd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:38:49 +02:00
Miri Korenblit
fca7018d4b wifi: iwlwifi: move Bz and Gl iwl_dev_info entries
The iwl_dev_info entries for these devices were incorrectly positioned
within the array, out of chronological order. Move them arround.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://msgid.link/20240527190228.a75e9a1eb86c.I003980f8ca60a96019657e396e848a07df6b92a4@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:34:08 +02:00
Miri Korenblit
5860c6f592 wifi: iwlwifi: move amsdu_size parsing to iwlwifi
The code that is parsing the amsdu_size module parameter and mapping it
to the corresponding Rx buffer size is common to all opmodes.
Move it into a function in iwlwifi, as preparation to a new op mode we
are working on.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240527190228.a3430d32923d.Iab3c22ef0df685f72f22dafc47021f0dc7bd6fa5@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:34:07 +02:00
Miri Korenblit
e506f8e755 wifi: iwlwifi: remove redundant prints
Upon start, the different opmodes are currently printing:
1. HW rev, which is already print by iwlwifi
2. The HW name (e.g. "Intel(R) Wi-Fi 7 BE201 320MHz")

cleanup things such as the hw rev won't be printed again, the HW name will
be printed by iwlwifi instead of each opmode.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://msgid.link/20240527190228.5c589c7abed0.I3590c4ee0ee99d1b207852c32d25d326afb327dd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:34:03 +02:00
Miri Korenblit
db680c60a8 wifi: iwlwifi: mvm: fix a wrong comment
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240527190228.2105ffcf747d.Ic838959b812b6cb4cbb856e8c0bcaad2f46ac71b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:34:01 +02:00
Miri Korenblit
05ce6e9b05 wifi: iwlwifi: mvm: declare band variable in the scope
band is not used outside of the for loop, declare it inside it.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240527190228.b634d184980a.I9d9e71125f9a77ba4f9a33a7a2ff1e8e78e17767@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:34:00 +02:00
Johannes Berg
d9196023b2 wifi: iwlwifi: mvm: show full firmware ID in debugfs
The firmware prefix is unused today, but it might still be
useful to have some information. Since the prefix will get
the intel/ directory in some cases, replace the prefix by
the full FW id which has all the information.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.527a1c72996d.If7588b854149d51605031fc9a70a650534351ef4@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:57 +02:00
Miri Korenblit
6958c4becd wifi: iwlwifi: mvm: add debug data for MPDU counting
It is hard to debug issues of EMLSR entry/exit due to low throughput.
Add debug data.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240527190228.77ef3c2654dc.I1796a3995da2a49dd5102d33766af1ad416dd60b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:52 +02:00
Johannes Berg
d9b7531fe9 wifi: iwlwifi: mvm: use only beacon BSS load for active links
For active links, don't take information that may have been
received in probe responses, as those are not protected. For
inactive links, there may not be a choice.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.6947dc462fa9.I2076961211d6785c8a15b4308e0e87a413148222@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:50 +02:00
Avraham Stern
f1c9ba4403 wifi: iwlwifi: mvm: add support for version 10 of the responder config command
This version adds the band to the responder config command.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.af09129ebd74.I9356e2504a4c19961d4856494416ae49b36bfe62@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:49 +02:00
Avraham Stern
d29fc6af1a wifi: iwlwifi: mvm: add support for version 14 of the range request command
This version adds a testing option to send an incorrect SAC in the
first NDPA.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.8f36ccb1cc74.I9b76461634f308e75dc3cd016d0b0bce812c6e9d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:47 +02:00
Avraham Stern
626be4bf99 wifi: iwlwifi: mvm: modify iwl_mvm_ftm_set_secured_ranging() parameters
Modify iwl_mvm_ftm_set_secured_ranging() parameters to support
multiple versions of the target struct.
This is done as preparation for moving to the new range request
version.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.56d6aee320b3.I5a52fa93cd791d0229b392a20f076b7cebb110cd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:46 +02:00
Avraham Stern
16ec82d347 wifi: iwlwifi: mvm: initiator: move setting the sta_id into a function
Move setting the target's sta_id (and related flags) into a function
to support different versions of the target struct.
This is done as preparation for moving to the new range request
version.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.18e3a6a6f1cb.I85e3ee607b3947448532bc16730f8898a11c92b8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:44 +02:00
Miri Korenblit
94df6cbd4c wifi: iwlwifi: mvm: Remove debug related code
This code is intended for internal testing. Remove it.

Fixes: 30ce039094 ("wifi: iwlwifi: mvm: Don't allow EMLSR when the RSSI is low")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.c3b89828efb2.I7ded6348d2fb0cb7e103c4eee033451924c3461d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:42 +02:00
Avraham Stern
8a039ef631 wifi: iwlwifi: mvm: initiator: move setting target flags into a function
Move setting the target flags into a dedicated function to support
different versions of the target struct.
This is done as preparation for moving to the new range request
version.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.9d22b61ce589.I7dbe596b4f677638d9a48c3f39b0826a9e35bea4@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:40 +02:00
Johannes Berg
6b82f4e119 wifi: iwlwifi: mvm: handle TPE advertised by AP
6 GHz BSS SP client shall respect TX power limits advertised
by the AP in TPE elements, send the data to the firmware using
the AP_TX_POWER_CONSTRAINTS_CMD command, so do that.

Co-developed-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com>
Signed-off-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.32f1e2e1447c.I58ac91c38585362aa42bb4a8a59c7d88e67bc40b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:33 +02:00
Miri Korenblit
fb82e76a3b wifi: iwlwifi: mvm: move a constant to constants.h
Move IWL_MVM_MIN_BEACON_INTERVAL_TU to constants.h

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.395f5b24ff82.Id78a5a404c3ae15cbbc950b1f1d7e500a8b92a43@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:31 +02:00
Miri Korenblit
a423e37ecc wifi: iwlwifi: mvm: remove IWL_MVM_USE_NSSN_SYNC
This is not used and not needed anymore.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.c5edfb967e35.I34a3d54a1dc90d9b2937b0bcbbc508fe3cd41773@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:28 +02:00
Avri Altman
e1b44c8f7b wifi: iwlwifi: mvm: Enable p2p low latency
Enable p2p low latency by default.

Signed-off-by: Avri Altman <avri.altman@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.21b431bdfc26.I018e330d1e6a76e967b25e9542c2260f0f6ed2a8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:23 +02:00
Johannes Berg
94854648b5 wifi: iwlwifi: mvm: report 64-bit radiotap timestamp
Use the new RX_FLAG_MACTIME_IS_RTAP_TS64 in mac80211 to report
a 64-bit timestamp in the mactime for radiotap only, in case we
report the synchronized PTP clock timestamp (otherwise we really
only have 32 bits anyway).

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Reviewed-by: Benjamin Berg <benjamin.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.4fc44356e7df.Ic8642d35f1090a415e09299a1bd409f51dfb6351@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:18 +02:00
Avraham Stern
0e49e940d1 wifi: iwlwifi: mvm: add an option to use ptp clock for rx timestamp
Add a debugfs option to use the ptp clock time for rx device
timestamps. This can be useful to e.g. synchronize multiple NICs or
reporting the timestamp in the system clock instead of gp2.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240527190228.b197b4f3f9ed.I578ee916d5f517a2e3a89e890a8ea24065946427@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-29 10:33:11 +02:00
Po-Hao Huang
e88c1714b2 wifi: rtw89: Fix P2P behavior for WiFi 7 chips
Previously we used CCK rate when scanning for P2P on WiFi 7 chips.
Fix this by explicitly setting the rate to OFDM 6Mbps.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240522024531.11401-1-pkshih@realtek.com
2024-05-27 17:05:44 +08:00
Ping-Ke Shih
85e02a0aee wifi: rtw89: add LDPC and STBC to rx_status and radiotap known fields for monitor mode
Add LDPC and STBC to rx_status by hardware PPDU status, and set them as
known fields of radiotap, so we can check these capabilities in monitor
mode.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240522023830.9798-2-pkshih@realtek.com
2024-05-27 16:51:42 +08:00
Ping-Ke Shih
f12fc20656 wifi: rtw89: fill STBC and LDPC capabilities to TX descriptor
Fill STBC and LDPC fields to get better performance when transmitting under
noisy environment. Old chips like 8852AE use firmware command to enable
these two capabilities, but newer chips must use TX descriptor.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240522023830.9798-1-pkshih@realtek.com
2024-05-27 16:50:35 +08:00
Ping-Ke Shih
9e305a6f01 wifi: rtw89: 8852c: correct logic and restore PCI PHY EQ after device resume
PCI PHY EQ value is missing after card off/on, so update the value after
device resume. The original commit only updates once at probe stage, which
could lead problem after suspend/resume.

The logic should be read a value from one register and write to another
register with a mask to avoid affecting unrelated bits.

Fixes: a78d33a128 ("wifi: rtw89: 8852c: disable PCI PHY EQ to improve compatibility")
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://msgid.link/20240521040139.20311-1-pkshih@realtek.com
2024-05-27 16:45:44 +08:00
Johannes Berg
a92fd2d932 wifi: mac80211: send DelBA with correct BSSID
In MLO, the deflink BSSID is clearly invalid. Since we fill
the addresses as MLD addresses and translate later, use the
AP address here instead.

This fixes an issue that happens with HW restart, where the
DelBA frame is transmitted, but not processed correctly due
to the wrong BSSID (or even just discarded entirely).  As a
result, the BA sessions are kept alive; however, as other
state is reset during HW restart, this then fails (reorder,
etc.) and data doesn't go through until new BA sessions are
established.

Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240510112601.f4e1effdea29.I98e81f22166b68d4b6211191bcaaf8531b324a77@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-23 11:46:37 +02:00
Johannes Berg
609c12a2af wifi: mac80211: reset negotiated TTLM on disconnect
The negotiated TTLM data must be reset on disconnect, otherwise
it may end up getting reused on another connection. Fix that.

Fixes: 8f500fbc6c ("wifi: mac80211: process and save negotiated TID to Link mapping request")
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240506211858.04142e8fe01c.Ia144457e086ebd8ddcfa31bdf5ff210b4b351c22@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-23 11:44:31 +02:00
Johannes Berg
0d22026f32 wifi: mac80211: don't stop TTLM works again
There's no need to stop works that have already been
stopped during disconnect, so don't.

Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240506211034.f8434be19f56.I021afadc538508da3bc8f95c89f424ca62b94bef@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-23 11:44:17 +02:00
Johannes Berg
3567bd6dcd wifi: mac80211: cancel TTLM teardown work earlier
It shouldn't be possible to run this after disconnecting, so
cancel the work earlier.

Fixes: a17a58ad2f ("wifi: mac80211: add support for tearing down negotiated TTLM")
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240506211034.096a10ccebec.I5584a21c27eb9b3e87b9e26380b627114b32ccba@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-23 11:44:15 +02:00
Johannes Berg
53b739fd46 wifi: mac80211: cancel multi-link reconf work on disconnect
This work shouldn't run after we're disconnecting. Cancel it earlier
(and then don't cancel it in stop later.)

Fixes: 8eb8dd2ffb ("wifi: mac80211: Support link removal using Reconfiguration ML element")
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240506211034.ac754794279f.Ib9fbb1dab50c6b67f6de9be09a6c452ce89bbd50@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-23 11:44:12 +02:00
Johannes Berg
2fe0a605d0 wifi: mac80211: fix TTLM teardown work
The worker calculates the wrong sdata pointer, so if it ever
runs, it'll crash. Fix that.

Fixes: a17a58ad2f ("wifi: mac80211: add support for tearing down negotiated TTLM")
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240506211853.e6471800c76d.I8b7c2d6984c89a11cd33d1a610e9645fa965f6e1@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-05-23 11:40:23 +02:00