Emmanuel Grumbach
abce13f560
wifi: iwlwifi: support V13 of iwl_lari_config_change_cmd
...
This command is getting a new field for UNII-9 and ieee80211bn
enablement.
We must read the relevant DSM values and pass them to the firmware,
Remember whether we have ACPI or UEFI available in the firmware runtime
object and remember the DSM function revision.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.9577f0cade21.I82b26f082f152a83eb9990dddf68d7dcc549f227@changeid
2026-01-21 14:23:03 +02:00
Emmanuel Grumbach
1e00423de0
wifi: iwlwifi: split bios_value_u32 to separate the header
...
This header will be reused in other firmware API structures
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.2f191a5f33fe.I7797134967b980bbda9ba29daa360e50a2196d7d@changeid
2026-01-21 14:23:02 +02:00
Emmanuel Grumbach
4172db83b0
wifi: iwlwifi: uefi: cache the DSM functions
...
Just like we did for ACPI, cache the UEFI values to avoid reading the
tables over and over again.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.15871db3cfab.Ib39db197646cc303d60bb12448794d20f6ccbd15@changeid
2026-01-21 14:23:02 +02:00
Emmanuel Grumbach
af60fe4b12
wifi: iwlwifi: acpi: cache the DSM functions
...
Instead of reading the DSM functions on demand, just read them all
when the first DSM function is called and cache the values for all
the other DSM functions. This simplifies the flow.
Since the same will be done for UEFI in the next patch, remove the
ifdef CONFIG_ACPI around the relevant variables.
Once UEFI's cache will be implemented, we'll be able to change
iwl_bios_get_dsm to access the cache directly.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.732ff6856796.Iff844bfbb0fea3c3d9654a53254a5b14dbaec8c1@changeid
2026-01-21 14:23:02 +02:00
Nidhish A N
b9d19dd12c
wifi: iwlwifi: mvm: Cleanup MLO code
...
iwlmld is now the op mode that is used for EHT devices,
so iwlmvm code can never run in MLO.
Cleanup some of the MLO code.
Signed-off-by: Nidhish A N <nidhish.a.n@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.214157366bc7.I324778c008058c5d894328aab8e473304f657b69@changeid
2026-01-21 14:23:02 +02:00
Emmanuel Grumbach
d5b2927a33
wifi: iwlwifi: move iwl_get_lari_config_bitmap to the op_mode
...
This is used solely there.
The implementation can differe between different op_modes that support
different firmware versions
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.099e733b1ece.Icac5b8eb5d8260e35df89622443d68a6beacedbb@changeid
2026-01-21 14:23:02 +02:00
Emmanuel Grumbach
839d917617
wifi: iwlwifi: move lari helper functions to the op_mode
...
iwlmvm is the only op_mode that uses the lari helper functions. iwlmld
has its own version to avoid introducing regressions.
Move all those functions to iwlmvm, as they are more related to the
op_mode.
iwl_get_lari_config_bitmap will move in the next patch.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.4bb241e436cb.I3d80796d4722376ce24a847419d34723083baaa8@changeid
2026-01-21 14:23:02 +02:00
Miri Korenblit
53d649ae79
wifi: iwlwifi: mld: prevent EMLSR when NAN is active
...
EMLSR is not allowed when NAN is active. Block EMLSR when starting NAN,
and unblock EMLSR when NAN is stopped.
Reviewed-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.8baef343023a.Ie94e5f32db003ebce33bde65e0ed8c6d98673b5a@changeid
2026-01-21 14:23:02 +02:00
Miri Korenblit
81a33d0f3c
wifi: iwlwifi: mld: add an helper to update an EMLSR blocker
...
Add an helper function that iterates over all (relevant) interfaces and
sets/unsets a given EMLSR blocker.
For now use it only for IWL_MLD_EMLSR_BLOCKED_NON_BSS.
Reviewed-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.f87b347a5cf0.I6836ba40d21cca49401d1f88e03a37b00dd9f5c2@changeid
2026-01-21 14:23:02 +02:00
Nidhish A N
7a749db26c
wifi: iwlwifi: mld: Fix primary link selection logic
...
When assigning emlsr.primary with emlsr.selected_primary
we are checking if BIT(mld_vif->emlsr.selected_links) are
a part of vif->active_links. This is incorrect as
emlsr.selected_links is a bitmap of possibly two selected links.
Therefore, performing the BIT() operation on it does not
yield any meaningful result and almost always leads to
incorrect primary link selection.
Additionally, we cannot rely on vif->active_links at this
stage of the link switch flow because it contains both the
removed links and also the newly added links.
For example, if we had selected links in the past (0x11)
and we now select links because of TTLM/debugfs (0x100),
vif->active_links will now be (0x111) and primary link
will be 0, while 0 is not even an active link. Thus,
we create our own bitmap of final active links.
Signed-off-by: Nidhish A N <nidhish.a.n@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.38b2e14e3a20.Ie81a88dfff0c5d2becedabab8398702808f6b1bf@changeid
2026-01-21 14:23:02 +02:00
Johannes Berg
4f042e3bb9
wifi: iwlwifi: cfg: remove iwl_be221_name
...
This is unused, no devices with such a name exist,
so remove it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.360ca699c9d6.I26ceddc2916e134ff50ea8550e44935f287b063c@changeid
2026-01-21 14:23:02 +02:00
Miri Korenblit
d2fcdf3655
wifi: iwlwifi: mld: fix chandef start calculation
...
A link pair in which both links are in 5 GHz can be used for EMLSR only
if they are separated enough.
To check this condition we calculate the start and the end of the
chandefs of both links in the pair and do some checks.
But the calculation of the start/end of the chandef is currently done
by subtracting/adding half the bandwidth from/to the control channel's
center frequency, when it should really be subtracted/added from/to the
center frequency of the entire chandef.
Fix the wrong calculation.
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260111193638.2138fdb99bd5.I4d2e5957b22482a57b1d6ca444e90fcf73bf2cab@changeid
2026-01-21 14:23:02 +02:00
Ally Heev
d0f573f3bf
wifi: iwlwifi: mld: remove unused variable in d3.c
...
remove unused variable `old_keys`
Signed-off-by: Ally Heev <allyheev@gmail.com >
Link: https://patch.msgid.link/20251111-aheev-remove-unused-var-old-keys-v1-1-988de3a91b1c@gmail.com
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
2026-01-21 14:23:02 +02:00
Johannes Berg
85fad59d21
wifi: iwlwifi: fw: api: add HE type for UHR ELR
...
For UHR ELR, the EXT_SU type is reused, so it depends on the
modulation. Add a define so the code will be clearer.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.3dabe4690805.I93dfb6b41ace7844e462e8649253c20f2712b382@changeid
2026-01-21 14:23:02 +02:00
Miri Korenblit
e4d47493c6
wifi: iwlwifi: cfg: move the MODULE_FIRMWARE to the per-rf file
...
The MODULE_FIRMWARE are now located in the rf-*.h file and not in the
mac (bz.h in our case) files. Move them around for consistency.
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.9749e9514e8c.Ib6f15663c875cf231e97cb4b37adaf21fa616a77@changeid
2026-01-21 14:23:02 +02:00
Johannes Berg
772fe513e1
wifi: iwlwifi: mld: fix HE SIG-B MCS/DCM/compression
...
These values should be taken from SIG-A, indicating how SIG-B
is encoded. The values taken from SIG-B (the corresponding
register) indicate how the data portion (for that user) is
encoded. For the SIG-B compression value the correct mask was
applied to the wrong value.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Benjamin Berg <benjamin.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.4d625e05dece.If295eb9382fc681d63b0853261d884cd1a833ba5@changeid
2026-01-21 14:23:02 +02:00
Johannes Berg
3b6e7afaf7
wifi: iwlwifi: fw: api: add UHR data definitions
...
Add the necessary data definitions for the sniffer-related fields
reported for the various UHR frame formats by the firmware/hardware
to be able to later add the necessary sniffer code.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.358b51dd8cb2.I16178416dd7019cb88a45e55f81eb28510982028@changeid
2026-01-21 14:23:02 +02:00
Johannes Berg
ac47aa8bc9
wifi: iwlwifi: add UHR TLC mode
...
This is part of the new TLC API for UHR, was just missed
in the earlier update.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.aba5036fcee0.Ifba8e366a3ad794a384ced1ebe39fccfc0ec5198@changeid
2026-01-21 14:23:02 +02:00
Johannes Berg
d9ca724db7
wifi: iwlwifi: adjust LINK context NPCA API
...
The link context NPCA API was changed in the firmware, adjust
the driver accordingly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.93bd7a454eef.I3d2ce1a363b0d8c3809ec8e729b7acf94efca25b@changeid
2026-01-21 14:23:02 +02:00
Pagadala Yesu Anjaneyulu
cc10aa8124
wifi: iwlwifi: mld: refactor AP power type setting
...
Fix unsafe power type mapping for iwl_txpower_constraints_cmd
that breaks if enum values change. Replace "power_type - 1" with
explicit case handling for each power type.
While on it, Add debug logging to show configured power type.
Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.f3b15566dac8.I31b900ab161fb627158dc1b3e2fc4ab35d84fddf@changeid
2026-01-21 14:23:02 +02:00
Johannes Berg
58192b9ce0
wifi: iwlwifi: fix 22000 series SMEM parsing
...
If the firmware were to report three LMACs (which doesn't
exist in hardware) then using "fwrt->smem_cfg.lmac[2]" is
an overrun of the array. Reject such and use IWL_FW_CHECK
instead of WARN_ON in this function.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.16e8c2d70c26.Iadfcc1aedf43c5175b3f0757bea5aa232454f1ac@changeid
2026-01-21 14:23:02 +02:00
Miri Korenblit
5f05d20180
wifi: iwlwifi: mld: support TLC command version 6
...
In version 6, a phy id is added to the tlc command and the sta_id
becomes a sta_mask.
This change is required for NAN:
- in NAN we can have 2 logical stations of the same physical
station and with the same channel/band (2 NDIs with the same peer) -
hence the sta_mask.
- In NAN we can have more than one TLC configuration for a single
station (for example if it operates on more than one channel) - so the
FW needs to be able to find the right TLC context, based on the phy id.
Populate the new version (for now with a single station id only. The
other ones will be added later when NAN is implemented).
In case the FW has a lower version than that - convert it to the FW
version.
Note that there is some code duplicantion in the conversions to v5
and to v4, but this is intentional since v5 will be removed as soon as
v6 is supported.
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.64220c6b292b.I2f5d195ce2bf9d35398f0f6f2d5faf9e90ae45a4@changeid
2026-01-21 14:23:01 +02:00
Emmanuel Grumbach
0b9e07b765
wifi: iwlwifi: mld: trigger a dump upon notification if needed
...
The firmware can request us to trigger a dump upon specific
notifications. In order for that flow to work, we need to call the
firmware debug infra when we get a notification from the firmware.
This was missing.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.d6d7e69c7da6.I40f891ece6f98983e0fd2cd0c6863f8620ca08aa@changeid
2026-01-21 14:23:01 +02:00
Pagadala Yesu Anjaneyulu
86a6faaf05
wifi: iwlwifi: fw: fix documentation reference for ap_type field
...
Fix the documentation comment for the ap_type field
in AP_TX_POWER_CONSTRAINTS_CMD to reference the correct
enum iwl_6ghz_ap_type.
Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com >
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.d70f56dd24b0.I82956bd93a36c7fa5585f014c197afea0610a076@changeid
2026-01-21 14:23:01 +02:00
Miri Korenblit
1e3fb3c4a8
wifi: iwlwifi: mvm: check the validity of noa_len
...
Validate iwl_probe_resp_data_notif::noa_attr::len_low since we are using
its value to determine the noa_len, which is later used for the NoA
attribute.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.99b663d9b424.I206fd54c990ca9e1160b9b94fa8be44e67bcc1b9@changeid
2026-01-21 14:23:01 +02:00
Daniel Gabay
60abc02770
wifi: iwlwifi: mvm: Remove few redundant 6 GHz scan chan params
...
- iwl_mvm_scan_umac_chan_flags_v2() computes channel params flags
that are only relevant for 2.4/5 GHz scan, explicitly clear
the flags for 6 GHz scan.
- n_aps_override[0] and n_aps_override[1] are not relevant for
6 GHz scan, remove them.
Signed-off-by: Daniel Gabay <daniel.gabay@intel.com >
Reviewed-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.3b4f8ed30498.I014c098e64118fe3adaf6db07816e7df8ea4f79e@changeid
2026-01-21 14:23:01 +02:00
Daniel Gabay
c5ee8b2554
wifi: iwlwifi: mld: Remove wrong channel flags in scan cmd
...
Erroneously, the channel flags in the scan command for 6 GHz scan
were mistakenly set using iwl_mld_scan_get_cmd_gen_flags, which
actually calculates a different field (the general flags) in the
command.
However, these flags are not relevant for 6 GHz scan part, except for
IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER, which is already set
correctly. Since the incorrect flags are only applied in the
6 GHz scan part and are ignored by the firmware, this has no
adverse effect. Therefore, we can simply remove this helper
function call and explicitly clear the flags.
Signed-off-by: Daniel Gabay <daniel.gabay@intel.com >
Reviewed-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.a8a931e1abef.I8f7dc66b23198b83083685ef76dec59cfb407f57@changeid
2026-01-21 14:23:01 +02:00
Benjamin Berg
4bfdbd5d1e
wifi: iwlwifi: mld: decode VHT information for sniffer
...
The available VHT information may be useful, so decode it and include it
in the generated radiotap headers.
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110150012.6751d1d0b31d.I927cb0767667f2c03ee41f2ba417f3b94bba6d91@changeid
2026-01-21 14:23:01 +02:00
Ilan Peer
b47b3d0d8b
wifi: iwlwifi: mld: Advertise support for multicast RX registration
...
While this is not needed for configuring Rx filters, without setting
it some multicast action frame registrations from user space would
fail, specifically, NAN multicast action frame registration (SDFs).
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110180612.640fb5a99470.If6f423bcf0a426e662041a4b310ce81485f1af03@changeid
2026-01-21 14:23:01 +02:00
Ilan Peer
ab4107583b
wifi: iwlwifi: mld: Support changing NAN configuration
...
Add support for changing the NAN configuration.
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110180612.82dcdfeb9533.Ib8576873c92f68f1bcafbda409d45ef2b4133e9f@changeid
2026-01-21 14:23:01 +02:00
Ilan Peer
89000fe4b1
wifi: iwlwifi: mld: Extend the NAN configuration
...
Configure the FW based on the NAN cluster configuration provided
by higher layers.
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110180612.5353d9520f0f.Ie41dcea815afbb5da6cc870ea50a271c18f66639@changeid
2026-01-21 14:23:01 +02:00
Ilan Peer
6009414649
wifi: iwlwifi: mld: Declare support for NAN capabilities
...
And notify cfg80211 about NAN cluster events and DW end events.
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110180612.eb49cb2172ce.Iaf59884242cb52351e24cb0711875851b5c863f8@changeid
2026-01-21 14:23:01 +02:00
Ilan Peer
dbbeebece0
wifi: iwlwifi: mld: Handle rate selection for NAN interface
...
Frames transmitted over a NAN interface might not have channel
information assigned to them. In such cases assign the lowest
OFDM to the frame.
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110180612.72046f98f878.Ib784931fffd0747acd9d7bb22eabbbec5282733e@changeid
2026-01-21 14:23:01 +02:00
Ilan Peer
9e978d8ebb
wifi: iwlwifi: mld: Add support for NAN
...
- Add firmware API definitions related to NAN.
- Indicate support for NAN Device interface operation, if supported
by the firmware.
- Add support for starting and stopping NAN cluster functionality.
The NAN cluster operation is offloaded to the FW, which notifies
the driver on:
- cluster events: Start/Join cluster.
- Discovery Window (DW) end, which allows the driver to flush the
HW queues and update the higher layers
Signed-off-by: Ilan Peer <ilan.peer@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20251110180612.76dd4d45b91e.I5abfab64b4f27bed442aeca6231ffebad979cad6@changeid
2026-01-21 14:23:01 +02:00
Johannes Berg
1e1dd9eeaa
wifi: mac80211: mark iface work SKBs as consumed
...
Using kfree_skb() here is misleading when looking at
traces, since these frames have been handled. Use
consume_skb() instead.
Link: https://patch.msgid.link/20260116092115.1db534bdc12c.Ic0adae06684a6871144398d15cf7700c57620baa@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:22:35 +01:00
Johannes Berg
58dc87d839
wifi: mac80211: remove RX_DROP
...
Since it's hard to figure out what RX_DROP means when looking
at traces that drop packets in mac80211, add more specific drop
reasons and remove RX_DROP entirely.
Link: https://patch.msgid.link/20260116092025.79d995e87026.I7cde413988f7a382c551cd1c1e2b05a52ec71755@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:21:47 +01:00
Miri Korenblit
8a42938a28
wifi: nl80211: ignore cluster id after NAN started
...
After NAN was started, cluster id updates from the user space should not
happen, since the device already started a cluster with the
previousely provided id.
Since NL80211_CMD_CHANGE_NAN_CONFIG requires to set the full NAN
configuration, we can't require that NL80211_NAN_CONF_CLUSTER_ID won't
be included in this command, and keeping the last confgiured value just
to be able to compare it against the new one seems a bit overkill.
Therefore, just ignore cluster id in this command and clarify the
documentation.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260107142229.fb55e5853269.I10d18c8f69d98b28916596d6da4207c15ea4abb5@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:18:49 +01:00
Miri Korenblit
36e83df3a6
wifi: cfg80211: cleanup cluster_id when stopping NAN
...
When NAN is stopped, cluster_id should be set to 0 to indicate that we
are not part of any cluster.
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260107142229.9ccb700797ec.I890ac852be6ca0093995655d987ca5c28a26ce3d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:18:49 +01:00
Miri Korenblit
f816141cba
wifi: cfg80211: limit NAN func management APIs to offloaded DE
...
A driver that declared that it has userspace DE should not call NAN func
related APIs such as cfg80211_nan_match and cfg80211_nan_func_terminated
Check and warn in such a case, as this indicates a driver bug.
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260107141549.86fa96c75211.I8fbb0506377170dd7b41234f20bcba057951dd1e@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:18:25 +01:00
Miri Korenblit
e1696c8bd0
wifi: cfg80211: stop NAN and P2P in cfg80211_leave
...
Seems that there is an assumption that this function should be called
only for netdev interfaces, but it can also be called in suspend, or
from nl80211_netlink_notify (indirectly).
Note that the documentation of NL80211_ATTR_SOCKET_OWNER explicitly
says that NAN interfaces would be destroyed as well in the
nl80211_netlink_notify case.
Fix this by also stopping P2P and NAN.
Fixes: cb3b7d8765 ("cfg80211: add start / stop NAN commands")
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260107140430.dab142cbef0b.I290cc47836d56dd7e35012ce06bec36c6da688cd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:18:14 +01:00
Miri Korenblit
e69fda4d07
wifi: cfg80211: allow only one NAN interface, also in multi radio
...
According to Wi-Fi Aware (TM) 4.0 specification 2.8, A NAN device can
have one NAN management interface. This applies also to multi radio
devices.
The current code allows a driver to support more than one NAN interface,
if those are not in the same radio.
Fix it.
Reviewed-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com >
Link: https://patch.msgid.link/20260107135129.fdaecec0fe8a.I246b5ba6e9da3ec1481ff197e47f6ce0793d7118@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:18:05 +01:00
Peter Åstrand
c34dbc5900
wifi: wlcore: Add support for IGTK key
...
This change re-applies commit 2b7aadd3b9 ("wlcore: Adding suppoprt for IGTK key in
wlcore driver") (sic), but only enables WLAN_CIPHER_SUITE_AES_CMAC with modern
firmware. This patch is required to support WPA3 connections.
Signed-off-by: Peter Åstrand <astrand@lysator.liu.se >
Link: https://patch.msgid.link/0d3df7ab-6c41-c3cc-83cc-5ba55fe4e4bd@lysator.liu.se
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:17:03 +01:00
Johannes Berg
0acd76b728
Merge tag 'rtw-next-2026-01-15' of https://github.com/pkshih/rtw
...
Ping-Ke Shih says:
==================
rtw-next patches for -next release.
Main changes are to prepare to support RTL8922DE, including refactor/add
register settings in common flow, and add newly firmware command/event
handlers.
Others are some random fixes and improvements across all drivers.
==================
Link: https://patch.msgid.link/006be16d-61ba-4af8-b76a-bc94100c3555@RTKEXHMBS03.realtek.com.tw
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2026-01-19 10:15:23 +01:00
Ping-Ke Shih
5e632c7ca9
wifi: rtw89: pci: consider RTL8922D in PCI common flow
...
Clear TX/RX ring index, PCI operating mode, SER setting, PCI LTR and
preinit settings.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-9-pkshih@realtek.com
2026-01-15 09:20:28 +08:00
Ping-Ke Shih
8e47ae0786
wifi: rtw89: mac: consider RTL8922D in MAC common flow
...
The MAC settings are different from RTL8922A to RTL8922D, including
scheduler, DLE, DCPU, MLO, NAV, TMAC, TX/RX protocol, RMAC, IMR, host RPT,
AMSDU. Update them accordingly.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-8-pkshih@realtek.com
2026-01-15 09:19:01 +08:00
Ping-Ke Shih
aa2a44d0d2
wifi: rtw89: mac: correct page number for CSI response
...
For beamforming procedure, hardware reserve memory page for CSI response.
The unit of register is (value - 1), so add one accordingly as expected.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-7-pkshih@realtek.com
2026-01-15 09:18:51 +08:00
Ping-Ke Shih
91fb400701
wifi: rtw89: align CUSTID defined by firmware
...
Firmware does customized features by CUSTID, so align the ID definition
to have expected features enabled.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-6-pkshih@realtek.com
2026-01-15 09:17:19 +08:00
Ping-Ke Shih
7fd36ffede
wifi: rtw89: disable EHT protocol by chip capabilities
...
For certain chip models, EHT protocol is disabled, and driver must follow
the capabilities. Otherwise, chips become unusable.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-5-pkshih@realtek.com
2026-01-15 09:15:50 +08:00
Kuan-Chung Chen
432b26382d
wifi: rtw89: support EHT GI/LTF setting
...
Add support for fixed EHT GI/LTF via nl80211.
The command example:
iw wlan0 set bitrates eht-gi-6 0.8 eht-ltf-6 2
Signed-off-by: Kuan-Chung Chen <damon.chen@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-4-pkshih@realtek.com
2026-01-15 09:15:37 +08:00
Chin-Yen Lee
2fd8f953f2
wifi: rtw89: wow: add reason codes for disassociation in WoWLAN mode
...
Some APs disconnect clients by sending a Disassociation frame
rather than a Deauthentication frame. Since these frames use
different reason codes in WoWLAN mode, this commit adds support
for handling Disassociation to prevent missed disconnection events.
Signed-off-by: Chin-Yen Lee <timlee@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Link: https://patch.msgid.link/20260110022019.2254969-3-pkshih@realtek.com
2026-01-15 09:15:19 +08:00