Ping-Ke Shih
e749ef968f
wifi: rtw89: add counters of register-based H2C/C2H
...
The register-based H2C/C2H are used to exchange information between driver
and firmware, but only apply to narrow area because its data size is
smaller than regular packet-based H2C/C2H.
This kind of H2C/C2H must be paired. To identify if any H2C/C2H is missing,
update counters to help diagnose this kind of problems.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230316063956.71687-1-pkshih@realtek.com
2023-04-03 16:36:26 +03:00
Ching-Te Ku
7527251f77
wifi: rtw89: coex: Update Wi-Fi Bluetooth coexistence version to 7.0.1
...
Update driver with the supported firmware version of the below item.
Bluetooth firmware BT_Coex_Ver: 0x07
Wi-Fi firmware version:
RTL8852C->v0.27.56.10
RTL8852A->v0.24.36
RTL8852B->v0.29.29
Signed-off-by: Ching-Te Ku <ku920601@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230314020617.28193-6-pkshih@realtek.com
2023-04-03 16:35:37 +03:00
Ching-Te Ku
d7904ca8a0
wifi: rtw89: coex: Add report control v5 variation
...
In order to reduce firmware code size cost, remove some counter value from
the structure. But firmware didn't update version code. To parse the
correct report, add another variation version v105 to parse it.
Signed-off-by: Ching-Te Ku <ku920601@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230314020617.28193-5-pkshih@realtek.com
2023-04-03 16:35:37 +03:00
Ching-Te Ku
20595db3c0
wifi: rtw89: coex: Update RTL8852B LNA2 hardware parameter
...
The LNA gain didn't set before, it will lead some WiFi RX issue.
And the setting can increase both of WiFi & BT performance while
they are both RX.
Signed-off-by: Ching-Te Ku <ku920601@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230314020617.28193-4-pkshih@realtek.com
2023-04-03 16:35:36 +03:00
Ching-Te Ku
829b3a8b21
wifi: rtw89: coex: Not to enable firmware report when WiFi is power saving
...
If driver enable firmware report during WiFi power saving, the
firmware timer will lead to some power saving issue like,
fail to enter LPS, can not leave LPS or some unexpected issue.
Signed-off-by: Ching-Te Ku <ku920601@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230314020617.28193-3-pkshih@realtek.com
2023-04-03 16:35:36 +03:00
Ching-Te Ku
70a13e5f00
wifi: rtw89: coex: Add LPS protocol radio state for RTL8852B
...
This LPS state will not turn off RF, and it can still do some basic
traffic, only RTL8852B has the state. Coexistence need let Bluetooth
know WiFi is still alive to prevent some Bluetooth performance issue.
Signed-off-by: Ching-Te Ku <ku920601@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230314020617.28193-2-pkshih@realtek.com
2023-04-03 16:35:36 +03:00
Tom Rix
21898a40b2
bcma: remove unused mips_read32 function
...
clang with W=1 reports
drivers/bcma/driver_mips.c:49:19: error: unused function
'mips_read32' [-Werror,-Wunused-function]
static inline u32 mips_read32(struct bcma_drv_mips *mcore,
^
This function is not used so remove it.
Signed-off-by: Tom Rix <trix@redhat.com >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230324190647.2654293-1-trix@redhat.com
2023-03-31 18:04:59 +03:00
Rob Herring
767d011dc3
bcma: Use of_address_to_resource()
...
Replace of_get_address() and of_translate_address() calls with single
call to of_address_to_resource().
Signed-off-by: Rob Herring <robh@kernel.org >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230319163159.225773-1-robh@kernel.org
2023-03-31 18:04:40 +03:00
Tom Rix
074d0a1ae1
wifi: mwifiex: remove unused evt_buf variable
...
clang with W=1 reports
drivers/net/wireless/marvell/mwifiex/11h.c:198:6: error: variable
'evt_buf' set but not used [-Werror,-Wunused-but-set-variable]
u8 *evt_buf;
^
This variable is not used so remove it.
Signed-off-by: Tom Rix <trix@redhat.com >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230329131444.1809018-1-trix@redhat.com
2023-03-31 17:54:12 +03:00
Tom Rix
2f73f04b7f
wifi: brcmsmac: ampdu: remove unused suc_mpdu variable
...
clang with W=1 reports
drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c:848:5: error: variable
'suc_mpdu' set but not used [-Werror,-Wunused-but-set-variable]
u8 suc_mpdu = 0, tot_mpdu = 0;
^
This variable is not used so remove it.
Signed-off-by: Tom Rix <trix@redhat.com >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230327151151.1771350-1-trix@redhat.com
2023-03-31 17:53:50 +03:00
Wei Chen
5dbe1f8eb8
wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg()
...
If there is a failure during copy_from_user or user-provided data buffer is
invalid, rtl_debugfs_set_write_reg should return negative error code instead
of a positive value count.
Fix this bug by returning correct error code. Moreover, the check of buffer
against null is removed since it will be handled by copy_from_user.
Fixes: 610247f46f ("rtlwifi: Improve debugging by using debugfs")
Signed-off-by: Wei Chen <harperchen1110@gmail.com >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230326054217.93492-1-harperchen1110@gmail.com
2023-03-31 17:51:33 +03:00
Wei Chen
905a9241e4
wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg()
...
If there is a failure during copy_from_user or user-provided data buffer
is invalid, rtl_debugfs_set_write_rfreg should return negative error code
instead of a positive value count.
Fix this bug by returning correct error code. Moreover, the check of buffer
against null is removed since it will be handled by copy_from_user.
Fixes: 610247f46f ("rtlwifi: Improve debugging by using debugfs")
Signed-off-by: Wei Chen <harperchen1110@gmail.com >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230326053138.91338-1-harperchen1110@gmail.com
2023-03-31 17:51:02 +03:00
Tom Rix
5aeb763a27
wifi: brcmsmac: remove unused has_5g variable
...
clang with W=1 reports
drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c:1051:6: error:
variable 'has_5g' set but not used [-Werror,-Wunused-but-set-variable]
int has_5g = 0;
^
This variable is not used so remove it.
Signed-off-by: Tom Rix <trix@redhat.com >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230325130343.1334209-1-trix@redhat.com
2023-03-31 17:50:33 +03:00
Tom Rix
4c7f8c237d
wifi: b43legacy: remove unused freq_r3A_value function
...
clang with W=1 reports
drivers/net/wireless/broadcom/b43legacy/radio.c:1713:5: error:
unused function 'freq_r3A_value' [-Werror,-Wunused-function]
u16 freq_r3A_value(u16 frequency)
^
This function is not used so remove it.
Signed-off-by: Tom Rix <trix@redhat.com >
Acked-by: Larry Finger <Larry.Finger@lwfinger.net >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230324135022.2649735-1-trix@redhat.com
2023-03-31 17:50:09 +03:00
Gustavo A. R. Silva
82d6077901
wifi: rtlwifi: Replace fake flex-array with flex-array member
...
Zero-length arrays as fake flexible arrays are deprecated and we are
moving towards adopting C99 flexible-array members instead.
Address the following warning found with GCC-13 and
-fstrict-flex-arrays=3 enabled:
In function ‘fortify_memset_chk’,
inlined from ‘rtl_usb_probe’ at drivers/net/wireless/realtek/rtlwifi/usb.c:1044:2:
./include/linux/fortify-string.h:430:25: warning: call to ‘__write_overflow_field’ declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning]
430 | __write_overflow_field(p_size_field, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This helps with the ongoing efforts to tighten the FORTIFY_SOURCE
routines on memcpy() and help us make progress towards globally
enabling -fstrict-flex-arrays=3 [1].
Link: https://github.com/KSPP/linux/issues/21
Link: https://github.com/KSPP/linux/issues/277
Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html [1]
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Acked-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/ZBz4x+MWoI/f65o1@work
2023-03-31 17:49:40 +03:00
Cai Huoqing
e665c6d67e
wifi: rtw88: Remove redundant pci_clear_master
...
Remove pci_clear_master to simplify the code,
the bus-mastering is also cleared in do_pci_disable_device,
like this:
./drivers/pci/pci.c:2197
static void do_pci_disable_device(struct pci_dev *dev)
{
u16 pci_command;
pci_read_config_word(dev, PCI_COMMAND, &pci_command);
if (pci_command & PCI_COMMAND_MASTER) {
pci_command &= ~PCI_COMMAND_MASTER;
pci_write_config_word(dev, PCI_COMMAND, pci_command);
}
pcibios_disable_device(dev);
}.
And dev->is_busmaster is set to 0 in pci_disable_device.
Signed-off-by: Cai Huoqing <cai.huoqing@linux.dev >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230323112613.7550-4-cai.huoqing@linux.dev
2023-03-31 17:49:02 +03:00
Gustavo A. R. Silva
06dabcccc0
wifi: rndis_wlan: Replace fake flex-array with flexible-array member
...
Zero-length arrays as fake flexible arrays are deprecated and we are
moving towards adopting C99 flexible-array members instead.
Address the following warning found with GCC-13 and
-fstrict-flex-array=3 enabled:
drivers/net/wireless/rndis_wlan.c:2902:23: warning: array subscript 0 is outside array bounds of ‘struct ndis_80211_auth_request[0]’ [-Warray-bounds=]
This helps with the ongoing efforts to tighten the FORTIFY_SOURCE
routines on memcpy() and help us make progress towards globally
enabling -fstrict-flex-arrays=3 [1].
Link: https://github.com/KSPP/linux/issues/21
Link: https://github.com/KSPP/linux/issues/274
Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html [1]
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/ZBtIbU77L9eXqa4j@work
2023-03-31 17:48:27 +03:00
Dan Carpenter
703f15b6dc
wifi: rndis_wlan: clean up a type issue
...
The rndis_bss_info_update() returns type bool. Change the NULL
returns to false.
Signed-off-by: Dan Carpenter <error27@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/d1f250a3-653a-497d-9c92-12dd628b7927@kili.mountain
2023-03-31 17:48:01 +03:00
Tom Rix
c9b6111a6f
wifi: rtw88: remove unused rtw_pci_get_tx_desc function
...
clang with W=1 reports
drivers/net/wireless/realtek/rtw88/pci.c:92:21: error:
unused function 'rtw_pci_get_tx_desc' [-Werror,-Wunused-function]
static inline void *rtw_pci_get_tx_desc(struct rtw_pci_tx_ring *tx_ring, u8 idx)
^
This function is not used, so remove it.
Signed-off-by: Tom Rix <trix@redhat.com >
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230320233448.1729899-1-trix@redhat.com
2023-03-31 17:46:08 +03:00
Christophe JAILLET
8de7838acf
wifi: rsi: Slightly simplify rsi_set_channel()
...
There is no point in allocating 'skb' and then freeing it if !channel.
Make the sanity check first to slightly simplify the code.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Simon Horman <simon.horman@corigine.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/29bf0296bd939e3f6952272bfdcc73b22edbc374.1679328588.git.christophe.jaillet@wanadoo.fr
2023-03-31 17:45:50 +03:00
Tom Rix
c7e39d7061
wifi: ipw2x00: remove unused _ipw_read16 function
...
clang with W=1 reports
drivers/net/wireless/intel/ipw2x00/ipw2200.c:381:19: error:
unused function '_ipw_read16' [-Werror,-Wunused-function]
static inline u16 _ipw_read16(struct ipw_priv *ipw, unsigned long ofs)
^
This function and its wrapping marco are not used, so remove them.
Signed-off-by: Tom Rix <trix@redhat.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20230319135418.1703380-1-trix@redhat.com
2023-03-31 17:43:55 +03:00
Ryder Lee
df1875c4f3
wifi: mac80211: enable EHT mesh support
...
Similar to AP beacon, this enables the basic mesh EHT mode, including
EHT operation IE and the fixed field of EHT operation information IE.
As for the optional part (i.e. preamble puncturing bitmap) will be
added in future patch.
Tested-by: Lian Chen <lian.chen@mediatek.com >
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com >
Link: https://lore.kernel.org/r/1e0ddb9001312451c3e99c4eed2072caf8075f61.1679935259.git.ryder.lee@mediatek.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-31 11:09:59 +02:00
Johannes Berg
0b354b8b09
Merge wireless/main into wireless-next/main
...
There are a few merge conflicts due to overlapping
fixes and changes, merge wireless/main to fix them.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-31 11:07:40 +02:00
Johannes Berg
aa2aa818cd
wifi: clean up erroneously introduced file
...
Evidently Gregory sent this file but I (apparently every else) missed
it entirely, remove that.
Fixes: cf85123a21 ("wifi: iwlwifi: mvm: support enabling and disabling HW timestamping")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 22:50:12 +02:00
Johannes Berg
a6ef8a88fc
wifi: iwlwifi: mvm: correctly use link in iwl_mvm_sta_del()
...
This function can be invoked for both MLO and non-MLO, so
it must deal with multi-link correctly. Notable, on auth
timeout, we'd otherwise get a warning due to the erroneous
deflink usage in MLO cases.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.b85f6052d51a.Iedfef4b4c4f3ca557aebc0093fdc3f5cfb49b507@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:44 +02:00
Johannes Berg
de50140b70
wifi: iwlwifi: separate AP link management queues
...
The link management queues associated with the broadcast stations
were forgotten and so the same queue was used with both broadcast
stations. This leads to lost frames and warnings on cleanup and
HW restart.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.0671fa976832.Id5aa9856fd5984e447f247e6d0c3979d9794a21a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:44 +02:00
Johannes Berg
8ca86d6179
wifi: iwlwifi: mvm: free probe_resp_data later
...
In the MLD code, we free probe_resp_data before we remove
the MAC from the firmware, so we might receive another one
from the device after freeing, and thus might leak it. Fix
that by moving the free later.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.152b1715fc13.Ibd37fed1b24cd25012923ad9170d1fe33ab35c5c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:44 +02:00
Gregory Greenman
e0c7ee3a20
wifi: iwlwifi: bump FW API to 75 for AX devices
...
Start supporting API version 75 for AX devices.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.f08a27944fc6.Iafe3a2db2b91072a559038b85eca7b6b322be3ff@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:43 +02:00
Gregory Greenman
59c2d94bba
wifi: iwlwifi: mvm: move max_agg_bufsize into host TLC lq_sta
...
This field is used only for host TLC, so it can reside inside
the corresponding lq_sta struct. Also, TLC lq_sta is cleared
in iwl_mvm_rs_rate_init() upon association, but max_agg_bufsize
is set earlier in iwl_mvm_sta_init(). Thus, place this field
in the persistent part of lq_sta to retain its value.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.d55361064e39.Ib79d30f27d94607d097f0192af2aacd455a17958@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:43 +02:00
Johannes Berg
164a52d45e
wifi: iwlwifi: mvm: send full STA during HW restart
...
By using the internal station add the station is installed in
firmware with zeroed MAC addresses, which is wrong. Use the
full installation function instead, to fill all data.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.62d5371bb3c7.Ie25b62125a3a022f76a36bae5fed9796c18698aa@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:43 +02:00
Gregory Greenman
9deccfcd48
wifi: iwlwifi: mvm: rework active links counting
...
Remove fw_active_links_num counter since we now have a bitmap of
active links in vif. Also, update link activation status only when
LINK_CONTEXT_MODIFY_ACTIVE bit set in changes parameter.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.1ecfb27b6b84.I3a5e0bc32b3728e4caae8a231bc3f04ea1d89cad@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:43 +02:00
Gregory Greenman
ef36f1df19
wifi: iwlwifi: mvm: update mac config when assigning chanctx
...
Some mac parameters, such as HE support, can change at this stage.
Update mac config before updating links.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.d7882a0d6e04.Ie38cd854a237c46cf85fd7143dc757326f30da6e@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:42 +02:00
Shaul Triebitz
f699f039cd
wifi: iwlwifi: mvm: use the correct link queue
...
For bcase/mcast tx frames use the link queue.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.ccd7218e4be2.I40f608a0441190cc26137b039f7cb7b065fd4e0c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:42 +02:00
Johannes Berg
2152662d4e
wifi: iwlwifi: mvm: clean up mac_id vs. link_id in MLD sta
...
Here we always have a link ID, not MAC ID, so clean up the
naming.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100040.3def62de34b5.I10c9cf5dbfd1fc1e9c9c7d6d4cefcf0c08f1f2da@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:42 +02:00
Johannes Berg
881d054896
wifi: iwlwifi: mvm: fix station link data leak
...
When we remove the station, we call iwl_mvm_sta_del() which
returns true if we cannot remove it from the firmware yet,
which happens if this is the station ID for the AP station
that's still used because the MAC is still associated.
However, we still must free the link data as the station is
only kept alive in the firmware, in mac80211 and driver the
data structures are destroyed.
To fix that, we need to make iwl_mvm_mld_free_sta_link()
track whether or not the station is still alive in FW, as
otherwise we might reuse the station ID in the meantime and
iwl_mvm_mld_rm_sta_from_fw() would reject the later delete
from the firmware. Add an argument to it for that. Then we
can use the return value of iwl_mvm_sta_del() for that to
fix the issue, and call iwl_mvm_mld_rm_sta_from_fw() only
if we need to not keep the station in FW.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.1d81d4c71f35.I8fc60ac28ffc1147e9b1250e5e6237b3cb5516ac@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:42 +02:00
Benjamin Berg
24dc33cc54
wifi: iwlwifi: mvm: initialize max_rc_amsdu_len per-link
...
Initialize max_rc_amsdu_len per-link both on state change and when a new
link is added.
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.5bf521fe58b8.I73fe585f0ff75d41b5afd32077e3d6e48c90db2a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:41 +02:00
Benjamin Berg
9213f809bb
wifi: iwlwifi: mvm: use appropriate link for rate selection
...
We were still using the deflink in most cases, update the code to use
the appropriate link.
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.fa1025502fb4.Iaba0c64740fdcf04a521e2f213bd3f3e27862472@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:41 +02:00
Johannes Berg
0d504ca1f1
wifi: iwlwifi: mvm: use the new lockdep-checking macros
...
Use the new macros from mac80211 that do lockdep checking
on the RCU dereferences, instead of hard-coding 1 as the
argument to rcu_dereference_protected().
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.112df5c8dec2.I1a1008f5566e509953d988f254d15c9e58630418@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:41 +02:00
Johannes Berg
3aff89d0b3
wifi: iwlwifi: mvm: remove chanctx WARN_ON
...
During link switching there might be a link that's marked
active but has no chanctx assigned (so it's not active from
our driver's POV), skip such links in power recalculation
without any warning.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.c629090bd5d2.If7a680d5e349d454f2122f936c21522b9528a55f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:41 +02:00
Johannes Berg
8930ed5673
wifi: iwlwifi: mvm: avoid sending MAC context for idle
...
If we change only idle, avoid sending the MAC context
command since it doesn't depend on idle state. This
also fixes an issue with the firmware because without
this we send the command during link switching, as we
just deactivated the first link, and we cannot send
this command when there's no active link.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.f5218f8453ec.I1325ff14ec07a27dd7ea2c1c210a1721d969839f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:41 +02:00
Johannes Berg
072573f697
wifi: iwlwifi: mvm: remove only link-specific AP keys
...
When we remove the AP station, we iterate over the links
and remove all the keys, however, the key iteration will
return all keys for all links, so skip the ones that we
don't need based on the link ID.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.e724878f502e.I66870d4629244b4b309be79e11cbbd384bdf93be@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:40 +02:00
Johannes Berg
f14ad95a5d
wifi: iwlwifi: mvm: skip inactive links
...
When iterating station links, skip the links that are not
yet active by checking for mvmvif->link[] existence.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.bd9b4e64c478.Ie21422c3bf2589d22942c3c57d26e6330d2e3afc@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:40 +02:00
Avraham Stern
2f17227d65
wifi: iwlwifi: mvm: adjust iwl_mvm_scan_respect_p2p_go_iter() for MLO
...
When looking for a GO on for setting the scan parameters, iterate
over all the available links.
Signed-off-by: Avraham Stern <avraham.stern@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.4eb25d5655d0.Ie69f7313e4337f78c262a835aea3f707273a4209@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:40 +02:00
Johannes Berg
b8a85a1d42
wifi: iwlwifi: mvm: rxmq: report link ID to mac80211
...
Add a fw_id_to_link_sta array in mvm to track the link
STA for each firmware station ID, and then use that to
report the link a frame was received on (since we know
the station ID from firmware).
Notably, this fixes beacon tracking for the correct link
since mac80211 now queues and processes those on the one
link identified by the link ID only.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.c7dd3ec18077.I12ef9eb4a5b8b5c2b9d6bcaa1fda73b59eba39d8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:40 +02:00
Shaul Triebitz
6e3ac4260b
wifi: iwlwifi: mvm: use bcast/mcast link station id
...
For an MLD AP, use the correct link mcast or bcast station id.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.0cffa6c45242.I342e17e7bca87b7f05939eb2ebd36fc2aff0b49f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:39 +02:00
Shaul Triebitz
90723da664
wifi: iwlwifi: mvm: translate management frame address
...
For management frames sent by an AP interface, translate
the MLD addresses to LINK addresses (for an MLD AP).
AP (non-bufferable) management frames are sent via
the broadcast station so the translation cannot be
done by the firmware.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.3cb4292f51e8.Ia662c00ff271c70eda927c12ed49b045b1eb8489@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:39 +02:00
Shaul Triebitz
6e4198d35c
wifi: iwlwifi: mvm: implement mac80211 callback change_sta_links
...
Add/removed from iwl driver and firmware station links.
Update the station queues accordingly (which station links
are connected to the station queues).
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.156d1aae5de1.I32973141be1190222169879f8caf7038c1a8f769@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:39 +02:00
Shaul Triebitz
29df2a6481
wifi: iwlwifi: mvm: use the link sta address
...
Replace the deflink.addr with the proper link address
for setting the peer_link_address in the station command.
For a non-MLD station, it will be the deflink.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com >
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.03ab287da0ae.I88fb5ab4e3ea9c886a3fac7ce09c4791469c3c8e@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:39 +02:00
Gregory Greenman
f53be9c4be
wifi: iwlwifi: mvm: adjust rs init to MLO
...
Rate scale initialization needs some parameters stored
separately for each link. Pass link_conf and link_sta
pointers and adjust the relevant code accordingly.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.e2f458198844.I98bf3ea807dd8ae8d703915ce9c01e7b7d5ccb42@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:38 +02:00
Gregory Greenman
5ae9daf1e3
wifi: iwlwifi: mvm: adjust radar detection to MLO
...
Make the decision about radar detection status depending
on each active MLO link.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://lore.kernel.org/r/20230329100039.a61b1d3f681a.I27bb8726d8806ad725c22bc7256856b1b6636745@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2023-03-30 12:08:38 +02:00