Miri Korenblit
be3a8cbb1c
wifi: iwlwifi: small cleanups in PPAG table flows
...
1. The name of iwl_read_ppag_table is misleading, as this function only
fills the command structure from the previously read table. Rename it.
2. Don't initialize fwrt::ppag_flags to 0 as the entire fwrt is zeroed
in the INIT stage anyway.
3. Don't filter out the reserved bits from fwrt::ppag_flags when printing
it, as it is already done in 'read-from-bios' flow.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240131091413.48acf340e817.I810e457b80015c1931d96d3e13c849f0339723c3@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Miri Korenblit
427661e4c4
wifi: iwlwifi: read SAR tables from UEFI
...
All the regulatory tables will be read from UEFI, and
only if it doesn't exist - they will be read from ACPI.
Read SAR tables (WRDS, EWRD and WGDS) from UEFI.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240131091413.533b687e1efb.Icb316291e593c8d53f41fdea2d083367dc97e3c4@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Miri Korenblit
c0a3dfc1ce
wifi: iwlwifi: cleanup sending PER_CHAIN_LIMIT_OFFSET_CMD
...
iwl_geo_tx_power_profiles_cmd::table_revision indicates whether
to use South Korea scheme or not.
We use South Korea scheme if the revision of WGDS table is 1.
We used to read the WGDS table from ACPI inside iwl_sar_geo_fill_table(),
so we had to set table_revision only after the call to it.
This added an extra if...else for each cmd version.
But it has been a while since we moved the BIOS tables reading to
INIT stage, and iwl_sar_geo_fill_table() is now only copying the
previously stored table to the cmd structure.
Set the table_revision before the call to iwl_sar_geo_fill_table()
and avoid that extra if...else.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240131091413.17a2384d4535.I306570874f1da0c6345066ebbf74a04b6c8aeb37@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Miri Korenblit
2594e4d9e1
wifi: iwlwifi: prepare for reading SAR tables from UEFI
...
The driver will support reading BIOS tables from UEFI
too. Refactor the SAR tables (WRDS, EWRD, WGDS) flows:
1. Move all the SAR logic/definitions that is common to both
UEFI and ACPI to a new file - regulatory.h/c.
2. Rename the relevant functions/definitions
so it will be clear which is ACPI specific and which is
for both ACPI and UEFI
3. Rename the function that copies the stored tables into the different
commands structures, so will be clear what these functions do.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240131091413.429a9baff34a.I040460348aa1b43609be3a317b86722d6be71c28@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Johannes Berg
760cfa5bbd
wifi: iwlwifi: mvm: check AP supports EMLSR
...
Before using EMLSR check the AP actually advertises
support for it, otherwise reject the link activation.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240131091413.edaac352488d.Ic3533afc6848591e8977391ae39c144d5e794d26@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Johannes Berg
8c9bef26e9
wifi: iwlwifi: mvm: d3: implement suspend with MLO
...
When using MLO, we need to have only a single link active
when entering suspend and of course most of the code also
needs to be adjusted to not use deflink, apart from older
code that's not used with MLO-capable firmware. Implement
that.
Note that the link selection currently prefers the "best"
link, which might really not be the best for D3, but that
can be fixed later once we agree.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240131091413.38f0fd4d2db0.I27c7a1d08aecc5da0af2c351212f22e92ed70219@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Miri Korenblit
c868a189ec
wifi: iwlwifi: read BIOS PNVM only for non-Intel SKU
...
The driver is supposed to read the PNVM from BIOS only for non-Intel
SKUs. For Intel SKUs the OEM ID will be 0.
Read BIOS PNVM only when a non-Intel SKU is indicated.
Fixes: b99e32cbfd ("wifi: iwlwifi: Take loading and setting of pnvm image out of parsing part")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240131091413.3625cf1223d3.Ieffda5f506713b1c979388dd7a0e1c1a0145cfca@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:14 +01:00
Benjamin Berg
cfbb2add48
wifi: cfg80211: tests: verify BSS use flags of NSTR links
...
Extend the test to pass an RNR appropriate for an NSTR and verify that
use_for as well as cannot_use_reasons are set correctly.
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com >
Link: https://msgid.link/20240129220918.b00aee4c4c9f.I942fddf51cabaab761de3865b4e06cce831a46ef@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:13 +01:00
Benjamin Berg
45d43937a4
wifi: cfg80211: add a kunit test for 6 GHz colocated AP parsing
...
Test a few things around parsing of 6 GHz colocated APs to e.g. ensure
that we are not going to scan for a disabled (affiliated) AP.
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com >
Link: https://msgid.link/20240129220918.079dc50ab43b.Ide898d9f1d4c26d7e774d6fd0ec57766967d6572@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:15:11 +01:00
Johannes Berg
ce1fa3adc0
wifi: iwlwifi: mvm: refactor duplicate chanctx condition
...
Refactor the check for using a chanctx's def vs. min_def,
to have the same in both places and reuse it later.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.6fcde4051adf.I343934874612d21727ed167accaa967958b2c25b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Daniel Gabay
65d3333e4d
wifi: iwlwifi: mvm: log dropped packets due to MIC error
...
When we drop frames due to MIC error we want to have something
printed in the logger (this won't be printed by default).
Signed-off-by: Daniel Gabay <daniel.gabay@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.41b0abbf1fd2.Ib6ec6a48ec7bebe769d1e1c1df96380a758a0975@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Johannes Berg
c289f5cd69
wifi: iwlwifi: mvm: support SPP A-MSDUs
...
If the firmware has the necessary support, enable SPP A-MSDUs.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Daniel Gabay <daniel.gabay@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.15e4570e471f.I87cf284d3b19bb9f5558f0f33afaace6d6492acb@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Mukesh Sisodiya
6770eee751
wifi: iwlwifi: pcie: Add the PCI device id for new hardware
...
Add the support for a new PCI device id.
Signed-off-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.fde32107e0a3.I597cff4f340e4bed12b7568a0ad504bd4b2c1cf8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Emmanuel Grumbach
0fcdf55fce
wifi: iwlwifi: mvm: fix the TLC command after ADD_STA
...
ADD_STA resets the link quality data inside the firmware. This is not
supposed to happen and has been fixed for newer devices. For older
devices (AX201 and down), this makes us send frames with rates that are
not in the TLC table.
Fixes: 5a86dcb4a9 ("wifi: iwlwifi: mvm: update station's MFP flag after association")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.1deca7eaff14.I597abd7aab36fdab4aa8311a48c98a3d5bd433ba@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Johannes Berg
3d869feacb
wifi: iwlwifi: mvm: use FW rate for non-data only on new devices
...
With MLO connections we need to let the firmware pick the rate
as we don't know the link the frame might be transmitted on
(in some cases we do know, but we'd rather always use the FW
and find bugs.) We _did_ end up finding bugs and fixing them,
but older devices likely won't get fixed as we don't have a
need for this there, they cannot support MLO.
Thus, go back to picking a rate on the host for the relevant
frames on older (pre-Bz) devices.
Fixes: 499d027904 ("wifi: iwlwifi: Use FW rate for non-data frames")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.e59056d0a8cc.Iccc4c5c1753921d3d85241ede812a150fb05b898@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Johannes Berg
51eb17b8d5
wifi: iwlwifi: remove Gl A-step remnants
...
The IWL_DEVICE_GL_A macro is no longer used, and couldn't
be, so remove it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.8929a06c3a55.I3c21305e4b7fa3aba938bc860269e848fe262e88@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:43 +01:00
Ilan Peer
137d33ac47
wifi: iwlwifi: mvm: Fix FTM initiator flags
...
When secure LTF is used MFP must also be set.
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Reviewed-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/20240129211905.6cad71069e87.I7f9fd5239cfd2244f155f88419980e6e91d00ff2@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Johannes Berg
f639602a58
wifi: iwlwifi: always have 'uats_enabled'
...
We check this in code that'd be complicated to put under
ifdef (CONFIG_ACPI), so just always have 'uats_enabled'.
Fixes: 4a9bb5b4d9 ("wifi: iwlwifi: fw: Add support for UATS table in UHB")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.bdc5fb20f00a.I902d801d79873c5c9cd51cef8e8226e2acefe88d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Johannes Berg
bc197d3c40
wifi: iwlwifi: mvm: don't set trigger frame padding in AP mode
...
This field is reserved in AP mode, don't set any bits in it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.f5eeb717212e.I60fa4843a8634922281580b925db2c2699e3a7bc@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Colin Ian King
64a06679e6
wifi: iwlwifi: Fix spelling mistake "SESION" -> "SESSION"
...
There is a spelling mistake in a WARN message. Fix it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.ff31e9385d29.I3a224e6a9294fdec431919fb4ec9315801e77454@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Johannes Berg
0c769cb6b9
wifi: iwlwifi: mvm: d3: fix IPN byte order
...
The IPN is reported by the firmware in 6 bytes little endian,
but mac80211 expects big endian so it can do memcmp() on it.
We used to store this as a u64 which was filled in the right
way, but never used. When implementing that it's used, we
changed it to just be 6 bytes, but lost the conversion. Add
it back.
Fixes: 04f78e242f ("wifi: iwlwifi: mvm: Add support for IGTK in D3 resume flow")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.138ed8a698e3.I1b66c386e45b5392696424ec636474bff86fd5ef@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Ayala Beker
8001849921
wifi: iwlwifi: mvm: add support for TID to link mapping neg request
...
Add support for handling TID to link mapping negotiation
request and decide whether to accept it or not.
Accept the request if all TIDs are mapped to the same link set,
otherwise reject it.
Signed-off-by: Ayala Beker <ayala.beker@intel.com >
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240129211905.aab9819c378d.Icf6b79a362763e2e8b85959471f303b586617242@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Miri Korenblit
c8d8f39111
wifi: iwlwifi: fix EWRD table validity check
...
EWRD ACPI table contains up to 3 additional sar profiles.
According to the BIOS spec, the table contains a n_profile
variable indicating how many additional profiles exist in the
table.
Currently we check that n_profiles is not <= 0.
But according to the BIOS spec, 0 is a valid value,
and it can't be < 0 anyway because we receive that from ACPI as
an unsigned integer.
Fixes: 39c1a9728f ("iwlwifi: refactor the SAR tables from mvm to acpi")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240129211905.448ea2f40814.Iffd2aadf8e8693e6cb599bee0406a800a0c1e081@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 14:04:42 +01:00
Miri Korenblit
a6dfe1e744
wifi: iwlwifi: cleanup uefi variables loading
...
Extract the logic that is common to all variables loading
to a function.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240128084842.454f32c4bcfe.I4835fe657475ac28ef6aef4d292fac63c6ce9a34@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:50:35 +01:00
Miri Korenblit
ebe8f41319
wifi: iwlwifi: implement GLAI ACPI table loading
...
All the regulatory tables from BIOS are going to be loaded
(preferably) from the UEFI instead of the ACPI.
There is a security issue with the fact that anyone can
add these UEFI variables.
The solution for that is to have a lock for all WIFI GUID UEFI
variables, and only if the UEFI variables are locked then we can
read it.
The status of the lock (unlocked, locked, test mode) is indicated
in a ACPI table: Guid Lock ACPI Indicator.
Load this table so the driver knows whether to read from UEFI or
not
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240128084842.53994809fbdd.I1bd10aafc387bc04f375e386861ee2bcb82f0a61@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:50:34 +01:00
Johannes Berg
d3b2c6c65b
wifi: iwlwifi: mvm: initialize rates in FW earlier
...
When connecting to an AP, we currently initialize the rate
control only after associating. Since we now use firmware
to assign rates to auth/assoc frames rather than using the
data in the station and the firmware doesn't know, they're
transmitted using low mandatory rates. However, if the AP
advertised only higher supported rates we want to use them
to be nicer (it still must receive mandatory rates though),
so send the information to the firmware earlier to have it
know about it and be able to use it.
Fixes: 499d027904 ("wifi: iwlwifi: Use FW rate for non-data frames")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.ed7ab1c859c2.I4b4d4fc3905c8d8470fc0fee4648f25c950c9bb7@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:50:34 +01:00
Emmanuel Grumbach
e50a88e5cb
wifi: iwlwifi: mvm: disconnect station vifs if recovery failed
...
This will allow to reconnect immediately instead of leaving the
connection in a limbo state.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.e90531cd3a36.Iebdc9483983c0d8497f9dcf9d79ec37332a5fdcc@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
296f3e9267
wifi: iwlwifi: acpi: fix WPFC reading
...
The code reading the WPFC table needs to take into account
the domain type (first element in the package), shouldn't
leak the memory if it fails, and has a bad comment. Fix all
these issues.
Fixes: c4c9545477 ("wifi: iwlwifi: implement WPFC ACPI table loading")
Reported-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman Gregory <gregory.greenman@intel.com >
Link: https://msgid.link/20240128084842.2afeb476b62d.I200568dc42a277e21c12be99d5aaa39b009d45da@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
ec06e9b959
wifi: iwlwifi: fw: dbg: ensure correct config name sizes
...
This hard-codes the size, but it's not obvious why that's
correct. Use sizeof() and cross-check the two structs.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.58fcdea2ace7.I49cb1d7bdbea12085aada0c96ef42fcbcb3d2b38@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
ea1d166fae
wifi: iwlwifi: dbg-tlv: ensure NUL termination
...
The iwl_fw_ini_debug_info_tlv is used as a string, so we must
ensure the string is terminated correctly before using it.
Fixes: a9248de424 ("iwlwifi: dbg_ini: add TLV allocation new API support")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.be15e858ee89.Ibff93429cf999eafc7b26f3eef4c055dc84984a0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
1722c83f8f
wifi: iwlwifi: dbg-tlv: use struct_size() for allocation
...
This is effectively the same since we don't even have a
multiplication, but better captures what happens with
the length.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.f301641eb916.I66b7b48a526377d682eecef874373bf3a01076c8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
2f72c759fd
wifi: iwlwifi: dbg-tlv: avoid extra allocation/copy
...
In iwl_dbg_tlv_alloc_trigger() the code makes a copy just
to modify it and pass it to another function to make a copy
again. Change the API to return the copy so the adjustment
can be done without another copy.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.075c8b9f7030.Id5a61e1a87a9c6932727fb4e2c9b54ed6070362a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
8a41c01740
wifi: iwlwifi: fix some kernel-doc issues
...
Add return descriptions, move description contents after
(parameter) sections and fix short descriptions.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.02ac00f67239.I4ad17097badfcbb82ccdb8c126f61a6f3170798e@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:46 +01:00
Johannes Berg
7255263962
wifi: iwlwifi: mvm: d3: disconnect on GTK rekey failure
...
If there was a rekey failure during D3 when firmware is
handling the GTK rekeying, and it decided that we should
wake up, then there was an issue in the connection and
we don't necessarily have the right keys, so we should
disconnect.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.944af193d479.I5ef9f1f0e048d44d7158615d071b793d69eceb75@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:45 +01:00
Johannes Berg
91380f768d
wifi: iwlwifi: mvm: report beacon protection failures
...
Andrei reports that we just silently drop beacons after we
report the key counters, but never report to userspace, so
wpa_supplicant cannot send the WNM action frame. Fix that.
Fixes: b1fdc2505a ("iwlwifi: mvm: advertise BIGTK client support if available")
Reported-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com >
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240128084842.7d855442cdce.Iba90b26f893dc8c49bfb8be65373cd0a138af12c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:47:45 +01:00
Ilan Peer
619a900f27
wifi: iwlwifi: mvm: Add support for removing responder TKs
...
When removing a PASN station, the TK must be removed before
the station is removed as otherwise the FW would assert.
To handle this, store the key configuration, and use it to remove
the key when the station is removed.
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://msgid.link/20240131230734.3e6364730c04.Ia76dc4a9d399f1f68ac6b157d844b63f74d5159f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:46:40 +01:00
Miri Korenblit
10159a4566
wifi: iwlwifi: disable eSR when BT is active
...
eSR should be disabled when BT Coex is active and:
- LB link is the primary link.
- LB link is the secondary link and the predicted BT penalty
(the wifi loss rate caused by BT interference) is higher
than a given threshold.
If one of the conditions above is no longer true then re-enable eSR.
In order to implement this, add support for version 5 of
BT_PROFILE_NOTIFICATION, in which the bt penalty is provided
by FW.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com >
Link: https://msgid.link/20240131225342.b922b6485af8.I7d808ce535a7372aca9cb85c045755e6788a4904@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2024-02-02 13:46:28 +01:00
Dan Carpenter
17903a2835
wifi: rtl8xxxu: fix error messages
...
The first parameter of WARN_ONCE() is a condition so this code will end
up printing the function name instead of the proper message.
Fixes: 3ff7a05996 ("wifi: rtl8xxxu: support setting bssid register for multiple interfaces")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org >
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/7b144531-a8da-4725-8911-9b614a525a35@moroto.mountain
2024-02-01 12:21:02 +02:00
Po-Hao Huang
f1abee76db
wifi: rtw89: 8922a: add more fields to beacon H2C command to support multi-links
...
To support multi-links beacon, it needs more fields. But currently we still
only support legacy AP mode. Only update struct to fit expected size of
firmware.
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-8-pkshih@realtek.com
2024-02-01 12:20:25 +02:00
Chin-Yen Lee
f651300cd8
wifi: rtw89: update ps_state register for chips with different generation
...
The ps_state register is used for driver to check if the WiFi chip leave
power save mode successfully. The register is changed for new generation,
so update it.
Signed-off-by: Chin-Yen Lee <timlee@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-7-pkshih@realtek.com
2024-02-01 12:20:25 +02:00
Chin-Yen Lee
e58e311701
wifi: rtw89: add new H2C for PS mode in 802.11be chip
...
Because 802.11be chip support MLO mode, driver needs to send new H2C to
pass more connected channel information to firmware, to ensure PS mode
work fine.
Signed-off-by: Chin-Yen Lee <timlee@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-6-pkshih@realtek.com
2024-02-01 12:20:24 +02:00
Po-Hao Huang
4ba24331c9
wifi: rtw89: 8922a: add ieee80211_ops::hw_scan
...
This adds support for hardware scan after FW version 0.34.35. Currently
we only support scanning on single hardware band and support of dual band
scan will be added in the future. Adjust the current flow to make driver
compatible with different generation ICs.
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-5-pkshih@realtek.com
2024-02-01 12:20:24 +02:00
Po-Hao Huang
a412920b70
wifi: rtw89: prepare scan leaf functions for wifi 7 ICs
...
The channel field slightly differs between WiFi 6 and WiFi 7.
So we prepare some required functions in advance, this doesn't change
existing wifi 6 ICs behavior. This H2C prepares the channel list
to be scanned for. With layout as the following:
+--------+--------------------+-------------------+-----------------------+
| header | number of channels | channel info size | channel_info * number |
+--------+--------------------+-------------------+-----------------------+
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-4-pkshih@realtek.com
2024-02-01 12:20:24 +02:00
Po-Hao Huang
ac54faf507
wifi: rtw89: debug: add FW log component for scan
...
This allows scan related logs when FW log debug mode is on.
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-3-pkshih@realtek.com
2024-02-01 12:20:24 +02:00
Po-Hao Huang
b5d7020134
wifi: rtw89: update scan C2H messages for wifi 7 IC
...
Add definition and parsing for wifi 7 extended fields. These fields
include hardware index which is current reporting, timestamp and self
defined sequences for debug purposes.
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240126063356.17857-2-pkshih@realtek.com
2024-02-01 12:20:24 +02:00
Ping-Ke Shih
a6c759c896
wifi: rtw89: 8922a: set chip_ops FEM and GPIO to NULL
...
The chip_ops::fem_setup is to get if a hardware module type contains PA
and LNA that will affect how RF calibrations do. The chip_ops::rfe_gpio
is to set GPIO PIN MUX according to hardware module type too. 8922A
doesn't have these special module types yet, so leave them as NULL.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240124033813.12562-1-pkshih@realtek.com
2024-02-01 12:19:51 +02:00
Ping-Ke Shih
1de97cd362
wifi: rtw89: 8922a: add chip_ops to get thermal value
...
Get thermal value as a clue to do RF calibration if the delta is larger
than a threshold, but 8922A doesn't need this, so we only read out the
value when debugging to reduce IO.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240124033802.12508-1-pkshih@realtek.com
2024-02-01 12:19:51 +02:00
Ping-Ke Shih
88d1f9b22f
wifi: rtw89: 8922a: add RF read/write v2
...
Implement indirect interface v2 to read/write RF registers via PHY
registers for 8922A.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240124033637.12330-5-pkshih@realtek.com
2024-02-01 12:19:51 +02:00
Ping-Ke Shih
1ba63a8a75
wifi: rtw89: 8922a: add chip_ops::cfg_txrx_path
...
This function is to set TX/RX path. Especially for 1SS rate, it can select
to TX on one or two antenna. Before this operation, stop hardware to
prevent transmitting/receiving unexpected packets. After that, restore
settings and reset hardware to prevent it stays on abnormal state.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240124033637.12330-4-pkshih@realtek.com
2024-02-01 12:19:51 +02:00
Ping-Ke Shih
b16daa6212
wifi: rtw89: 8922a: implement {stop,resume}_sch_tx and cfg_ppdu
...
To set TX/RX path or set channel, we need these helpers to stop TX and
restore settings. The sch_tx stands for scheduler TX channel, and the
cfg_ppdu is to stop reporting PPDU status, so we should stop them during
setting.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://msgid.link/20240124033637.12330-3-pkshih@realtek.com
2024-02-01 12:19:51 +02:00