]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
2 weeks agowifi: rtw89: wow: disable interrupt before swapping FW for 8922D
Chih-Kang Chang [Tue, 27 Jan 2026 08:50:33 +0000 (16:50 +0800)] 
wifi: rtw89: wow: disable interrupt before swapping FW for 8922D

Except for the 8852A, 8852B, 8851B, 8852BT, all subsequent chips use
HAXIDMA. Therefore, interrupts need to be disabled before swapping
firmware to avoid unexpected SER.

Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260127085036.44060-4-pkshih@realtek.com
2 weeks agowifi: rtw89: debug: tweak Wi-Fi 7 SER L0/L1 simulation methods
Zong-Zhe Yang [Tue, 27 Jan 2026 08:50:32 +0000 (16:50 +0800)] 
wifi: rtw89: debug: tweak Wi-Fi 7 SER L0/L1 simulation methods

SER (system error recovery) L0/L1 simulation has two kinds of methods.
How to choose them depends on FW features. But, Wi-Fi 7 misused them.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260127085036.44060-3-pkshih@realtek.com
2 weeks agowifi: rtw89: debug: rename mac/ctrl error to L0/L1 error
Zong-Zhe Yang [Tue, 27 Jan 2026 08:50:31 +0000 (16:50 +0800)] 
wifi: rtw89: debug: rename mac/ctrl error to L0/L1 error

Sync Realtek terms on SER (system error recovery) simulation.

No logic is changed.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260127085036.44060-2-pkshih@realtek.com
2 weeks agowifi: rtw89: regd: update regulatory map to R73-R54
Zong-Zhe Yang [Fri, 23 Jan 2026 01:39:57 +0000 (09:39 +0800)] 
wifi: rtw89: regd: update regulatory map to R73-R54

Sync Realtek Channel Plan R73 and Realtek Regulatory R54.
Configure 6 GHz field of Realtek regd for the following countries.
PY NA BD ID VN TN GL GP YT EH

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-12-pkshih@realtek.com
2 weeks agowifi: rtw89: pci: validate release report content before using for RTL8922DE
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:56 +0000 (09:39 +0800)] 
wifi: rtw89: pci: validate release report content before using for RTL8922DE

The commit 957eda596c76
("wifi: rtw89: pci: validate sequence number of TX release report")
does validation on existing chips, which somehow a release report of SKB
becomes malformed. As no clear cause found, add rules ahead for RTL8922DE
to avoid crash if it happens.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-11-pkshih@realtek.com
2 weeks agowifi: rtw89: get designated link to replace link instance 0
Zong-Zhe Yang [Fri, 23 Jan 2026 01:39:55 +0000 (09:39 +0800)] 
wifi: rtw89: get designated link to replace link instance 0

Clean up some places where still to get link instance 0 directly.
Since now MLSR switch is supported, it's not guaranteed to always
run on link instance 0. So, prefer to get designated link in most
cases.

For now, the only exception is MCC (multi-channel concurrency) case.
How to fill content of its H2C command depends on how to choose link
instance, so cannot simply change it as above. Will handle MCC case
separately afterwards.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-10-pkshih@realtek.com
2 weeks agowifi: rtw89: 8922a: configure FW version for SIM_SER_L0L1_BY_HALT_H2C
Zong-Zhe Yang [Fri, 23 Jan 2026 01:39:54 +0000 (09:39 +0800)] 
wifi: rtw89: 8922a: configure FW version for SIM_SER_L0L1_BY_HALT_H2C

After FW version 0.35.97.0, 8922A supports SIM_SER_L0L1_BY_HALT_H2C
FW feature. It allows to simulate FW L0/L1 crash under PS mode.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-9-pkshih@realtek.com
2 weeks agowifi: rtw89: phy: add PHY C2H event dummy handler for func 1-7 and 2-10
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:53 +0000 (09:39 +0800)] 
wifi: rtw89: phy: add PHY C2H event dummy handler for func 1-7 and 2-10

The two functions aren't implemented and hard necessary by driver.
Implement dummy handler to avoid messages:

  rtw89_8922de 0000:03:00.0: PHY c2h class 1 func 7 not support
  rtw89_8922de 0000:03:00.0: PHY c2h class 2 func 10 not support

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-8-pkshih@realtek.com
2 weeks agowifi: rtw89: fw: correct content of DACK H2C command
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:52 +0000 (09:39 +0800)] 
wifi: rtw89: fw: correct content of DACK H2C command

The fields of command should be u8 instead of __le32. However, current
firmware doesn't really use the data for now, so this mistake doesn't
impact performance.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-7-pkshih@realtek.com
2 weeks agowifi: rtw89: rfk: update RFK report format of IQK, DACK and TXGAPK
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:51 +0000 (09:39 +0800)] 
wifi: rtw89: rfk: update RFK report format of IQK, DACK and TXGAPK

The report formats of IQK, DACK and TXGAPK are changed. Update them
accordingly.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-6-pkshih@realtek.com
2 weeks agowifi: rtw89: rfk: add to print debug log of CIM3K
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:50 +0000 (09:39 +0800)] 
wifi: rtw89: rfk: add to print debug log of CIM3K

Add calibration report of CIM3K, which does calibration in firmware and
send a C2H event as debug purpose.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-5-pkshih@realtek.com
2 weeks agowifi: rtw89: rfk: add firmware command to do CIM3K
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:49 +0000 (09:39 +0800)] 
wifi: rtw89: rfk: add firmware command to do CIM3K

CIM is short for counter intermodulation products 3rd-order. Due to
non-linearity in transmit path, need a calibration to yield performance
for RF system.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-4-pkshih@realtek.com
2 weeks agowifi: rtw89: rfk: add to print debug log of TX IQK
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:48 +0000 (09:39 +0800)] 
wifi: rtw89: rfk: add to print debug log of TX IQK

Add report format for TX IQK, which do calibration in firmware and send
a C2H event as debug purpose.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-3-pkshih@realtek.com
2 weeks agowifi: rtw89: rfk: add firmware command to do TX IQK
Ping-Ke Shih [Fri, 23 Jan 2026 01:39:47 +0000 (09:39 +0800)] 
wifi: rtw89: rfk: add firmware command to do TX IQK

TX IQK is a RF calibration, which driver call this H2C command to trigger
the calibration.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260123013957.16418-2-pkshih@realtek.com
3 weeks agowifi: rtw89: 8922a: add digital compensation for 2GHz
Po-Hao Huang [Sat, 17 Jan 2026 04:41:57 +0000 (12:41 +0800)] 
wifi: rtw89: 8922a: add digital compensation for 2GHz

This fixes transmit power too low under 2GHz connection. Previously
we missed the settings of 2GHz, add the according calibrated tables.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-10-pkshih@realtek.com
3 weeks agowifi: rtw89: mac: set force MBA duration to 0
Ping-Ke Shih [Sat, 17 Jan 2026 04:41:56 +0000 (12:41 +0800)] 
wifi: rtw89: mac: set force MBA duration to 0

Enable force MBA (Multi-user Block Ack) field to ensure trasnmiting
packet of duration field of MBA in multi-user block ack request is 0
as expected.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-9-pkshih@realtek.com
3 weeks agowifi: rtw89: mac: clear DTOP disable excluding CID7090 variant for RTL8922D
Ping-Ke Shih [Sat, 17 Jan 2026 04:41:55 +0000 (12:41 +0800)] 
wifi: rtw89: mac: clear DTOP disable excluding CID7090 variant for RTL8922D

The data TX FIFO operation (DTOP) is a hardware component in TMAC circuit
to control TX flow, since CID7090 variant can clear DTOP by default, no
need it by driver.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-8-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: update TSSI flow for RTL8922D
Zong-Zhe Yang [Sat, 17 Jan 2026 04:41:54 +0000 (12:41 +0800)] 
wifi: rtw89: phy: update TSSI flow for RTL8922D

TSSI is to do TX compensation caused by temperature. The RTL8922D defines
different H2C command format. Update it accordingly.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-7-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: add firmware element of digital TX power compensation
Ping-Ke Shih [Sat, 17 Jan 2026 04:41:53 +0000 (12:41 +0800)] 
wifi: rtw89: phy: add firmware element of digital TX power compensation

Define and set compensation value to corresponding frequency bands.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-6-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: update edcca log parsing for RTL8922D
Eric Huang [Sat, 17 Jan 2026 04:41:52 +0000 (12:41 +0800)] 
wifi: rtw89: phy: update edcca log parsing for RTL8922D

Before this change the rtw89_phy_edcca_log routine didn't handled
RTL8922D. This update expands the logic to recognize RTL8922D EDCCA
reports.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-5-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: add H2C command to send detail RX gain and link parameters for...
Eric Huang [Sat, 17 Jan 2026 04:41:51 +0000 (12:41 +0800)] 
wifi: rtw89: phy: add H2C command to send detail RX gain and link parameters for PS mode

Introduce support for a new PS multi-link common info version (v1)
for RTL8922D, enabling the driver to send detailed RX gain and link
parameters to firmware via a new H2C command.

A dedicated 20 MHz beacon channel (chan_bcn) that replicates the primary
channel and band type of the original channel but forces a 20 MHz width.
This ensures that beacon mode always reference the 20 MHz gain table,
fixing the mis-assignment that could degrade signal strength or cause
incorrect RSSI calibration.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-4-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: handle C2H event for PS mode report
Eric Huang [Sat, 17 Jan 2026 04:41:50 +0000 (12:41 +0800)] 
wifi: rtw89: phy: handle C2H event for PS mode report

Introduce support for processing the new PS C2H report, enabling
detailed debugging of low-power state hardware changes.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-3-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: add chip_ops to calculate RX gain from efuse to support PS mode
Ping-Ke Shih [Sat, 17 Jan 2026 04:41:49 +0000 (12:41 +0800)] 
wifi: rtw89: phy: add chip_ops to calculate RX gain from efuse to support PS mode

In PS mode, it needs to restore RX gain settings while waking up. Add to
get RX gain values from chip specific ops, and pass these data to firmware
when going to enter PS mode.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-2-pkshih@realtek.com
3 weeks agowifi: rtw89: debug: Fix memory leak in __print_txpwr_map()
Zilin Guan [Fri, 16 Jan 2026 13:08:34 +0000 (13:08 +0000)] 
wifi: rtw89: debug: Fix memory leak in __print_txpwr_map()

In __print_txpwr_map(), memory is allocated to bufp via vzalloc().
If max_valid_addr is 0, the function returns -EOPNOTSUPP immediately
without freeing bufp, leading to a memory leak.

Since the validation of max_valid_addr does not depend on the allocated
memory, fix this by moving the vzalloc() call after the check.

Compile tested only. Issue found using a prototype static analysis tool
and code review.

Fixes: 036042e15770 ("wifi: rtw89: debug: txpwr table supports Wi-Fi 7 chips")
Suggested-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Zilin Guan <zilin@seu.edu.cn>
Reviewed-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260116130834.1413924-1-zilin@seu.edu.cn
3 weeks agowifi: rtw89: Add default ID 28de:2432 for RTL8832CU
Shin-Yi Lin [Wed, 14 Jan 2026 01:49:06 +0000 (09:49 +0800)] 
wifi: rtw89: Add default ID 28de:2432 for RTL8832CU

Add 28de:2432 for RTL8832CU-based adapters that use this default ID.

Signed-off-by: Shin-Yi Lin <isaiah@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114014906.21829-1-pkshih@realtek.com
3 weeks agowifi: rtw89: fix unable to receive probe responses under MLO connection
Po-Hao Huang [Wed, 14 Jan 2026 01:39:50 +0000 (09:39 +0800)] 
wifi: rtw89: fix unable to receive probe responses under MLO connection

During MLO connections, A1 of the probe responses we received are
in link address, these frames will then be dropped by mac80211 due to
not matching the MLD address in ieee80211_scan_accept_presp().
Fix this by using MLD address to scan when not using random MAC address.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-13-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: fix incorrect power limit by mac_id
Po-Hao Huang [Wed, 14 Jan 2026 01:39:49 +0000 (09:39 +0800)] 
wifi: rtw89: phy: fix incorrect power limit by mac_id

Modify the power register range based on chip ability. When not set, the
default value is random. This fixes incorrect power limit on some ICs.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-12-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: refine initial flow of BB wrapper
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:48 +0000 (09:39 +0800)] 
wifi: rtw89: phy: refine initial flow of BB wrapper

Set initial value of TX power and TX path per MAC ID to 0x0, and reorder
initial flow as vendor driver does.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-11-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: write BB wrapper registers with flush
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:47 +0000 (09:39 +0800)] 
wifi: rtw89: phy: write BB wrapper registers with flush

BB wrapper is a hardware circuit to control TX power, and for single
writing it needs an additional flush to ensure writing is properly
completed.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-10-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: update BB wrapper RFSI
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:46 +0000 (09:39 +0800)] 
wifi: rtw89: phy: update BB wrapper RFSI

RTL8922D adds newly BB wrapper RFSI, including compensation values
and threshold, bandedge settings, and CIM3K coefficient.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-9-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: update bb wrapper TPU init
Eric Huang [Wed, 14 Jan 2026 01:39:45 +0000 (09:39 +0800)] 
wifi: rtw89: phy: update bb wrapper TPU init

Set DBW by rate to on in TPU (TX Power Unit) init, and extend to
initialize two hardware bands.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-8-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: abstract BB wrap registers to share initial flow
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:44 +0000 (09:39 +0800)] 
wifi: rtw89: phy: abstract BB wrap registers to share initial flow

BB wrap registers are to configure TX power in MAC register domain, but
they are controlled and designed by BB layer. Since coming chips use
different register address, add a struct to define them.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-7-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: extend register to read history 2 of PHY env_monitor
Eric Huang [Wed, 14 Jan 2026 01:39:43 +0000 (09:39 +0800)] 
wifi: rtw89: phy: extend register to read history 2 of PHY env_monitor

For old chips, history is 8 bits storing in single one register, and
RTL8922D's one is 16 bits and two registers. Extend to common flow
accordingly.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-6-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: abstract start address and EHT of PHY status bitmap
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:42 +0000 (09:39 +0800)] 
wifi: rtw89: phy: abstract start address and EHT of PHY status bitmap

Select PHY status being reported by a set of addresses. Abstract the
address and EHT bitmap to share common flow.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-5-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: add ops rtw89_phy_gen_be_v1 for RTL8922D
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:41 +0000 (09:39 +0800)] 
wifi: rtw89: phy: add ops rtw89_phy_gen_be_v1 for RTL8922D

Define RTL8922D specific registers, including PHY base control register,
PHY status, CFO registers, and TX power registers.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-4-pkshih@realtek.com
3 weeks agowifi: rtw89: phy: add {read,write}_rf_v3 for RTL8922D
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:40 +0000 (09:39 +0800)] 
wifi: rtw89: phy: add {read,write}_rf_v3 for RTL8922D

Implement to access RF registers for RTL8922D.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-3-pkshih@realtek.com
3 weeks agowifi: rtw89: mac: clear global interrupt right after power-on
Ping-Ke Shih [Wed, 14 Jan 2026 01:39:39 +0000 (09:39 +0800)] 
wifi: rtw89: mac: clear global interrupt right after power-on

The global interrupt indicator is always persistent, and firmware will
handle it right after boot. To prevent this unnecessary handling, clear
the indicator before downloading firmware.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-2-pkshih@realtek.com
3 weeks agowifi: rtw88: add WQ_PERCPU to alloc_workqueue users
Marco Crivellari [Thu, 13 Nov 2025 16:06:05 +0000 (17:06 +0100)] 
wifi: rtw88: add WQ_PERCPU to alloc_workqueue users

Currently if a user enqueues a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.

This lack of consistency cannot be addressed without refactoring the API.
For more details see the Link tag below.

alloc_workqueue() treats all queues as per-CPU by default, while unbound
workqueues must opt-in via WQ_UNBOUND.

This default is suboptimal: most workloads benefit from unbound queues,
allowing the scheduler to place worker threads where they’re needed and
reducing noise when CPUs are isolated.

This continues the effort to refactor workqueue APIs, which began with
the introduction of new workqueues and a new alloc_workqueue flag in:

commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

This change adds a new WQ_PERCPU flag to explicitly request
alloc_workqueue() to be per-cpu when WQ_UNBOUND has not been specified.

With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND),
any alloc_workqueue() caller that doesn’t explicitly specify WQ_UNBOUND
must now use WQ_PERCPU.

Once migration is complete, WQ_UNBOUND can be removed and unbound will
become the implicit default.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de/
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20251113160605.381777-3-marco.crivellari@suse.com
3 weeks agowifi: mac80211: mark iface work SKBs as consumed
Johannes Berg [Fri, 16 Jan 2026 08:21:15 +0000 (09:21 +0100)] 
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>
3 weeks agowifi: mac80211: remove RX_DROP
Johannes Berg [Fri, 16 Jan 2026 08:20:25 +0000 (09:20 +0100)] 
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>
3 weeks agowifi: nl80211: ignore cluster id after NAN started
Miri Korenblit [Wed, 7 Jan 2026 12:22:54 +0000 (14:22 +0200)] 
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>
3 weeks agowifi: cfg80211: cleanup cluster_id when stopping NAN
Miri Korenblit [Wed, 7 Jan 2026 12:22:53 +0000 (14:22 +0200)] 
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>
3 weeks agowifi: cfg80211: limit NAN func management APIs to offloaded DE
Miri Korenblit [Wed, 7 Jan 2026 12:15:56 +0000 (14:15 +0200)] 
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>
3 weeks agowifi: cfg80211: stop NAN and P2P in cfg80211_leave
Miri Korenblit [Wed, 7 Jan 2026 12:04:51 +0000 (14:04 +0200)] 
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: cb3b7d87652a ("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>
3 weeks agowifi: cfg80211: allow only one NAN interface, also in multi radio
Miri Korenblit [Wed, 7 Jan 2026 11:51:57 +0000 (13:51 +0200)] 
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>
3 weeks agowifi: wlcore: Add support for IGTK key
Peter Ã…strand [Fri, 16 Jan 2026 17:58:58 +0000 (18:58 +0100)] 
wifi: wlcore: Add support for IGTK key

This change re-applies commit 2b7aadd3b9e1 ("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>
3 weeks agoMerge tag 'rtw-next-2026-01-15' of https://github.com/pkshih/rtw
Johannes Berg [Mon, 19 Jan 2026 09:15:00 +0000 (10:15 +0100)] 
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>
4 weeks agowifi: rtw89: pci: consider RTL8922D in PCI common flow
Ping-Ke Shih [Sat, 10 Jan 2026 02:20:19 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: mac: consider RTL8922D in MAC common flow
Ping-Ke Shih [Sat, 10 Jan 2026 02:20:18 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: mac: correct page number for CSI response
Ping-Ke Shih [Sat, 10 Jan 2026 02:20:17 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: align CUSTID defined by firmware
Ping-Ke Shih [Sat, 10 Jan 2026 02:20:16 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: disable EHT protocol by chip capabilities
Ping-Ke Shih [Sat, 10 Jan 2026 02:20:15 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: support EHT GI/LTF setting
Kuan-Chung Chen [Sat, 10 Jan 2026 02:20:14 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: wow: add reason codes for disassociation in WoWLAN mode
Chin-Yen Lee [Sat, 10 Jan 2026 02:20:13 +0000 (10:20 +0800)] 
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
4 weeks agowifi: rtw89: pci: validate sequence number of TX release report
Ping-Ke Shih [Sat, 10 Jan 2026 02:20:12 +0000 (10:20 +0800)] 
wifi: rtw89: pci: validate sequence number of TX release report

Hardware rarely reports abnormal sequence number in TX release report,
which will access out-of-bounds of wd_ring->pages array, causing NULL
pointer dereference.

  BUG: kernel NULL pointer dereference, address: 0000000000000000
  #PF: supervisor read access in kernel mode
  #PF: error_code(0x0000) - not-present page
  PGD 0 P4D 0
  Oops: 0000 [#1] PREEMPT SMP NOPTI
  CPU: 1 PID: 1085 Comm: irq/129-rtw89_p Tainted: G S   U
             6.1.145-17510-g2f3369c91536 #1 (HASH:69e8 1)
  Call Trace:
   <IRQ>
   rtw89_pci_release_tx+0x18f/0x300 [rtw89_pci (HASH:4c83 2)]
   rtw89_pci_napi_poll+0xc2/0x190 [rtw89_pci (HASH:4c83 2)]
   net_rx_action+0xfc/0x460 net/core/dev.c:6578 net/core/dev.c:6645 net/core/dev.c:6759
   handle_softirqs+0xbe/0x290 kernel/softirq.c:601
   ? rtw89_pci_interrupt_threadfn+0xc5/0x350 [rtw89_pci (HASH:4c83 2)]
   __local_bh_enable_ip+0xeb/0x120 kernel/softirq.c:499 kernel/softirq.c:423
   </IRQ>
   <TASK>
   rtw89_pci_interrupt_threadfn+0xf8/0x350 [rtw89_pci (HASH:4c83 2)]
   ? irq_thread+0xa7/0x340 kernel/irq/manage.c:0
   irq_thread+0x177/0x340 kernel/irq/manage.c:1205 kernel/irq/manage.c:1314
   ? thaw_kernel_threads+0xb0/0xb0 kernel/irq/manage.c:1202
   ? irq_forced_thread_fn+0x80/0x80 kernel/irq/manage.c:1220
   kthread+0xea/0x110 kernel/kthread.c:376
   ? synchronize_irq+0x1a0/0x1a0 kernel/irq/manage.c:1287
   ? kthread_associate_blkcg+0x80/0x80 kernel/kthread.c:331
   ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
   </TASK>

To prevent crash, validate rpp_info.seq before using.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260110022019.2254969-2-pkshih@realtek.com
4 weeks agowifi: mac80211: add support for encryption/decryption of (Re)Association frames
Kavita Kavita [Wed, 14 Jan 2026 11:18:59 +0000 (16:48 +0530)] 
wifi: mac80211: add support for encryption/decryption of (Re)Association frames

Currently, mac80211 does not encrypt or decrypt (Re)Association frames
(Request and Response) because temporal keys are not yet available at
that stage.

With extensions from IEEE P802.11bi, e.g. EPPKE, temporal keys can be
established before association. This enables the encryption and
decryption of (Re)Association Request/Response frames.

Add support to unset the IEEE80211_TX_INTFL_DONT_ENCRYPT flag when
the peer is marked as an Enhanced Privacy Protection (EPP) peer and
encryption keys are available for the connection in non-AP STA mode,
allowing secure transmission of (Re)Association Request frames.

Drop unprotected (Re)Association Request/Response frames received from
an EPP peer.

Co-developed-by: Sai Pratyusha Magam <quic_smagam@quicinc.com>
Signed-off-by: Sai Pratyusha Magam <quic_smagam@quicinc.com>
Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-9-kavita.kavita@oss.qualcomm.com
[remove useless parentheses]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: add support for EPPKE authentication protocol in non-AP STA mode
Kavita Kavita [Wed, 14 Jan 2026 11:18:58 +0000 (16:48 +0530)] 
wifi: mac80211: add support for EPPKE authentication protocol in non-AP STA mode

Add support for the Enhanced Privacy Protection Key Exchange (EPPKE)
authentication protocol in non-AP STA mode, as specified in
"IEEE P802.11bi/D3.0, 12.16.9".

EPPKE is an RSNA authentication protocol that operates using
Pre-Association Security Negotiation (PASN) procedures. It consists
of three Authentication frames with transaction sequence numbers 1, 2,
and 3. The first and third from the non-AP STA and the second from the
AP STA.

Extend mac80211 to process EPPKE Authentication frames during the
authentication phase. Currently, mac80211 processes only frames with
the expected transaction number. In the case of EPPKE, process the
Authentication frame from the AP only if the transaction number matches
the expected value, which is 2.

After receiving the final Authentication frame with transaction number 3
from the non-AP STA, it indicates that both the non-AP STA and the AP
confirm there are no issues with authentication. Since this is the final
confirmation frame to send out, mark the state as authenticated in
mac80211.

For EPPKE authentication, the Multi-Link element (MLE) must be included
in the Authentication frame body by userspace in case of MLO connection.
If the MLE is not present, reject the Authentication frame.

Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-8-kavita.kavita@oss.qualcomm.com
[remove a single stray space]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: Check for MLE before appending in Authentication frame
Kavita Kavita [Wed, 14 Jan 2026 11:18:57 +0000 (16:48 +0530)] 
wifi: mac80211: Check for MLE before appending in Authentication frame

Currently, in MLO connections, userspace constructs most of the
Authentication frame body, excluding the Multi-Link element (MLE),
which mac80211 appends later in ieee80211_send_auth(). At present,
mac80211 always adds the MLE itself, since userspace
(e.g. wpa_supplicant) does not yet include it.

However, for new authentication protocols such as Enhanced Privacy
Protection Key Exchange (EPPKE), as specified in
"IEEE P802.11bi/D3.0 section 12.16.9", the MLE must be included in
userspace so that the Message Integrity Code (MIC) can be computed
correctly over the complete frame body. Table 9-71 specifies that
the MIC is mandatory. If mac80211 appends the MLE again, the
Authentication frame becomes invalid.

Add a check in ieee80211_send_auth() to detect whether the MLE is
already present in the Authentication frame body before appending.
Skip the append if the MLE exists, otherwise add it as before.

Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-7-kavita.kavita@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: allow key installation before association
Kavita Kavita [Wed, 14 Jan 2026 11:18:56 +0000 (16:48 +0530)] 
wifi: mac80211: allow key installation before association

Currently, mac80211 allows key installation only after association
completes. However, Enhanced Privacy Protection Key Exchange (EPPKE)
requires key installation before association to enable encryption and
decryption of (Re)Association Request and Response frames.

Add support to install keys prior to association when the peer is an
Enhanced Privacy Protection (EPP) peer that requires encryption and
decryption of (Re)Association Request and Response frames.

Introduce a new boolean parameter "epp_peer" in the "ieee80211_sta"
profile to indicate that the peer supports the Enhanced Privacy
Protection Key Exchange (EPPKE) protocol. For non-AP STA mode, it
is set when the authentication algorithm is WLAN_AUTH_EPPKE during
station profile initialization. For AP mode, it is set during
NL80211_CMD_NEW_STA and NL80211_CMD_ADD_LINK_STA.

When "epp_peer" parameter is set, mac80211 now accepts keys before
association and enables encryption of the (Re)Association
Request/Response frames.

Co-developed-by: Sai Pratyusha Magam <sai.magam@oss.qualcomm.com>
Signed-off-by: Sai Pratyusha Magam <sai.magam@oss.qualcomm.com>
Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-6-kavita.kavita@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: nl80211: Add support for EPP peer indication
Sai Pratyusha Magam [Wed, 14 Jan 2026 11:18:55 +0000 (16:48 +0530)] 
wifi: nl80211: Add support for EPP peer indication

Introduce a new netlink attribute NL80211_ATTR_EPP_PEER
to be used with NL80211_CMD_NEW_STA and
NL80211_CMD_ADD_LINK_STA for the userspace to indicate
that a non-AP STA is an Enhanced Privacy Protection (EPP)
peer.

Co-developed-by: Rohan Dutta <quic_drohan@quicinc.com>
Signed-off-by: Rohan Dutta <quic_drohan@quicinc.com>
Signed-off-by: Sai Pratyusha Magam <sai.magam@oss.qualcomm.com>
Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-5-kavita.kavita@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: cfg80211: add support for key configuration before association
Kavita Kavita [Wed, 14 Jan 2026 11:18:54 +0000 (16:48 +0530)] 
wifi: cfg80211: add support for key configuration before association

Currently, cfg80211 does not allow key installation, removal, or
modification prior to association in non-AP STA mode. However,
Enhanced Privacy Protection Key Exchange (EPPKE) requires encryption
keys to be managed before association.

Add support to manage keys before association in non-AP STA mode when
the NL80211_EXT_FEATURE_ASSOC_FRAME_ENCRYPTION feature flag is set.
If the flag is not set, reject the encryption keys.

Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-4-kavita.kavita@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: cfg80211: add feature flag for (re)association frame encryption
Ainy Kumari [Wed, 14 Jan 2026 11:18:53 +0000 (16:48 +0530)] 
wifi: cfg80211: add feature flag for (re)association frame encryption

Introduce an extended feature flag that allows drivers to signal
support for encryption of (Re)Association Request and Response frames
in both non-AP STA and AP mode, as specified in specification
"IEEE P802.11bi/D3.0, 12.16.6".

Signed-off-by: Ainy Kumari <ainy.kumari@oss.qualcomm.com>
Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-3-kavita.kavita@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: cfg80211: add support for EPPKE Authentication Protocol
Ainy Kumari [Wed, 14 Jan 2026 11:18:52 +0000 (16:48 +0530)] 
wifi: cfg80211: add support for EPPKE Authentication Protocol

Add an extended feature flag NL80211_EXT_FEATURE_EPPKE to allow a
driver to indicate support for the Enhanced Privacy Protection Key
Exchange (EPPKE) authentication protocol in non-AP STA mode, as
defined in "IEEE P802.11bi/D3.0, 12.16.9".

In case of SME in userspace, the Authentication frame body is prepared
in userspace while the driver finalizes the Authentication frame once
it receives the required fields and elements. The driver indicates
support for EPPKE using the extended feature flag so that userspace
can initiate EPPKE authentication.

When the feature flag is set, process EPPKE Authentication frames from
userspace in non-AP STA mode. If the flag is not set, reject EPPKE
Authentication frames.

Define a new authentication type NL80211_AUTHTYPE_EPPKE for EPPKE.

Signed-off-by: Ainy Kumari <ainy.kumari@oss.qualcomm.com>
Co-developed-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Signed-off-by: Kavita Kavita <kavita.kavita@oss.qualcomm.com>
Link: https://patch.msgid.link/20260114111900.2196941-2-kavita.kavita@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: cfg80211: don't apply HT flags to S1G channels
Lachlan Hodges [Tue, 13 Jan 2026 03:09:34 +0000 (14:09 +1100)] 
wifi: cfg80211: don't apply HT flags to S1G channels

HT flags don't really make sense when applied to S1G channels
especially given the bandwidths both used for calculations and
conveyed (i.e 20MHz). Similarly with the 80/160/..MHz channels,
each bonded subchannel is validated individually within
cfg80211_s1g_usable(), so the regulatory validation is similarly
redundant. Additionally, usermode application output (such as iwinfo
below) doesn't particularly make sense when enumerating S1G channels:

before:

925.500 MHz (Band: 900 MHz, Channel 47) [NO_HT40+, NO_HT40-, NO_16MHZ]
926.500 MHz (Band: 900 MHz, Channel 49) [NO_HT40+, NO_HT40-, NO_16MHZ]
927.500 MHz (Band: 900 MHz, Channel 51) [NO_HT40+, NO_HT40-, NO_16MHZ, NO_PRIMARY]

after:

925.500 MHz (Band: 900 MHz, Channel 47) [NO_16MHZ]
926.500 MHz (Band: 900 MHz, Channel 49) [NO_16MHZ]
927.500 MHz (Band: 900 MHz, Channel 51) [NO_16MHZ, NO_PRIMARY]

Don't process the S1G band when applying HT flags as both the regulatory
component is redundant and the flags don't make sense for S1G channels.

Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20260113030934.18726-1-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: rtw89: Add support for D-Link VR Air Bridge (DWA-F18)
Zenm Chen [Mon, 12 Jan 2026 00:47:59 +0000 (08:47 +0800)] 
wifi: rtw89: Add support for D-Link VR Air Bridge (DWA-F18)

Add the ID 2001:3323 to the table to support an additional RTL8832AU
adapter: D-Link VR Air Bridge (DWA-F18).

Compile tested only.

Link: https://github.com/morrownr/rtw89/pull/44
Signed-off-by: Zenm Chen <zenmchen@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260112004759.6028-1-zenmchen@gmail.com
4 weeks agowifi: rtw89: Add support for MSI AX1800 Nano (GUAX18N)
Zenm Chen [Mon, 12 Jan 2026 00:43:58 +0000 (08:43 +0800)] 
wifi: rtw89: Add support for MSI AX1800 Nano (GUAX18N)

Add the ID 0db0:f0c8 to the table to support an additional RTL8832BU
adapter: MSI AX1800 Nano (GUAX18N).

Compile tested only.

Link: https://github.com/morrownr/rtl8852bu-20250826/pull/2
Signed-off-by: Zenm Chen <zenmchen@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260112004358.5516-1-zenmchen@gmail.com
4 weeks agowifi: rtw89: mac: set EDCCA configurations for RTL8922D
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:20 +0000 (20:03 +0800)] 
wifi: rtw89: mac: set EDCCA configurations for RTL8922D

Update EDCCA settings of MAC part for RTL8922D to consider EDCCA state
signaled by BB circuit.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-14-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: add an entry to enable MAC function in preinit
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:19 +0000 (20:03 +0800)] 
wifi: rtw89: mac: add an entry to enable MAC function in preinit

The preinit is to initialize partial MAC hardware needed before
downloading firmware, and then does post-init after firmware runs.

For RTL8922D, initialize some DMAC and CMAC at this step.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-13-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: separate functions of CMAC power and function enable
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:18 +0000 (20:03 +0800)] 
wifi: rtw89: mac: separate functions of CMAC power and function enable

To enable/disable CMAC function somewhere, separate controls of CMAC power
and function into individual functions. Also correct the hardware settings
by the way.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-12-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: configure DMA_STOP1 by predefined mask
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:17 +0000 (20:03 +0800)] 
wifi: rtw89: mac: configure DMA_STOP1 by predefined mask

For coming chip 8922DE, the DMA channel set is different from existing one,
so use predefined mask to handle the difference.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-11-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: define preload_init for generations
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:16 +0000 (20:03 +0800)] 
wifi: rtw89: mac: define preload_init for generations

The preload_init is to define preload size from memory to transmitting
buffer. The different generations should call its callback respectively
but suddenly it is missed. However, the register definitions of WiFi 6/7
are the same, things are well. For the coming RTL8922D, settings are
different, so abstract it.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-10-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: update WP quota for RTL8922D
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:15 +0000 (20:03 +0800)] 
wifi: rtw89: mac: update WP quota for RTL8922D

WP (WiFi payload) quota is to point to payload being transmitting in
memory. Assign quota to indicate WP page full.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-9-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: update MPDU quota according to chip DLE definition
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:14 +0000 (20:03 +0800)] 
wifi: rtw89: mac: update MPDU quota according to chip DLE definition

MPDU quota is to define number of memory used to handle packets in DLE
(Data Link Engine). All chips use the same value before, but the RTL8922D
need to use chip specific value.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-8-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: set quota 13 for PLE SNRPT
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:13 +0000 (20:03 +0800)] 
wifi: rtw89: mac: set quota 13 for PLE SNRPT

The RTL8922D has additional quota 13 of SNRPT for PLE (payload engine).
Set value to the quota according to predefined tables.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-7-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: add dle_mem and ple_{min,max}_qt quota for RTL8922D
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:12 +0000 (20:03 +0800)] 
wifi: rtw89: mac: add dle_mem and ple_{min,max}_qt quota for RTL8922D

The quota of DLE and PLE depends on hardware design and consideration of
performance and application. Define them accordingly.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-6-pkshih@realtek.com
4 weeks agowifi: rtw89: mac: remove unnecessary return from rtw89_fwdl_secure_idmem_share_mode()
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:11 +0000 (20:03 +0800)] 
wifi: rtw89: mac: remove unnecessary return from rtw89_fwdl_secure_idmem_share_mode()

The return type of rtw89_fwdl_secure_idmem_share_mode() is void, so no need
a return.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-5-pkshih@realtek.com
4 weeks agowifi: rtw89: coex: update coex software control for RTL8922D
Chia-Yuan Li [Thu, 8 Jan 2026 12:03:10 +0000 (20:03 +0800)] 
wifi: rtw89: coex: update coex software control for RTL8922D

Update software control API due to 8922D PTA hardware changes.

Signed-off-by: Chia-Yuan Li <leo.li@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-4-pkshih@realtek.com
4 weeks agowifi: rtw89: coex: update scoreboard value according to power state for two BT
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:09 +0000 (20:03 +0800)] 
wifi: rtw89: coex: update scoreboard value according to power state for two BT

Assign timeslot to WiFi if power state is on. Since firmware isn't working
at this moment, write scoreboard register to notify BT. Extend the code to
support two BT for coming chips.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-3-pkshih@realtek.com
4 weeks agowifi: rtw89: coex: make coex scoreboard as chip info
Ping-Ke Shih [Thu, 8 Jan 2026 12:03:08 +0000 (20:03 +0800)] 
wifi: rtw89: coex: make coex scoreboard as chip info

The coex scoreboard is to exchange WiFi and BT profiles, and the coming
chip 8922D changes the design including extend to two scoreboards and
individual register for cfg/get. Follow the changes to abstract current
code, but not change logic for existing chips at all.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260108120320.2217402-2-pkshih@realtek.com
4 weeks agoMerge tag 'wireless-next-2026-01-12' of https://git.kernel.org/pub/scm/linux/kernel...
Jakub Kicinski [Tue, 13 Jan 2026 01:02:02 +0000 (17:02 -0800)] 
Merge tag 'wireless-next-2026-01-12' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next

Johannes Berg says:

====================
First set of changes for the current -next cycle, of note:

 - ath12k gets an overhaul to support multi-wiphy device
   wiphy and pave the way for future device support in
   the same driver (rather than splitting to ath13k)

 - mac80211 gets some better iteration macros

* tag 'wireless-next-2026-01-12' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next: (120 commits)
  wifi: mac80211: remove width argument from ieee80211_parse_bitrates
  wifi: mac80211_hwsim: remove NAN by default
  wifi: mac80211: improve station iteration ergonomics
  wifi: mac80211: improve interface iteration ergonomics
  wifi: cfg80211: include S1G_NO_PRIMARY flag when sending channel
  wifi: mac80211: unexport ieee80211_get_bssid()
  wl1251: Replace strncpy with strscpy in wl1251_acx_fw_version
  wifi: iwlegacy: 3945-rs: remove redundant pointer check in il3945_rs_tx_status() and il3945_rs_get_rate()
  wifi: mac80211: don't send an unused argument to ieee80211_check_combinations
  wifi: libertas: fix WARNING in usb_tx_block
  wifi: mwifiex: Allocate dev name earlier for interface workqueue name
  wifi: wlcore: sdio: Use pm_ptr instead of #ifdef CONFIG_PM
  wifi: cfg80211: Fix use_for flag update on BSS refresh
  wifi: brcmfmac: rename function that frees vif
  wifi: brcmfmac: fix/add kernel-doc comments
  wifi: mac80211: Update csa_finalize to use link_id
  wifi: cfg80211: add cfg80211_stop_link() for per-link teardown
  wifi: ath12k: Skip DP peer creation for scan vdev
  wifi: ath12k: move firmware stats request outside of atomic context
  wifi: ath12k: add the missing RCU lock in ath12k_dp_tx_free_txbuf()
  ...
====================

Link: https://patch.msgid.link/20260112185836.378736-3-johannes@sipsolutions.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agoMerge branch 'tools-ynl-cli-improve-the-help-and-doc'
Jakub Kicinski [Mon, 12 Jan 2026 21:30:38 +0000 (13:30 -0800)] 
Merge branch 'tools-ynl-cli-improve-the-help-and-doc'

Jakub Kicinski says:

====================
tools: ynl: cli: improve the help and doc

I had some time on the plane to LPC, so here are improvements
to the --help and --list-attrs handling of YNL CLI which seem
in order given growing use of YNL as a real CLI tool.
====================

Link: https://patch.msgid.link/20260110233142.3921386-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: print reply in combined format if possible
Jakub Kicinski [Sat, 10 Jan 2026 23:31:42 +0000 (15:31 -0800)] 
tools: ynl: cli: print reply in combined format if possible

As pointed out during review of the --list-attrs support the GET
ops very often return the same attrs from do and dump. Make the
output more readable by combining the reply information, from:

  Do request attributes:
    - ifindex: u32
      netdev ifindex

  Do reply attributes:
    - ifindex: u32
      netdev ifindex
    [ .. other attrs .. ]

  Dump reply attributes:
    - ifindex: u32
      netdev ifindex
    [ .. other attrs .. ]

To, after:

  Do request attributes:
    - ifindex: u32
      netdev ifindex

  Do and Dump reply attributes:
    - ifindex: u32
      netdev ifindex
    [ .. other attrs .. ]

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-8-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: extract the event/notify handling in --list-attrs
Jakub Kicinski [Sat, 10 Jan 2026 23:31:41 +0000 (15:31 -0800)] 
tools: ynl: cli: extract the event/notify handling in --list-attrs

Event and notify handling is quite different from do / dump
handling. Forcing it into print_mode_attrs() doesn't really
buy us anything as events and notifications do not have requests.
Call print_attr_list() directly. Apart form subjective code
clarity this also removes the word "reply" from the output:

Before:

  Event reply attributes:

Now:

  Event attributes:

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-7-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: factor out --list-attrs / --doc handling
Jakub Kicinski [Sat, 10 Jan 2026 23:31:40 +0000 (15:31 -0800)] 
tools: ynl: cli: factor out --list-attrs / --doc handling

We'll soon add more code to the --doc handling. Factor it out
to avoid making main() too long.

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-6-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: add --doc as alias to --list-attrs
Jakub Kicinski [Sat, 10 Jan 2026 23:31:39 +0000 (15:31 -0800)] 
tools: ynl: cli: add --doc as alias to --list-attrs

--list-attrs also provides information about the operation itself.
So --doc seems more appropriate. Add an alias.

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-5-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: improve --help
Jakub Kicinski [Sat, 10 Jan 2026 23:31:38 +0000 (15:31 -0800)] 
tools: ynl: cli: improve --help

Improve the clarity of --help. Reorder, provide some grouping and
add help messages to most of the options.

No functional changes intended.

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-4-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: wrap the doc text if it's long
Jakub Kicinski [Sat, 10 Jan 2026 23:31:37 +0000 (15:31 -0800)] 
tools: ynl: cli: wrap the doc text if it's long

We already use textwrap when printing "doc" section about an attribute,
but only to indent the text. Switch to using fill() to split and indent
all the lines. While at it indent the text by 2 more spaces, so that it
doesn't align with the name of the attribute.

Before (I'm drawing a "box" at ~60 cols here, in an attempt for clarity):

 |  - irq-suspend-timeout: uint                              |
 |    The timeout, in nanoseconds, of how long to suspend irq|
 |processing, if event polling finds events                  |

After:

 |  - irq-suspend-timeout: uint                              |
 |      The timeout, in nanoseconds, of how long to suspend  |
 |      irq processing, if event polling finds events        |

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-3-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agotools: ynl: cli: introduce formatting for attr names in --list-attrs
Jakub Kicinski [Sat, 10 Jan 2026 23:31:36 +0000 (15:31 -0800)] 
tools: ynl: cli: introduce formatting for attr names in --list-attrs

It's a little hard to make sense of the output of --list-attrs,
it looks like a wall of text. Sprinkle a little bit of formatting -
make op and attr names bold, and Enum: / Flags: keywords italics.

Tested-by: Gal Pressman <gal@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20260110233142.3921386-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agowifi: mac80211: remove width argument from ieee80211_parse_bitrates
Miri Korenblit [Thu, 8 Jan 2026 13:32:57 +0000 (14:32 +0100)] 
wifi: mac80211: remove width argument from ieee80211_parse_bitrates

The width parameter in ieee80211_parse_bitrates() is unused. Remove it.
While at it, use the already fetched sband pointer as an argument
instead of dereferencing it once again.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260108143257.d13dbbda93f0.Ie70b24af583e3812883b4004ce227e7af1646855@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211_hwsim: remove NAN by default
Johannes Berg [Thu, 8 Jan 2026 13:31:38 +0000 (14:31 +0100)] 
wifi: mac80211_hwsim: remove NAN by default

We're improving NAN support, but NAN datapath support also
means we need to change some other things, e.g. related to
rate control. Remove NAN by default again from hwsim since
it's the much newer feature.

Link: https://patch.msgid.link/20260108143139.0d4af6ae3609.Ie444b9f5aedabc713c6a1279b5b55976cfb4c465@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: improve station iteration ergonomics
Johannes Berg [Thu, 8 Jan 2026 13:34:32 +0000 (14:34 +0100)] 
wifi: mac80211: improve station iteration ergonomics

Right now, the only way to iterate stations is to declare an
iterator function, possibly data structure to use, and pass all
that to the iteration helper function. This is annoying, and
there's really no inherent need for it.

Add a new for_each_station() macro that does the iteration in
a more ergonomic way. To avoid even more exported functions, do
the old ieee80211_iterate_stations_mtx() as an inline using the
new way, which may also let the compiler optimise it a bit more,
e.g. via inlining the iterator function.

Link: https://patch.msgid.link/20260108143431.d2b641f6f6af.I4470024f7404446052564b15bcf8b3f1ada33655@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: improve interface iteration ergonomics
Johannes Berg [Thu, 8 Jan 2026 13:34:31 +0000 (14:34 +0100)] 
wifi: mac80211: improve interface iteration ergonomics

Right now, the only way to iterate interfaces is to declare an
iterator function, possibly data structure to use, and pass all
that to the iteration helper function. This is annoying, and
there's really no inherent need for it, except it was easier to
implement with the iflist mutex, but that's not used much now.

Add a new for_each_interface() macro that does the iteration in
a more ergonomic way. To avoid even more exported functions, do
the old ieee80211_iterate_active_interfaces_mtx() as an inline
using the new way, which may also let the compiler optimise it
a bit more, e.g. via inlining the iterator function.

Also provide for_each_active_interface() for the common case of
just iterating active interfaces.

Link: https://patch.msgid.link/20260108143431.f2581e0c381a.Ie387227504c975c109c125b3c57f0bb3fdab2835@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: cfg80211: include S1G_NO_PRIMARY flag when sending channel
Lachlan Hodges [Fri, 9 Jan 2026 08:14:39 +0000 (19:14 +1100)] 
wifi: cfg80211: include S1G_NO_PRIMARY flag when sending channel

When sending a channel ensure we include the IEEE80211_CHAN_S1G_NO_PRIMARY
flag.

Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20260109081439.3168-1-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: unexport ieee80211_get_bssid()
Johannes Berg [Fri, 9 Jan 2026 08:50:30 +0000 (09:50 +0100)] 
wifi: mac80211: unexport ieee80211_get_bssid()

This is only used within mac80211, and not even declared in
a public header file. Don't export it.

Link: https://patch.msgid.link/20260109095029.2b4d2fe53fc9.I9f5fa5c84cd42f749be0b87cc61dac8631c4c6d0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowl1251: Replace strncpy with strscpy in wl1251_acx_fw_version
Thorsten Blum [Sun, 11 Jan 2026 13:42:57 +0000 (14:42 +0100)] 
wl1251: Replace strncpy with strscpy in wl1251_acx_fw_version

strncpy() is deprecated [1] for NUL-terminated destination buffers since
it does not guarantee NUL termination. Remove the manual NUL termination
and replace strncpy() with strscpy() to ensure NUL termination of the
destination buffer.

Using strscpy_pad() to retain the NUL-padding behavior of strncpy() is
not needed because ->fw_ver is only used as a C-string.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://patch.msgid.link/20260111134301.598839-1-thorsten.blum@linux.dev
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: iwlegacy: 3945-rs: remove redundant pointer check in il3945_rs_tx_status()...
Tuo Li [Sun, 11 Jan 2026 17:11:18 +0000 (01:11 +0800)] 
wifi: iwlegacy: 3945-rs: remove redundant pointer check in il3945_rs_tx_status() and il3945_rs_get_rate()

The variable il_sta passed into these two functions cannot be NULL, so
remove the related null checks.

Signed-off-by: Tuo Li <islituo@gmail.com>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Link: https://patch.msgid.link/20260111171118.203249-1-islituo@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agowifi: mac80211: don't send an unused argument to ieee80211_check_combinations
Miri Korenblit [Sun, 11 Jan 2026 17:25:32 +0000 (19:25 +0200)] 
wifi: mac80211: don't send an unused argument to ieee80211_check_combinations

When ieee80211_check_combinations is called with NULL as the chandef,
the chanmode argument is not relevant. Send a don't care (0) instead.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260111192411.9aa743647b43.I407b3d878d94464ce01e25f16c6e2b687bcd8b5a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
4 weeks agoMerge branch 'bnxt_en-updates-for-net-next'
Jakub Kicinski [Sat, 10 Jan 2026 23:19:54 +0000 (15:19 -0800)] 
Merge branch 'bnxt_en-updates-for-net-next'

Michael Chan says:

====================
bnxt_en: Updates for net-next

This patchset updates the driver with a FW interface update to support
FEC stats histogram and NVRAM defragmentation.  Patch #2 adds PTP
cross timestamps [1].  Patch #3 adds FEC histogram stats.  Patch #4 adds
NVRAM defragmentation support that prevents FW update failure when NVRAM
is fragmented.  Patch #5 improves RSS distribution accuracy when certain
number of rings is in use.  The last patch adds ethtool
.get_link_ext_state() support.
====================

Link: https://patch.msgid.link/20260108183521.215610-1-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agobnxt_en: Implement ethtool_ops -> get_link_ext_state()
Michael Chan [Thu, 8 Jan 2026 18:35:21 +0000 (10:35 -0800)] 
bnxt_en: Implement ethtool_ops -> get_link_ext_state()

Map the link_down_reason from the FW to the ethtool link_ext_state
when it is available.  Also log it to the link down dmesg when it is
available.  Add 2 new link_ext_state enums to the UAPI:

ETHTOOL_LINK_EXT_STATE_OTP_SPEED_VIOLATION
ETHTOOL_LINK_EXT_STATE_BMC_REQUEST_DOWN

to cover OTP (one-time-programmable) speed restrictions and
BMC (Baseboard management controller) forcing the link down.

Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20260108183521.215610-7-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
4 weeks agobnxt_en: Use a larger RSS indirection table on P5_PLUS chips
Michael Chan [Thu, 8 Jan 2026 18:35:20 +0000 (10:35 -0800)] 
bnxt_en: Use a larger RSS indirection table on P5_PLUS chips

The driver currently uses a chip supported RSS indirection table size
just big enough to cover the number of RX rings.  Each table with 64
entries requires one HW RSS context.  The HW supported table sizes are
64, 128, 256, and 512 entries.  Using the smallest table size can cause
unbalanced RSS packet distributions.  For example, if the number of
rings is 48, the table size using existing logic will be 64.  32 rings
will have a weight of 1 and 16 rings will have a weight of 2 when
set to default even distribution.  This represents a 100% difference in
weights between some of the rings.

Newer FW has increased the RSS indirection table resource.  When the
increased resource is detected, use the largest RSS indirection table
size (512 entries) supported by the chip.  Using the same example
above, the weights of the 48 rings will be either 10 or 11 when set to
default even distribution.  The weight difference is only 10%.

If there are thousands of VFs, there is a possiblity that we may not
be able to allocate this larger RSS indirection table from the FW, so
we add a check to fall back to the legacy scheme.

Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20260108183521.215610-6-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>