* [PATCH v2 2/3] wifi: cfg80211: validate assoc response length before status and IE access
From: Zhao Li @ 2026-07-07 2:53 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, linux-kernel
In-Reply-To: <20260707025336.22557-1-enderaoelyther@gmail.com>
cfg80211_rx_assoc_resp() initialises the status and response-IE fields
of cfg80211_connect_resp_params from the management frame before
proving that the frame is long enough for those offsets. S1G and
regular association responses also have different IE offsets, but the
S1G path only patched resp_ie after the unsafe initialiser had already
run.
Defer resp_ie, resp_ie_len, and status to after the link-iteration
loop. Use a bool to remember whether the frame is S1G, then validate
the appropriate minimum length and set all three fields in a single
if/else block. Funnel short-frame and SME-reject cleanup through a
shared free_bss label for the abandon paths.
Assisted-by: Codex:gpt-5.5
Assisted-by: Claude:claude-opus-4.8
Signed-off-by: Zhao Li <enderaoelyther@gmail.com>
---
v2: No change.
net/wireless/mlme.c | 56 ++++++++++++++++++++++++++++-----------------
1 file changed, 35 insertions(+), 21 deletions(-)
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index a0f7b08bfcc9c..097b66f758ba2 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -32,14 +32,10 @@ void cfg80211_rx_assoc_resp(struct net_device *dev,
.timeout_reason = NL80211_TIMEOUT_UNSPECIFIED,
.req_ie = data->req_ies,
.req_ie_len = data->req_ies_len,
- .resp_ie = mgmt->u.assoc_resp.variable,
- .resp_ie_len = data->len -
- offsetof(struct ieee80211_mgmt,
- u.assoc_resp.variable),
- .status = le16_to_cpu(mgmt->u.assoc_resp.status_code),
.ap_mld_addr = data->ap_mld_addr,
};
unsigned int link_id;
+ bool is_s1g = false;
for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
cr.links[link_id].status = data->links[link_id].status;
@@ -60,16 +56,32 @@ void cfg80211_rx_assoc_resp(struct net_device *dev,
if (cr.links[link_id].bss->channel->band == NL80211_BAND_S1GHZ) {
WARN_ON(link_id);
- cr.resp_ie = (u8 *)&mgmt->u.s1g_assoc_resp.variable;
- cr.resp_ie_len = data->len -
- offsetof(struct ieee80211_mgmt,
- u.s1g_assoc_resp.variable);
+ is_s1g = true;
}
if (cr.ap_mld_addr)
cr.valid_links |= BIT(link_id);
}
+ if (is_s1g) {
+ if (data->len < offsetof(struct ieee80211_mgmt,
+ u.s1g_assoc_resp.variable))
+ goto free_bss;
+ cr.resp_ie = (u8 *)&mgmt->u.s1g_assoc_resp.variable;
+ cr.resp_ie_len = data->len -
+ offsetof(struct ieee80211_mgmt,
+ u.s1g_assoc_resp.variable);
+ } else {
+ if (data->len < offsetof(struct ieee80211_mgmt,
+ u.assoc_resp.variable))
+ goto free_bss;
+ cr.resp_ie = mgmt->u.assoc_resp.variable;
+ cr.resp_ie_len = data->len -
+ offsetof(struct ieee80211_mgmt,
+ u.assoc_resp.variable);
+ }
+ cr.status = le16_to_cpu(mgmt->u.assoc_resp.status_code);
+
trace_cfg80211_send_rx_assoc(dev, data);
/*
@@ -78,22 +90,24 @@ void cfg80211_rx_assoc_resp(struct net_device *dev,
* and got a reject -- we only try again with an assoc
* frame instead of reassoc.
*/
- if (cfg80211_sme_rx_assoc_resp(wdev, cr.status)) {
- for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
- struct cfg80211_bss *bss = data->links[link_id].bss;
-
- if (!bss)
- continue;
-
- cfg80211_unhold_bss(bss_from_pub(bss));
- cfg80211_put_bss(wiphy, bss);
- }
- return;
- }
+ if (cfg80211_sme_rx_assoc_resp(wdev, cr.status))
+ goto free_bss;
nl80211_send_rx_assoc(rdev, dev, data);
/* update current_bss etc., consumes the bss reference */
__cfg80211_connect_result(dev, &cr, cr.status == WLAN_STATUS_SUCCESS);
+ return;
+
+free_bss:
+ for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
+ struct cfg80211_bss *bss = data->links[link_id].bss;
+
+ if (!bss)
+ continue;
+
+ cfg80211_unhold_bss(bss_from_pub(bss));
+ cfg80211_put_bss(wiphy, bss);
+ }
}
EXPORT_SYMBOL(cfg80211_rx_assoc_resp);
--
2.50.1 (Apple Git-155)
^ permalink raw reply related
* [PATCH v2 3/3] wifi: mac80211: validate deauth frame length before reason access
From: Zhao Li @ 2026-07-07 2:53 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, linux-kernel
In-Reply-To: <20260707025336.22557-1-enderaoelyther@gmail.com>
ieee80211_rx_mgmt_deauth() reads the deauth reason code before checking
that the fixed field is actually present in the received frame.
Validate the deauth frame length first and only then read the reason
code.
Assisted-by: Codex:gpt-5.5
Assisted-by: Claude:claude-opus-4.8
Signed-off-by: Zhao Li <enderaoelyther@gmail.com>
---
v2: No change.
net/mac80211/mlme.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index b98ddfa3003e1..8be470d730f52 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5179,13 +5179,15 @@ static void ieee80211_rx_mgmt_deauth(struct ieee80211_sub_if_data *sdata,
struct ieee80211_mgmt *mgmt, size_t len)
{
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
- u16 reason_code = le16_to_cpu(mgmt->u.deauth.reason_code);
+ u16 reason_code;
lockdep_assert_wiphy(sdata->local->hw.wiphy);
- if (len < 24 + 2)
+ if (len < offsetofend(struct ieee80211_mgmt, u.deauth.reason_code))
return;
+ reason_code = le16_to_cpu(mgmt->u.deauth.reason_code);
+
if (!ether_addr_equal(mgmt->bssid, mgmt->sa)) {
ieee80211_tdls_handle_disconnect(sdata, mgmt->sa, reason_code);
return;
--
2.50.1 (Apple Git-155)
^ permalink raw reply related
* Re: [PATCH 2/3] wifi: cfg80211: validate assoc response length before status and IE access
From: Zhao Li @ 2026-07-07 3:17 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, linux-kernel
In-Reply-To: <c967e7897f421fde56ca4367c9e10d0c6d9f7ec4.camel@sipsolutions.net>
On Mon, 2026-07-06 at 12:39 +0200, Johannes Berg wrote:
> What makes you claim "unsafe"?
"Unsafe" as in accessed before data->len is validated against the
fixed-field layout, not as in known-exploitable on valid traffic. In
the original struct initialiser, unconditionally:
- .status = le16_to_cpu(mgmt->u.assoc_resp.status_code) reads two bytes
at offset 26, needing data->len >= 28;
- .resp_ie = mgmt->u.assoc_resp.variable points at offset 30 (non-S1G);
- .resp_ie_len = data->len - 30 is a size_t, so it underflows to near
SIZE_MAX when data->len < 30.
resp_ie/resp_ie_len are not a harmless local intermediate: they are
consumed by __cfg80211_connect_result() and nl80211_send_connect_result(),
including the kzalloc() sizing and the memcpy()/nla_put() of resp_ie_len
bytes. So the underflow can feed a later copy/nla_put length rather than
remaining a harmless local value.
The mac80211 caller is fine: ieee80211_rx_mgmt_assoc_resp() gates on
len < 24 + 6 (== offsetof(..., u.assoc_resp.variable)) first. The
mwifiex handoff to cfg80211_rx_assoc_resp() only checks that assoc_rsp_size
is non-zero.
For S1G the IE offset is 28, not 30; the old code filled the regular
assoc-response fields first and only patched resp_ie later once it saw
S1G. v2 makes both layouts explicit and validates data->len before
assigning the fields.
If "unsafe" is too loaded here, I can reword it to "unvalidated" or
"unchecked" in a v3.
Thanks,
Zhao Li
^ permalink raw reply
* Re: [PATCH] wifi: mac80211: only accept IBSS channel switch from our own BSSID
From: Nathan Howard @ 2026-07-07 3:20 UTC (permalink / raw)
To: Johannes Berg; +Cc: Yingjie Cao, linux-wireless, linux-kernel, stable
In-Reply-To: <b7dab24792025a5a95b719ef7d508fb109859ec1.camel@sipsolutions.net>
On Mon, Jul 06, 2026 at 10:53:33AM +0200, Johannes Berg wrote:
> On Tue, 2026-06-23 at 15:31 -0400, Nathan Howard wrote:
> >
> > So, what's the litmus test?
>
> I don't know, tbh.
>
> > I've been watching this list for some time
> > now. I've seen (what appears) to be an ushering of distrust brought
> > on by llm's. This also seems to have come into prominence within the last 6 or
> > so months. I understand the cautious approach, but what if one's been
> > working diligently (and quietly), and has spent many hours studying and
> > preparing a driver series (for oneself and submission to the kernel)?
> > I've always done well by doing my homework the hard way. But now,
> > submissions are met with skepticism... that the work must have been
> > assisted-by if the person doesn't have a track record. How should one defend
> > his work (I'd rather not share credit with a machine when my work is my own)?
> > To be clear, my question is sourcing from what I've seen to be trending
> > more recently whereby several submissions have been ?softly? tagged as assisted-by.
> > Maybe they were, but my point still stands. Kindly provide guidance.
>
> I'm convinced that if you've actually done the legwork you could defend
> the work you've done. If you're willing to go on the record saying you
> _didn't_ use an LLM I'm even going to believe it.
This sounds reasonable.
>
> But if someone's sending "critical security fix that needs security@
> involvement" across a wide spectrum of places then yes, I'm going to be
> highly sceptical they actually know what they're doing on any individual
> one of the issues.
>
> Like here. OK, this one didn't go to security@, and it's not even a
> wrong fix, but doing "Cc stable", Cc'ing half the world and not
> following up *at all* are all bad signs.
As does this. Thank you for the guidance.
^ permalink raw reply
* [PATCH] morsemicro: add firmware for mm8108 support
From: Lachlan Hodges @ 2026-07-07 4:46 UTC (permalink / raw)
To: linux-firmware
Cc: linux-wireless, arien.judge, dan.callaghan, ayman.grais,
Lachlan Hodges
Add firmware and board files for the mm8108 chipset to be used
with the mm81x Wi-Fi driver.
Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
---
LICENSES/LICENCE.morsemicro | 125 ++++++++++++++++++++
WHENCE | 14 +++
morsemicro/mm81x/v56/bcf_aw_hm677.bin | Bin 0 -> 2124 bytes
morsemicro/mm81x/v56/bcf_mm8108_mf15457.bin | Bin 0 -> 2124 bytes
morsemicro/mm81x/v56/mm8108.bin | Bin 0 -> 479624 bytes
5 files changed, 139 insertions(+)
create mode 100644 LICENSES/LICENCE.morsemicro
create mode 100644 morsemicro/mm81x/v56/bcf_aw_hm677.bin
create mode 100644 morsemicro/mm81x/v56/bcf_mm8108_mf15457.bin
create mode 100644 morsemicro/mm81x/v56/mm8108.bin
diff --git a/LICENSES/LICENCE.morsemicro b/LICENSES/LICENCE.morsemicro
new file mode 100644
index 000000000000..adf90750d1af
--- /dev/null
+++ b/LICENSES/LICENCE.morsemicro
@@ -0,0 +1,125 @@
+ MORSE MICRO
+ BINARY DISTRIBUTION LICENSE AGREEMENT
+
+1. Parties.
+This Software License Agreement (SLA) is between Morse Micro Pty. Ltd. and the
+user of the Software set forth (“you”, “user”, “customer”), and is effective as
+of the date of first access or download of the software by you. Morse Micro is
+licensing this software to you free of charge upon the condition that you
+accept all the terms of this SLA and only use this Software in conjunction with
+Morse Micro products. ANY USE, REPRODUCTION, OR DISTRIBUTION OF THE SOFTWARE
+CONSTITUTES YOUR ACCEPTANCE OF THIS AGREEMENT.
+
+2. Definitions.
+"Software" means any binary or source code that you have received from Morse
+Micro or its authorized licensees and/or those portions of such software
+produced by Program’s code within the Software, as well as any other machine
+readable materials (including, but not limited to, libraries, source files,
+header files, and data files), any updates or error corrections provided by
+Morse Micro, and any user manuals, programming guides and other documentation
+provided to you by Morse Micro under this SLA.
+
+3. License and Restrictions.
+Morse Micro grants you a non-exclusive, non-transferable, limited license
+without license fees to:
+
+ a. use the software solely with a hardware product that includes one of the
+ Morse Micro Wi-Fi HaLow chips, including
+ wireless modules or evaluation kits;
+
+ b. to reproduce and distribute the Software complete, unmodified, and as
+ provided by Morse Micro, solely for use with a hardware product that
+ includes one of the Morse Micro Wi-Fi HaLow chips, including wireless
+ modules or evaluation kits.
+
+4. Reservation of Rights.
+You should distribute Software with a copy of this SLA. Software is
+copyrighted. Title to Software and all associated intellectual property rights
+is retained by Morse Micro. Except as expressly provided herein, no license or
+right, express or implied, is hereby conveyed or granted to you by Morse Micro.
+You must retain all copyright notices on all Software, derivative works and
+documentation. The intellectual property and proprietary rights of whatever
+nature in the Software and derivative works are and will remain the exclusive
+property of Morse Micro or its suppliers. Nothing in this Agreement should be
+construed as transferring any aspects of such rights to you or any third party.
+Morse Micro and its suppliers reserve any and all rights not expressly granted
+in this Agreement. You may not sell, assign, sublicense, lease, or otherwise
+transfer any part of this license. You must not:
+
+ a. use, license, sell or otherwise distribute the Software except as
+ provided in this SLA;
+
+ b. attempt to modify in any way, reverse engineer, decompile or disassemble
+ any portion of the Software;
+
+ c. use the Software or other material in violation of any applicable law or
+ regulation, including but not limited to any regulatory agency.
+
+5. Ownership.
+The Software is licensed and not sold. Title to and ownership of the Software,
+including all intellectual property rights thereto, and any portion thereof
+remain with Morse Micro or its licensors. You hereby covenant that you will not
+assert any claim that the Software created by or for Morse Micro infringe any
+intellectual property right owned or controlled by you.
+
+6. Termination.
+This SLA will terminate immediately without notice from Morse Micro if you fail
+to comply with any of its provisions, including the export laws provisions and
+Section 10 that may govern the export of the Software from certain
+jurisdictions, including technical data.
+
+7. Disclaimer and Limitation of Liability.
+THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MORSE MICRO
+FURTHER DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT
+LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE OR NON-INFRINGEMENT. IN NO EVENT SHALL MORSE MICRO BE LIABLE FOR ANY
+INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES
+FOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR ANY THIRD
+PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF MORSE MICRO HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE SOFTWARE IS NOT INTENDED FOR
+USE IN ENVIRONMENTS OR APPLICATIONS WHERE EXTRAORDINARILY HIGH LEVELS OF
+QUALITY, RELIABILITY, AND FAILURE TOLERANCE ARE DEMANDED, AND/OR WHERE A
+MALFUNCTION OR FAILURE COULD LEAD TO SIGNIFICANT HARM TO LIFE, HEALTH,
+PROPERTY, OR RESULT IN SEVERE SOCIETAL REPERCUSSIONS ("CRITICAL APPLICATIONS").
+CRITICAL APPLICATIONS ENCOMPASS, BUT ARE NOT LIMITED TO, EQUIPMENT UTILIZED IN
+NUCLEAR FACILITIES, AVIATION AND SPACE EQUIPMENT, MEDICAL DEVICES, AUTOMOTIVE,
+TRAIN, MARINE, AND OTHER TRANSPORTATION EQUIPMENT, DEVICES INVOLVED IN
+CONTROLLING COMBUSTION OR EXPLOSIONS, SAFETY DEVICES, ELEVATORS AND ESCALATORS,
+DEVICES ASSOCIATED WITH ELECTRIC POWER, AND EQUIPMENT USED IN FINANCE-RELATED
+FIELDS.
+
+8. Survival.
+Sections 4, 5, 6, 7 and 10 will survive termination or expiration of this SLA.
+
+9. Privacy.
+Some features of the Software, if activated, may transmit a limited amount of
+data to Morse Micro (or its service provider) about the status of the system
+before a crash event. Morse Micro does not associate the data with personally
+identifiable information.
+
+10. Export Laws.
+YOU UNDERSTAND AND AGREE THAT THE SOFTWARE IS SUBJECT TO ALL APPLICABLE EXPORT-
+RELATED LAWS AND REGULATIONS AND THAT YOU MAY NOT EXPORT, RE-EXPORT OR TRANSFER
+THE SOFTWARE OR ANY DIRECT PRODUCT OF THE SOFTWARE EXCEPT AS PERMITTED UNDER
+THOSE LAWS. WITHOUT LIMITING THE FOREGOING, EXPORT, RE-EXPORT, OR TRANSFER OF
+THE SOFTWARE TO CUBA, IRAN, NORTH KOREA, SUDAN, AND SYRIA IS PROHIBITED.
+
+11. Governing Law.
+The laws of New South Wales, Australia, govern all matters arising out of or
+relating to this SLA without giving effect to any conflict of law principles.
+If any provision of this SLA is held to be unenforceable, this SLA will remain
+in effect with the provision omitted, unless omission would frustrate the
+intent of the parties, in which case this Agreement will immediately terminate.
+
+12. Entire Agreement.
+This Agreement constitutes the entire agreement between the parties and
+supersedes all prior and contemporaneous agreements, proposals or
+representations, written or oral, concerning its subject matter. No
+modification, amendment, or waiver of any provision of this Agreement will be
+effective unless in writing and either signed or accepted electronically by the
+party against whom the modification, amendment or waiver is to be asserted. A
+waiver of any breach under this Agreement does not constitute a waiver of any
+other breach or future breach.
+
+
+MORSE MICRO
diff --git a/WHENCE b/WHENCE
index 3be577a6ba7f..886cf55ed20c 100644
--- a/WHENCE
+++ b/WHENCE
@@ -10326,3 +10326,17 @@ Licence: Redistributable. See LICENCE.ti-tspa for details.
Info:
Firmware file generated via https://git.ti.com/cgit/lpaa-android-drivers/tasdevice-linux-driver/tree/json/tool/Non_Integrated_Bin_Tool_v1.4.1 and branch-master.
+---------------------------------------------------------------------------
+
+Driver: mm81x - Morse Micro mm81x Wi-Fi HaLow driver.
+
+File: morsemicro/mm81x/v56/mm8108.bin
+File: morsemicro/mm81x/v56/bcf_mm8108_mf15457.bin
+File: morsemicro/mm81x/v56/bcf_aw_hm677.bin
+Link: morsemicro/mm81x/v56/bcf_boardtype_0804.bin -> bcf_mm8108_mf15457.bin
+Link: morsemicro/mm81x/v56/bcf_boardtype_0807.bin -> bcf_mm8108_mf15457.bin
+Link: morsemicro/mm81x/v56/bcf_boardtype_0a02.bin -> bcf_aw_hm677.bin
+
+Version: 56
+
+License: Redistributable. See LICENCE.morsemicro for details.
diff --git a/morsemicro/mm81x/v56/bcf_aw_hm677.bin b/morsemicro/mm81x/v56/bcf_aw_hm677.bin
new file mode 100644
index 0000000000000000000000000000000000000000..aae0435ed08408f0b45d88825df44c4640ef2b0f
GIT binary patch
literal 2124
zcmc&!U1$?o6h1ROtv_jOyRF(PVod$n2NNf0nx>(MwN%~u7j3f&KD6n~BnI+FGAR`m
zMTC9vVV7OlSAA2kB7(5H4~wvhL{sR~J}e@FAo!qyyX?Xu)N^Kfr!zI|<9gsu&Ue1=
zoO|Zno4GW4<bWheAWVioL7)f)e^??S;DaXk5?YBByvPy1&Ezo0>x~R>`ALVl9uVfW
zik9H#ngI4a?J(CY#d!&yT$dSCtC4XnDq|b#&e_P?i=l@WYq>u6#JxQrUl?<2J+y?5
zd*dFtFJVHrodUvV-3|n}AVdyskHcr(4boj{po_22_0k}(H_(l)(EUcb_YHK36}tN^
zjr%*}&~cd%4M-L*=HN08pLKn!0jQ*HBBekP;WIf%x=vf=;DVL26{BpVrXe_8OqI1s
zwOB}JGY~B68LgO~98TKq$gu5>E=LdUx1(bT+f9y(dYWEQA*i0smMRpgW^>x)j9!L!
zzs@~ZzWeblU*fym7`D+vMunadsvN*oWX;&RadS@#ZrurR7}t;;K~MYo4M%YcX^!Dq
zvg7D!>)MdOP1^uYpr_UAJ&E47&aQFn?gf~jqXsF7EgfILDQqG;jm@4;IE4F%_zJse
zPGjaXh|o==M`#BKBhbhqrXRzF#l^)m@<gXh&ECED^jp_*l+W|2Ve77S@I;cHBG0^r
z-8&e{0xH`WVqN~4xTzintLySn0=|E}oL84m*;z}V>jN`#T^=W9d#_oqE}wwA)tPTf
zv<V+Z4YfyRzSw9*8>b(eH3a)#UA_2&rPNi@?utNyfTQ2=L%lRZd-LgMa3LCKr#BCn
z9n|F^n3wL?@Gr%UpGDmGVa$zh54rI|lrg<G*ZZZ0u*ZpCKYIB+e+K!|eVz_#cunHN
zu+Q3PcEFzw{5<oD`s05>24jEogl>9G!Mt>*E-N(9Z#&$0cD);01D9<5p)GFSx=qWx
zb*#(yYA5SuJ3qJ4jVCs{@z7Q`Ub<{{zNN=`Y0m23(hEE>_4_}3ANddef8WRR{(MoZ
z=5&AD=g;S3Ate^br$hab{sI4PpTA<HjB16slX|9_OBu!TIp2t0HnQoguCao$EuS=n
zB1hC}#h{NKf3wQjl94SIIG-8%91^Nbs&;|6@4SCF$-G+3mvY%u!C>LYuo<#t6dJWu
z&QNmv6V+J49lA)F)smJns9D-1tc3dmAtexs`a()PJP;4Z{1?r)o}Jc1(Lpsf;M3F5
LzCpDwlGZ)~6X>ld
literal 0
HcmV?d00001
diff --git a/morsemicro/mm81x/v56/bcf_mm8108_mf15457.bin b/morsemicro/mm81x/v56/bcf_mm8108_mf15457.bin
new file mode 100644
index 0000000000000000000000000000000000000000..aae0435ed08408f0b45d88825df44c4640ef2b0f
GIT binary patch
literal 2124
zcmc&!U1$?o6h1ROtv_jOyRF(PVod$n2NNf0nx>(MwN%~u7j3f&KD6n~BnI+FGAR`m
zMTC9vVV7OlSAA2kB7(5H4~wvhL{sR~J}e@FAo!qyyX?Xu)N^Kfr!zI|<9gsu&Ue1=
zoO|Zno4GW4<bWheAWVioL7)f)e^??S;DaXk5?YBByvPy1&Ezo0>x~R>`ALVl9uVfW
zik9H#ngI4a?J(CY#d!&yT$dSCtC4XnDq|b#&e_P?i=l@WYq>u6#JxQrUl?<2J+y?5
zd*dFtFJVHrodUvV-3|n}AVdyskHcr(4boj{po_22_0k}(H_(l)(EUcb_YHK36}tN^
zjr%*}&~cd%4M-L*=HN08pLKn!0jQ*HBBekP;WIf%x=vf=;DVL26{BpVrXe_8OqI1s
zwOB}JGY~B68LgO~98TKq$gu5>E=LdUx1(bT+f9y(dYWEQA*i0smMRpgW^>x)j9!L!
zzs@~ZzWeblU*fym7`D+vMunadsvN*oWX;&RadS@#ZrurR7}t;;K~MYo4M%YcX^!Dq
zvg7D!>)MdOP1^uYpr_UAJ&E47&aQFn?gf~jqXsF7EgfILDQqG;jm@4;IE4F%_zJse
zPGjaXh|o==M`#BKBhbhqrXRzF#l^)m@<gXh&ECED^jp_*l+W|2Ve77S@I;cHBG0^r
z-8&e{0xH`WVqN~4xTzintLySn0=|E}oL84m*;z}V>jN`#T^=W9d#_oqE}wwA)tPTf
zv<V+Z4YfyRzSw9*8>b(eH3a)#UA_2&rPNi@?utNyfTQ2=L%lRZd-LgMa3LCKr#BCn
z9n|F^n3wL?@Gr%UpGDmGVa$zh54rI|lrg<G*ZZZ0u*ZpCKYIB+e+K!|eVz_#cunHN
zu+Q3PcEFzw{5<oD`s05>24jEogl>9G!Mt>*E-N(9Z#&$0cD);01D9<5p)GFSx=qWx
zb*#(yYA5SuJ3qJ4jVCs{@z7Q`Ub<{{zNN=`Y0m23(hEE>_4_}3ANddef8WRR{(MoZ
z=5&AD=g;S3Ate^br$hab{sI4PpTA<HjB16slX|9_OBu!TIp2t0HnQoguCao$EuS=n
zB1hC}#h{NKf3wQjl94SIIG-8%91^Nbs&;|6@4SCF$-G+3mvY%u!C>LYuo<#t6dJWu
z&QNmv6V+J49lA)F)smJns9D-1tc3dmAtexs`a()PJP;4Z{1?r)o}Jc1(Lpsf;M3F5
LzCpDwlGZ)~6X>ld
literal 0
HcmV?d00001
diff --git a/morsemicro/mm81x/v56/mm8108.bin b/morsemicro/mm81x/v56/mm8108.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9687e1a77e204ee352091359a800764dc1541465
GIT binary patch
literal 479624
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⁡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%0D)VQgn68h1=9GU$WqfY@GQ8_^UQi8>suE@Vy+j
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
GgE0Z`ePk5?
literal 0
HcmV?d00001
--
2.43.0
^ permalink raw reply related
* Re: [PATCH 1/2] wifi: mac80211: use aesgcm library
From: Eric Biggers @ 2026-07-07 5:47 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, linux-crypto
In-Reply-To: <3114cff87fee71ffca7b48f271e2503876518257.camel@sipsolutions.net>
On Wed, May 06, 2026 at 09:06:21AM +0200, Johannes Berg wrote:
> Hi Eric,
>
> > I really appreciate the enthusiasm for the crypto library!
>
> :)
>
> > And it isn't
> > surprising, since it's clearly the way to go.
>
> I was kinda just playing with it, having been reminded that some code
> was already ported.
>
> > But I do think these two
> > patches are jumping the gun a bit, since we haven't yet migrated all the
> > optimized AES-GCM code into the library, or added an improved AES-GCM
> > API that provides enough functionality to fulfill all the in-kernel use
> > cases (for example, incremental computation of AES-GMAC).
>
> > So as-is these two patches could regress performance in some cases
> > (despite the library having less overhead).
>
> Fair. I don't think the performance matters all that much (though I
> shouldn't lie about it in the commit log) since this is mostly used for
> testing - I don't think there are many users of software crypto beyond
> that. Some, for sure, but I believe those are all old drivers that will
> get you a maximum of ~25 Mbps throughput (both directions combined) if
> you're lucky :)
>
> Anyway, I don't really disagree either, none of this is urgent or
> important at this point.
>
> Also, there's a separate conversation to be had here - I was looking and
> we also instantiate ccm(aes) and ctr(aes) in mac80211, and I didn't find
> equivalent library calls for those.
>
> > And also the AES-GCM API is
> > likely to change a bit. In particular I don't think code outside the
> > crypto subsystem should be constructing its own AES-GMAC by combining
> > the GHASH functions with the AES functions, as your second patch does.
> > Instead they should invoke an AES-GMAC API (or AES-GCM, of which
> > AES-GMAC is a special case) provided by lib/crypto/.
>
> I _was_ thinking that could be better ... and forgot that GMAC is just a
> GCM special case, despite obviously constructing it by hand. Oops.
>
> I actually thought about exporting aesgcm_mac(), but of course that'd
> basically be equivalent to just using aesgcm_encrypt() without data.
>
> However, both of them can only use a single buffer for the associated
> data, so they can't be used here. The crypto API used sg tables which
> aren't great either, but definitely more flexible than the current
> function. Note that in this case I actually need to use three or four
> AAD buffers:
>
> - the pseudo-header constructed outside the frame buffer specifically
> for WiFi, representing the frame header but not exactly the same
> - for beacons an 8-byte zero buffer representing the Timestamp
> - the frame payload without the MIC
> (and without the Timestamp for beacons)
> - a 16-byte zero buffer representing the MIC
>
> This would require a more specific GMAC API like the CMAC API, or,
> equivalently but more flexible, an init/aad_update/data_update/final GCM
> API. Could even have
>
> aes_gcm_init()
> aes_gcm_update_aad()
> aes_gcm_update_data()
> aes_gcm_final()
>
> and
> #define aes_gmac_init aes_gcm_init
> #define aes_gmac_update aes_gmac_update_aad
> #define aes_gmac_final aes_gcm_final
>
> or something like that, I guess.
>
> > So I'd ask that we wait just a bit until I can finish getting the
> > AES-GCM library APIs into a good state. I got a lot of the prerequisite
> > work in for 7.0 and 7.1, and I'll see if I can finish it in 7.2. I've
> > just been a bit busy with other things in the past few weeks.
>
> Sure, no hurry, was mostly playing with how that'd look like. Maybe it
> even helps figure out the right APIs ;-)
FYI, the following series adds new library APIs for AES-GCM, AES-CCM,
and AES-CTR (and also several other modes):
https://lore.kernel.org/linux-crypto/20260707053503.209874-1-ebiggers@kernel.org/
It also has proof of concept patches that convert many kernel
subsystems, including mac80211, to use them.
It will take a while to land everything, including bringing all the
existing architecture-specific optimizations to the library (which that
series doesn't do). But I'd like to first land the new APIs as a
starting point.
- Eric
^ permalink raw reply
* [PATCH v2] wifi: brcmfmac: cyw: fix heap overflow on a short auth frame
From: Maoyi Xie @ 2026-07-07 6:31 UTC (permalink / raw)
To: Arend van Spriel
Cc: linux-wireless, brcm80211, brcm80211-dev-list.pdl, linux-kernel
brcmf_notify_auth_frame_rx() takes the frame length from the firmware
event and copies the frame body with the management header offset
subtracted:
u32 mgmt_frame_len = e->datalen - sizeof(struct brcmf_rx_mgmt_data);
...
memcpy(&mgmt_frame->u, frame,
mgmt_frame_len - offsetof(struct ieee80211_mgmt, u));
The only length check is e->datalen >= sizeof(*rxframe), so mgmt_frame_len
can be anything from 0 up. offsetof(struct ieee80211_mgmt, u) is 24. When
mgmt_frame_len is below that, the subtraction wraps as an unsigned value to
a huge length. The memcpy then runs far past the kzalloc'd buffer. A
malicious or malfunctioning AP can make the frame short during the
external SAE auth exchange, so this is a remotely triggered heap overflow.
Reject frames shorter than the management header offset before the copy.
Fixes: 66f909308a7c ("wifi: brcmfmac: cyw: support external SAE authentication in station mode")
Cc: stable@vger.kernel.org
Co-developed-by: Kaixuan Li <kaixuan.li@ntu.edu.sg>
Signed-off-by: Kaixuan Li <kaixuan.li@ntu.edu.sg>
Signed-off-by: Maoyi Xie <maoyixie.tju@gmail.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
---
v2: drop the Link: tag (Arend), add Arend's Acked-by.
v1: https://lore.kernel.org/r/20260627131313.3878893-1-maoyixie.tju@gmail.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
index ce09d44fa7..873754be51 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
@@ -293,6 +293,12 @@ brcmf_notify_auth_frame_rx(struct brcmf_if *ifp,
return -EINVAL;
}
+ if (mgmt_frame_len < offsetof(struct ieee80211_mgmt, u)) {
+ bphy_err(drvr, "Event %s (%d) frame too small. Ignore\n",
+ brcmf_fweh_event_name(e->event_code), e->event_code);
+ return -EINVAL;
+ }
+
wdev = &ifp->vif->wdev;
WARN_ON(!wdev);
--
2.34.1
^ permalink raw reply related
* Re: [PATCH 1/3] wifi: cfg80211: validate rx/tx MLME callback frame lengths before access
From: Johannes Berg @ 2026-07-07 7:21 UTC (permalink / raw)
To: Zhao Li; +Cc: linux-wireless, linux-kernel
In-Reply-To: <20260707025241.22223-1-enderaoelyther@gmail.com>
On Tue, 2026-07-07 at 10:52 +0800, Zhao Li wrote:
>
> mwifiex accepts a 4-address
> ieee80211_hdr plus the 2-byte firmware length prefix. After it strips
> the prefix and removes addr4, pkt_len can be exactly 24: a bare
> 3-address management header with no reason-code body.
> WARN_ON(len < 2) does not fire on that, and cfg80211_process_deauth()
> then reads u.deauth.reason_code as a two-byte access starting at offset
> 24, immediately past the 24-byte buffer.
Right, thanks for the explanations here (and in the other mail). I'm
fairly sure the firmware would (have to) discard such frames, but we
shouldn't rely on it. Looks like mwifiex is pretty much a trainwreck on
this anyway though, e.g. mwifiex_parse_mgmt_packet()? I vaguely remember
fixing something like this but I guess it was elsewhere ...
johannes
^ permalink raw reply
* Re: [PATCH 0/3] MIPS: BCM47XX: convert buttons to software nodes
From: Johannes Berg @ 2026-07-07 8:19 UTC (permalink / raw)
To: Dmitry Torokhov, Rafał Miłecki, Michael Buesch,
Hauke Mehrtens, Thomas Bogendoerfer
Cc: Bartosz Golaszewski, Arnd Bergmann, linux-wireless, linux-kernel,
linux-mips
In-Reply-To: <20260704-b4-bcm47xx-swnode-v1-0-730d59340237@gmail.com>
On Sat, 2026-07-04 at 22:25 -0700, Dmitry Torokhov wrote:
> This series converts the legacy gpio-keys platform device on BCM47XX
> boards to use software nodes and static properties.
>
> To do this properly without relying on legacy name-based matching
> (which is being removed from gpiolib), we introduce and register
> software nodes for the underlying GPIO controllers (BCMA and SSB)
> and reference them in the button properties.
>
> The first two patches add the software nodes to bcma-gpio and
> ssb-gpio respectively. The third patch performs the conversion
> for the BCM47XX buttons.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> Dmitry Torokhov (3):
> bcma: gpio: Add and register software node for GPIO controller
> ssb: gpio: Add and register software node for GPIO controller
> MIPS: BCM47XX: Convert buttons to software nodes
Seems like most of the change in in MIPS and it should all go through
that tree. For the record, that's OK with wireless regarding bcma/ssb.
johannes
^ permalink raw reply
* [PATCH rtw-next 00/15] wifi: rtw89: add voltage thermal protect and some random patches for RTL8922D
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
First 5 patches and patch 11 and 13 are related to PHY settings to
improve PHY performance.
Patches 6-9 are main change to support voltage thermal protection, which
adjusts voltage according to thermal value to reduce power consumption.
Patch 10 is to adjust hardware clock for ANA circuit.
Patch 12 is a improvement of RTL8852A.
Since we have prepared firmware containing BB/RF parameters and etc, notify
users that we are going to remove built-in tables of BB/RF parameters from
driver. Patches 14-15 are to add transition state to notify users to update
their old firmware. Currently users can still use old firmware, and we plan
to remove built-in tables years later.
Chih-Kang Chang (1):
wifi: rtw89: 8852a: fix RSSI report when average beacon RSSI is not
ready
Eric Huang (4):
wifi: rtw89: 8922d: remove CCK bandwidth compensation
wifi: rtw89: 8922d: dynamic adjust channel smoothing
wifi: rtw89: 8922d: fix EMLSR BB switch sequence for MLO mode
transition
wifi: rtw89: phy: fix bandedge primary channel for 2.4GHz 40MHz and
6GHz
Ping-Ke Shih (10):
wifi: rtw89: 8922d: set TX compensation by format v2
wifi: rtw89: efuse: no need to export rtw89_efuse_read_ecv_be()
wifi: rtw89: efuse: read thermal calibration value for RTL8922D
wifi: rtw89: 8922d: read default digital voltage calibration values
wifi: rtw89: add thermal protect by digital voltage reduction
wifi: rtw89: 8922d: set ANA CLK enter to 500KHz
wifi: rtw89: 8922d: update scaling factor for RX path
wifi: rtw89: phy: add NCTL check for WiFi 7 chips
wifi: rtw89: unify access struct of TX power track tables
wifi: rtw89: set needed firmware elements for early chips transition
drivers/net/wireless/realtek/rtw89/core.c | 17 ++
drivers/net/wireless/realtek/rtw89/core.h | 34 +++
drivers/net/wireless/realtek/rtw89/debug.c | 1 +
drivers/net/wireless/realtek/rtw89/efuse.h | 7 +
drivers/net/wireless/realtek/rtw89/efuse_be.c | 117 ++++++++++-
drivers/net/wireless/realtek/rtw89/fw.c | 10 +
drivers/net/wireless/realtek/rtw89/fw.h | 27 ++-
drivers/net/wireless/realtek/rtw89/mac.c | 7 +
drivers/net/wireless/realtek/rtw89/mac.h | 47 +++++
drivers/net/wireless/realtek/rtw89/mac_be.c | 40 ++++
drivers/net/wireless/realtek/rtw89/phy.c | 33 +++
drivers/net/wireless/realtek/rtw89/phy.h | 25 +--
drivers/net/wireless/realtek/rtw89/phy_be.c | 45 +++-
drivers/net/wireless/realtek/rtw89/reg.h | 53 +++++
drivers/net/wireless/realtek/rtw89/rtw8851b.c | 4 +-
.../net/wireless/realtek/rtw89/rtw8851b_rfk.c | 20 +-
.../wireless/realtek/rtw89/rtw8851b_table.c | 15 +-
.../wireless/realtek/rtw89/rtw8851b_table.h | 2 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 6 +-
.../net/wireless/realtek/rtw89/rtw8852a_rfk.c | 36 ++--
.../wireless/realtek/rtw89/rtw8852a_table.c | 27 +--
.../wireless/realtek/rtw89/rtw8852a_table.h | 2 +-
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 4 +-
.../net/wireless/realtek/rtw89/rtw8852b_rfk.c | 36 ++--
.../wireless/realtek/rtw89/rtw8852b_table.c | 27 +--
.../wireless/realtek/rtw89/rtw8852b_table.h | 2 +-
.../net/wireless/realtek/rtw89/rtw8852bt.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 4 +-
.../net/wireless/realtek/rtw89/rtw8852c_rfk.c | 101 ++++-----
.../wireless/realtek/rtw89/rtw8852c_table.c | 35 ++--
.../wireless/realtek/rtw89/rtw8852c_table.h | 2 +-
drivers/net/wireless/realtek/rtw89/rtw8922a.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 196 ++++++++++++++----
33 files changed, 750 insertions(+), 234 deletions(-)
base-commit: 2b7858891b100587c10c136cf07205335a897be0
--
2.25.1
^ permalink raw reply
* [PATCH rtw-next 01/15] wifi: rtw89: 8922d: remove CCK bandwidth compensation
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
From: Eric Huang <echuang@realtek.com>
Remove the 40MHz bandwidth compensation from CCK efuse gain calculation.
The design no longer requires the +3dB compensation for 40MHz channels.
Signed-off-by: Eric Huang <echuang@realtek.com>
---
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index f78d6d46e65f..625f8d675f08 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -1634,10 +1634,6 @@ static void rtw8922d_calc_rx_gain_normal_cck(struct rtw89_dev *rtwdev,
s8 rx_gain_offset;
rx_gain_offset = -rtw8922d_get_rx_gain_by_chan(rtwdev, chan, path, true);
-
- if (chan->band_width == RTW89_CHANNEL_WIDTH_40)
- rx_gain_offset += (3 << 2); /* compensate RPL loss of 3dB */
-
calc->cck_mean_gain_bias = (rx_gain_offset & 0x3) << 1;
calc->cck_rpl_ofst = (rx_gain_offset >> 2) + gain->cck_rpl_base[phy_idx];
}
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 02/15] wifi: rtw89: 8922d: dynamic adjust channel smoothing
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
From: Eric Huang <echuang@realtek.com>
Add support for path difference based channel smoothing for RTL8922D chip.
This feature measures the ratio of NDP frames and uses a moving average
filter to decide whether to enable beamforming channel smoothing. Tone
index selection is dynamically adjusted based on bandwidth and link mode
(HE/EHT vs VHT). The feature is only enabled for RTL8922D_CID7090 variant.
Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/core.c | 8 +++
drivers/net/wireless/realtek/rtw89/core.h | 21 ++++++
drivers/net/wireless/realtek/rtw89/phy.c | 5 ++
drivers/net/wireless/realtek/rtw89/reg.h | 24 +++++++
drivers/net/wireless/realtek/rtw89/rtw8851b.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 1 +
.../net/wireless/realtek/rtw89/rtw8852bt.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8922a.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 68 +++++++++++++++++++
11 files changed, 132 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 26b744dfbcf8..9dbf01e82383 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -5806,6 +5806,7 @@ int rtw89_core_sta_link_assoc(struct rtw89_dev *rtwdev,
rtwsta_link);
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
rtwvif_link->chanctx_idx);
+ struct rtw89_bb_ctx *bb = rtw89_get_bb_ctx(rtwdev, rtwvif_link->phy_idx);
struct ieee80211_link_sta *link_sta;
int ret;
@@ -5858,6 +5859,7 @@ int rtw89_core_sta_link_assoc(struct rtw89_dev *rtwdev,
if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls) {
struct ieee80211_bss_conf *bss_conf;
+ u8 link_mode = 0;
rcu_read_lock();
@@ -5865,6 +5867,12 @@ int rtw89_core_sta_link_assoc(struct rtw89_dev *rtwdev,
link_sta = rtw89_sta_rcu_dereference_link(rtwsta_link, true);
rtwsta_link->er_cap = rtw89_sta_link_can_er(rtwdev, bss_conf, link_sta);
+ if (link_sta->he_cap.has_he || link_sta->eht_cap.has_eht)
+ link_mode = 2;
+ else if (link_sta->vht_cap.vht_supported)
+ link_mode = 1;
+ bb->path_diff.link_mode = link_mode;
+
rcu_read_unlock();
rtw89_btc_ntfy_role_info(rtwdev, rtwvif_link, rtwsta_link,
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
index 5dde620b1e5e..9a4d42b60bbb 100644
--- a/drivers/net/wireless/realtek/rtw89/core.h
+++ b/drivers/net/wireless/realtek/rtw89/core.h
@@ -14,6 +14,7 @@
#include <net/mac80211.h>
struct rtw89_dev;
+struct rtw89_bb_ctx;
struct rtw89_pci_info;
struct rtw89_usb_info;
struct rtw89_mac_gen_def;
@@ -3948,6 +3949,8 @@ struct rtw89_chip_ops {
enum rtw89_rf_path path,
enum rtw89_phy_idx phy_idx,
struct rtw89_phy_calc_efuse_gain *calc);
+ void (*path_diff_update)(struct rtw89_dev *rtwdev,
+ struct rtw89_bb_ctx *bb);
int (*pwr_on_func)(struct rtw89_dev *rtwdev);
int (*pwr_off_func)(struct rtw89_dev *rtwdev);
void (*query_rxdesc)(struct rtw89_dev *rtwdev,
@@ -5504,6 +5507,14 @@ struct rtw89_beacon_stat {
};
DECLARE_EWMA(thermal, 4, 4);
+DECLARE_EWMA(path_diff, 4, 2);
+
+struct rtw89_phy_path_diff {
+ struct ewma_path_diff avg;
+ u8 raw;
+ bool bf_smo_en;
+ u8 link_mode;
+};
#define RTW89_TX_RATE_NR 40
struct rtw89_phy_stat {
@@ -6562,6 +6573,7 @@ struct rtw89_dev {
struct rtw89_pmac_stat_info pmac_stat;
struct rtw89_tx_stat_info tx_stat;
struct rtw89_diag_bb diag;
+ struct rtw89_phy_path_diff path_diff;
} bbs[RTW89_PHY_NUM];
struct wiphy_delayed_work track_work;
@@ -7673,6 +7685,15 @@ static inline void rtw89_chip_power_trim(struct rtw89_dev *rtwdev)
chip->ops->power_trim(rtwdev);
}
+static inline void rtw89_chip_path_diff_update(struct rtw89_dev *rtwdev,
+ struct rtw89_bb_ctx *bb)
+{
+ const struct rtw89_chip_info *chip = rtwdev->chip;
+
+ if (chip->ops->path_diff_update)
+ chip->ops->path_diff_update(rtwdev, bb);
+}
+
static inline void __rtw89_chip_init_txpwr_unit(struct rtw89_dev *rtwdev,
enum rtw89_phy_idx phy_idx)
{
diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
index 759be4dab42b..981c7f02271a 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.c
+++ b/drivers/net/wireless/realtek/rtw89/phy.c
@@ -5842,6 +5842,9 @@ static void rtw89_phy_stat_init(struct rtw89_dev *rtwdev)
memset(&bb->last_pkt_stat, 0, sizeof(bb->last_pkt_stat));
ewma_rssi_init(&bb->bcn_rssi);
+ bb->path_diff.raw = 0;
+ ewma_path_diff_init(&bb->path_diff.avg);
+ bb->path_diff.bf_smo_en = false;
}
rtwdev->hal.thermal_prot_lv = 0;
@@ -6190,6 +6193,8 @@ void rtw89_phy_stat_track(struct rtw89_dev *rtwdev)
rtw89_for_each_active_bb(rtwdev, bb) {
bb->last_pkt_stat = bb->cur_pkt_stat;
memset(&bb->cur_pkt_stat, 0, sizeof(bb->cur_pkt_stat));
+
+ rtw89_chip_path_diff_update(rtwdev, bb);
}
}
diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h
index bf1c6cb0ae9c..1ff788c24eec 100644
--- a/drivers/net/wireless/realtek/rtw89/reg.h
+++ b/drivers/net/wireless/realtek/rtw89/reg.h
@@ -10822,6 +10822,13 @@
#define B_TXINFO_PATH_MB_BE4 BIT(19)
#define R_SHAPER_COEFF_BE4 0x20CBC
#define B_SHAPER_COEFF_BE4 BIT(19)
+
+#define R_CL_MODE_CNT_BE4 0x20DE0
+#define B_CL_MODE_NDP_CNT_PHY0_BE4 GENMASK(31, 24)
+#define B_CL_MODE_NDP_CNT_PHY1_BE4 GENMASK(15, 8)
+#define B_CL_MODE_CL_CNT_PHY0_BE4 GENMASK(23, 16)
+#define B_CL_MODE_CL_CNT_PHY1_BE4 GENMASK(7, 0)
+
#define R_IFS_T1_AVG_BE4 0x20EDC
#define B_IFS_T1_AVG_BE4 GENMASK(15, 0)
#define B_IFS_T2_AVG_BE4 GENMASK(31, 16)
@@ -10940,6 +10947,14 @@
#define R_GAIN_BIAS_BE4 0x260A0
#define B_GAIN_BIAS_BW20_BE4 GENMASK(11, 6)
#define B_GAIN_BIAS_BW40_BE4 GENMASK(17, 12)
+
+#define R_BF_SMO_PDP_LMT_EHT_BE4 0x26568
+#define B_BF_SMO_PDP_LMT_EHT_BE4 BIT(30)
+#define R_BF_SMO_PDP_LMT_HE_BE4 0x26568
+#define B_BF_SMO_PDP_LMT_HE_BE4 BIT(31)
+#define R_BF_SMO_PDP_LMT_VHT_BE4 0x2656C
+#define B_BF_SMO_PDP_LMT_VHT_BE4 BIT(31)
+
#define R_AWGN_DET_BE4 0x2668C
#define B_AWGN_DET_BE4 GENMASK(17, 9)
#define R_CSI_WGT_BE4 0x26770
@@ -10981,6 +10996,15 @@
#define R_BSS_CLR_VLD_BE4 0x26920
#define B_BSS_CLR_VLD_BE4 BIT(2)
+#define R_CL_MODE_TRIG_BE4 0x26F44
+#define B_CL_MODE_TRIG_BE4 BIT(31)
+#define R_SELECTED_TONE_IDX_BE4 0x26F4C
+#define B_SELECTED_TONE_IDX_BE4 GENMASK(11, 0)
+#define R_OS_TRIG_BY_SW_BE4 0x26F50
+#define B_OS_TRIG_BY_SW_BE4 BIT(30)
+#define R_OS_TRIG_SOURCE_BE4 0x26F6C
+#define B_OS_TRIG_SOURCE_BE4 BIT(0)
+
#define R_SW_SI_DATA_BE4 0x2CF4C
#define B_SW_SI_READ_DATA_BE4 GENMASK(19, 0)
#define B_SW_SI_W_BUSY_BE4 BIT(24)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b.c b/drivers/net/wireless/realtek/rtw89/rtw8851b.c
index 4caf231c6287..d0c262c3dffe 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851b.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851b.c
@@ -2580,6 +2580,7 @@ static const struct rtw89_chip_ops rtw8851b_chip_ops = {
.set_txpwr_ul_tb_offset = rtw8851b_set_txpwr_ul_tb_offset,
.digital_pwr_comp = NULL,
.calc_rx_gain_normal = NULL,
+ .path_diff_update = NULL,
.pwr_on_func = rtw8851b_pwr_on_func,
.pwr_off_func = rtw8851b_pwr_off_func,
.query_rxdesc = rtw89_core_query_rxdesc,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
index 78addc0aef69..a5a06ae5c446 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
@@ -2326,6 +2326,7 @@ static const struct rtw89_chip_ops rtw8852a_chip_ops = {
.set_txpwr_ul_tb_offset = rtw8852a_set_txpwr_ul_tb_offset,
.digital_pwr_comp = NULL,
.calc_rx_gain_normal = NULL,
+ .path_diff_update = NULL,
.pwr_on_func = NULL,
.pwr_off_func = NULL,
.query_rxdesc = rtw89_core_query_rxdesc,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b.c b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
index debcdb2eacd6..a8638024b54a 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
@@ -907,6 +907,7 @@ static const struct rtw89_chip_ops rtw8852b_chip_ops = {
.set_txpwr_ul_tb_offset = rtw8852bx_set_txpwr_ul_tb_offset,
.digital_pwr_comp = NULL,
.calc_rx_gain_normal = NULL,
+ .path_diff_update = NULL,
.pwr_on_func = rtw8852b_pwr_on_func,
.pwr_off_func = rtw8852b_pwr_off_func,
.query_rxdesc = rtw89_core_query_rxdesc,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852bt.c b/drivers/net/wireless/realtek/rtw89/rtw8852bt.c
index fc8a17fb95f4..e68f73827fa5 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852bt.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852bt.c
@@ -753,6 +753,7 @@ static const struct rtw89_chip_ops rtw8852bt_chip_ops = {
.set_txpwr_ul_tb_offset = rtw8852bx_set_txpwr_ul_tb_offset,
.digital_pwr_comp = NULL,
.calc_rx_gain_normal = NULL,
+ .path_diff_update = NULL,
.pwr_on_func = rtw8852bt_pwr_on_func,
.pwr_off_func = rtw8852bt_pwr_off_func,
.query_rxdesc = rtw89_core_query_rxdesc,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c
index 29a3c90021f3..52986b982ecd 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c
@@ -3125,6 +3125,7 @@ static const struct rtw89_chip_ops rtw8852c_chip_ops = {
.set_txpwr_ul_tb_offset = rtw8852c_set_txpwr_ul_tb_offset,
.digital_pwr_comp = NULL,
.calc_rx_gain_normal = NULL,
+ .path_diff_update = NULL,
.pwr_on_func = rtw8852c_pwr_on_func,
.pwr_off_func = rtw8852c_pwr_off_func,
.query_rxdesc = rtw89_core_query_rxdesc,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922a.c b/drivers/net/wireless/realtek/rtw89/rtw8922a.c
index 6d4301661b04..5389c8cd07f4 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922a.c
@@ -3110,6 +3110,7 @@ static const struct rtw89_chip_ops rtw8922a_chip_ops = {
.set_txpwr_ul_tb_offset = NULL,
.digital_pwr_comp = rtw8922a_digital_pwr_comp,
.calc_rx_gain_normal = NULL,
+ .path_diff_update = NULL,
.pwr_on_func = rtw8922a_pwr_on_func,
.pwr_off_func = rtw8922a_pwr_off_func,
.query_rxdesc = rtw89_core_query_rxdesc_v2,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 625f8d675f08..805dd96e61e6 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -1716,6 +1716,73 @@ static void rtw8922d_calc_rx_gain_normal(struct rtw89_dev *rtwdev,
rtw8922d_calc_rx_gain_normal_cck(rtwdev, chan, path, phy_idx, calc);
}
+static void rtw8922d_path_diff_update(struct rtw89_dev *rtwdev,
+ struct rtw89_bb_ctx *bb)
+{
+#define BF_SMOOTH_TH 80
+ static const u32 path_diff_cnt_mask[] = {0xff0000, 0xff};
+ static const u32 ndp_cnt_mask[] = {0xff000000, 0xff00};
+ static const u16 he_eht_sel_tone[4] = {27, 54, 56, 56};
+ static const u16 vht_sel_tone[4] = {11, 25, 25, 25};
+ struct rtw89_hal *hal = &rtwdev->hal;
+ struct rtw89_entity_conf conf;
+ const struct rtw89_chan *chan;
+ u8 phy_idx = bb->phy_idx;
+ u32 path_diff_cnt;
+ u16 sel_tone = 0;
+ bool bf_smo_lmt;
+ u32 ndp_cnt;
+
+ if (hal->cid != RTL8922D_CID7090)
+ return;
+
+ ndp_cnt = rtw89_phy_read32_mask(rtwdev, R_CL_MODE_CNT_BE4, ndp_cnt_mask[phy_idx]);
+ path_diff_cnt = rtw89_phy_read32_mask(rtwdev, R_CL_MODE_CNT_BE4,
+ path_diff_cnt_mask[phy_idx]);
+
+ bb->path_diff.raw = clamp(phy_div(path_diff_cnt * 100, ndp_cnt), 0, 255);
+
+ if (ndp_cnt == 0)
+ ewma_path_diff_init(&bb->path_diff.avg);
+ else
+ ewma_path_diff_add(&bb->path_diff.avg, bb->path_diff.raw);
+
+ rtw89_phy_write32_mask(rtwdev, R_CL_MODE_TRIG_BE4, B_CL_MODE_TRIG_BE4, 1);
+ rtw89_phy_write32_mask(rtwdev, R_CL_MODE_TRIG_BE4, B_CL_MODE_TRIG_BE4, 0);
+
+ bf_smo_lmt = ewma_path_diff_read(&bb->path_diff.avg) < BF_SMOOTH_TH;
+ bb->path_diff.bf_smo_en = !bf_smo_lmt;
+
+ rtw89_phy_write32_mask(rtwdev, R_BF_SMO_PDP_LMT_EHT_BE4,
+ B_BF_SMO_PDP_LMT_EHT_BE4, bf_smo_lmt);
+ rtw89_phy_write32_mask(rtwdev, R_BF_SMO_PDP_LMT_HE_BE4,
+ B_BF_SMO_PDP_LMT_HE_BE4, bf_smo_lmt);
+ rtw89_phy_write32_mask(rtwdev, R_BF_SMO_PDP_LMT_VHT_BE4,
+ B_BF_SMO_PDP_LMT_VHT_BE4, bf_smo_lmt);
+
+ rtw89_phy_write32_mask(rtwdev, R_OS_TRIG_BY_SW_BE4,
+ B_OS_TRIG_BY_SW_BE4, !bf_smo_lmt);
+ rtw89_phy_write32_mask(rtwdev, R_OS_TRIG_SOURCE_BE4,
+ B_OS_TRIG_SOURCE_BE4, !bf_smo_lmt);
+
+ rtw89_entity_get_conf(rtwdev, &conf);
+ chan = conf.chans[phy_idx];
+ if (chan->band_width <= RTW89_CHANNEL_WIDTH_160) {
+ if (bb->path_diff.link_mode >= 2)
+ sel_tone = he_eht_sel_tone[chan->band_width];
+ else if (bb->path_diff.link_mode == 1)
+ sel_tone = vht_sel_tone[chan->band_width];
+ rtw89_phy_write32_mask(rtwdev, R_SELECTED_TONE_IDX_BE4,
+ B_SELECTED_TONE_IDX_BE4, sel_tone);
+ }
+
+ rtw89_debug(rtwdev, RTW89_DBG_PHY_TRACK,
+ "[PATH_DIFF] raw=%d%%, ma=%ld%%, bf_smo_en=%d, tone=%d\n",
+ bb->path_diff.raw,
+ ewma_path_diff_read(&bb->path_diff.avg),
+ bb->path_diff.bf_smo_en, sel_tone);
+}
+
static void rtw8922d_set_cck_parameters(struct rtw89_dev *rtwdev,
const struct rtw89_chan *chan,
enum rtw89_phy_idx phy_idx)
@@ -3288,6 +3355,7 @@ static const struct rtw89_chip_ops rtw8922d_chip_ops = {
.set_txpwr_ul_tb_offset = NULL,
.digital_pwr_comp = rtw8922d_digital_pwr_comp,
.calc_rx_gain_normal = rtw8922d_calc_rx_gain_normal,
+ .path_diff_update = rtw8922d_path_diff_update,
.pwr_on_func = rtw8922d_pwr_on_func,
.pwr_off_func = rtw8922d_pwr_off_func,
.query_rxdesc = rtw89_core_query_rxdesc_v3,
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 03/15] wifi: rtw89: 8922d: fix EMLSR BB switch sequence for MLO mode transition
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
From: Eric Huang <echuang@realtek.com>
Assert BB reset in the intermediate "switch to 1+1" step of the EMLSR
switch sequence for all three MLO mode transitions by updating the
B_EMLSR_SWITCH_BE4 intermediate value from 0xAFFF to 0x3BAB.
Without the BB reset in this step, the baseband can be left in an
inconsistent state before settling into the final MLO configuration.
Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/reg.h | 1 +
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 45 ++++++++-----------
2 files changed, 20 insertions(+), 26 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h
index 1ff788c24eec..3908f9729736 100644
--- a/drivers/net/wireless/realtek/rtw89/reg.h
+++ b/drivers/net/wireless/realtek/rtw89/reg.h
@@ -10782,6 +10782,7 @@
#define B_SYS_DBCC_24G_BAND_SEL_BE4 BIT(1)
#define R_EMLSR_SWITCH_BE4 0x20044
#define B_EMLSR_SWITCH_BE4 GENMASK(27, 12)
+#define B_EMLSR_CLR_FORCE_BE4 GENMASK(20, 19)
#define B_EMLSR_BB_CLK_BE4 GENMASK(31, 30)
#define R_CHINFO_SEG_BE4 0x200B4
#define B_CHINFO_SEG_LEN_BE4 GENMASK(12, 10)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 805dd96e61e6..212917db7154 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -2309,17 +2309,16 @@ static void rtw8922d_digital_pwr_comp(struct rtw89_dev *rtwdev,
}
}
-static int rtw8922d_ctrl_mlo(struct rtw89_dev *rtwdev, enum rtw89_mlo_dbcc_mode mode,
- bool pwr_comp)
+static void rtw8922d_ctrl_mlo_mode_core(struct rtw89_dev *rtwdev,
+ enum rtw89_mlo_dbcc_mode mode)
{
- u32 reg0, reg1;
- u8 cck_phy_idx;
+ rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_CLR_FORCE_BE4, 0x3);
if (mode == MLO_2_PLUS_0_1RF) {
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xBBBB);
udelay(1);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x3);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xAFFF);
+ rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0x3BAB);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xEBAD);
udelay(1);
@@ -2329,7 +2328,7 @@ static int rtw8922d_ctrl_mlo(struct rtw89_dev *rtwdev, enum rtw89_mlo_dbcc_mode
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xBBBB);
udelay(1);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x3);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xAFFF);
+ rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0x3BAB);
udelay(1);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xEFFF);
@@ -2339,7 +2338,7 @@ static int rtw8922d_ctrl_mlo(struct rtw89_dev *rtwdev, enum rtw89_mlo_dbcc_mode
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xBBBB);
udelay(1);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x3);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xAFFF);
+ rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0x3BAB);
udelay(1);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x0);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0x3AAB);
@@ -2351,6 +2350,15 @@ static int rtw8922d_ctrl_mlo(struct rtw89_dev *rtwdev, enum rtw89_mlo_dbcc_mode
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x0);
rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0x0);
}
+}
+
+static int rtw8922d_ctrl_mlo(struct rtw89_dev *rtwdev, enum rtw89_mlo_dbcc_mode mode,
+ bool pwr_comp)
+{
+ u32 reg0, reg1;
+ u8 cck_phy_idx;
+
+ rtw8922d_ctrl_mlo_mode_core(rtwdev, mode);
if (pwr_comp)
rtw8922d_digital_pwr_comp(rtwdev, RTW89_PHY_0);
@@ -2474,25 +2482,10 @@ static void rtw8922d_pre_set_channel_bb(struct rtw89_dev *rtwdev,
rtw89_phy_write32_mask(rtwdev, R_SYS_DBCC_BE4, B_SYS_DBCC_BE4, 0x0);
- if (phy_idx == RTW89_PHY_0) {
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xBBBB);
- fsleep(1);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x3);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xAFFF);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xEBAD);
- fsleep(1);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x0);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xEAAD);
- } else {
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xBBBB);
- fsleep(1);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x3);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xAFFF);
- fsleep(1);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xEFFF);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_BB_CLK_BE4, 0x0);
- rtw89_phy_write32_mask(rtwdev, R_EMLSR_SWITCH_BE4, B_EMLSR_SWITCH_BE4, 0xEEFF);
- }
+ if (phy_idx == RTW89_PHY_0)
+ rtw8922d_ctrl_mlo_mode_core(rtwdev, MLO_2_PLUS_0_1RF);
+ else
+ rtw8922d_ctrl_mlo_mode_core(rtwdev, MLO_0_PLUS_2_1RF);
fsleep(1);
}
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 04/15] wifi: rtw89: phy: fix bandedge primary channel for 2.4GHz 40MHz and 6GHz
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
From: Eric Huang <echuang@realtek.com>
Correct 2.4GHz bandwidth 40MHz bandedge check: pri_ch 5/9 instead of 3/11.
Remove stale 6GHz bandedge case; no restricted band borders 6GHz range.
Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/phy_be.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/phy_be.c b/drivers/net/wireless/realtek/rtw89/phy_be.c
index 99263355e2f1..ac4ce30445b3 100644
--- a/drivers/net/wireless/realtek/rtw89/phy_be.c
+++ b/drivers/net/wireless/realtek/rtw89/phy_be.c
@@ -623,7 +623,7 @@ static u32 rtw89_phy_bb_wrap_be_bandedge_decision(struct rtw89_dev *rtwdev,
case RTW89_BAND_2G:
if (pri_ch == 1 || pri_ch == 13)
val = BIT(1) | BIT(0);
- else if (pri_ch == 3 || pri_ch == 11)
+ else if (pri_ch == 5 || pri_ch == 9)
val = BIT(1);
break;
case RTW89_BAND_5G:
@@ -637,8 +637,6 @@ static u32 rtw89_phy_bb_wrap_be_bandedge_decision(struct rtw89_dev *rtwdev,
val = BIT(3);
break;
case RTW89_BAND_6G:
- if (pri_ch == 233)
- val = BIT(0);
break;
}
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 05/15] wifi: rtw89: 8922d: set TX compensation by format v2
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
The total number of TX compensation registers is 22, including 7 base and
15 ones according to operating channel.
The v0 is 22 ones per channel. To reduce array size, v1 treats 7 base as
common part across all conditions. However, we can fine tune the base part
to yield better performance, so divide base into two sets according to NSS.
Summarize dimensions as follows
base (7) vals(15)
v0 nss * band * path nss * band * path
v1 1 nss * band * path
v2 nss nss * band * path
Currently, v1 and v2 can present in a file, but only one fw element with
a specific format will be used for specific RFE type.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 212917db7154..e8267173bd4c 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -2249,6 +2249,12 @@ static void rtw8922d_set_digital_pwr_comp(struct rtw89_dev *rtwdev,
struct {
__le32 vals[DIGITAL_PWR_COMP_VALS_NUM];
} sets[2][RTW89_TX_COMP_BAND_NR][BB_PATH_NUM_8922D];
+ } *pwr_comp_v1;
+ const struct {
+ __le32 base[2][DIGITAL_PWR_COMP_BASE_NUM];
+ struct {
+ __le32 vals[DIGITAL_PWR_COMP_VALS_NUM];
+ } sets[2][RTW89_TX_COMP_BAND_NR][BB_PATH_NUM_8922D];
} *pwr_comp;
struct rtw89_fw_elm_info *elm_info = &rtwdev->fw.elm_info;
const struct rtw89_fw_element_hdr *txcomp_elm = elm_info->tx_comp;
@@ -2259,8 +2265,12 @@ static void rtw8922d_set_digital_pwr_comp(struct rtw89_dev *rtwdev,
if (sizeof(*pwr_comp) == le32_to_cpu(txcomp_elm->size)) {
pwr_comp = (const void *)txcomp_elm->u.common.contents;
- comp_base = &pwr_comp->base;
+ comp_base = &pwr_comp->base[nss];
comp_vals = &pwr_comp->sets[nss][chan->tx_comp_band][path].vals;
+ } else if (sizeof(*pwr_comp_v1) == le32_to_cpu(txcomp_elm->size)) {
+ pwr_comp_v1 = (const void *)txcomp_elm->u.common.contents;
+ comp_base = &pwr_comp_v1->base;
+ comp_vals = &pwr_comp_v1->sets[nss][chan->tx_comp_band][path].vals;
} else if (sizeof(*pwr_comp_v0) == le32_to_cpu(txcomp_elm->size)) {
pwr_comp_v0 = (const void *)txcomp_elm->u.common.contents;
comp_base = &pwr_comp_v0->sets[nss][chan->tx_comp_band][path].base;
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 06/15] wifi: rtw89: efuse: no need to export rtw89_efuse_read_ecv_be()
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
The consumer of rtw89_efuse_read_ecv_be() is in the same ko. No need to
export it.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/efuse_be.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/efuse_be.c b/drivers/net/wireless/realtek/rtw89/efuse_be.c
index 70c1b8be662e..a716ad54fce5 100644
--- a/drivers/net/wireless/realtek/rtw89/efuse_be.c
+++ b/drivers/net/wireless/realtek/rtw89/efuse_be.c
@@ -537,4 +537,3 @@ int rtw89_efuse_read_ecv_be(struct rtw89_dev *rtwdev)
return 0;
}
-EXPORT_SYMBOL(rtw89_efuse_read_ecv_be);
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 07/15] wifi: rtw89: efuse: read thermal calibration value for RTL8922D
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
The thermal calibration value programmed in efuse is the offset to adjust
thermal value read from hardware, so that output will be accurate.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/core.h | 2 ++
drivers/net/wireless/realtek/rtw89/efuse.h | 6 ++++
drivers/net/wireless/realtek/rtw89/efuse_be.c | 29 +++++++++++++++++++
drivers/net/wireless/realtek/rtw89/mac.c | 2 ++
drivers/net/wireless/realtek/rtw89/mac.h | 11 +++++++
drivers/net/wireless/realtek/rtw89/mac_be.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 2 ++
7 files changed, 53 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
index 9a4d42b60bbb..888a09fb2a9a 100644
--- a/drivers/net/wireless/realtek/rtw89/core.h
+++ b/drivers/net/wireless/realtek/rtw89/core.h
@@ -5884,6 +5884,8 @@ struct rtw89_power_trim_info {
u8 pa_bias_trim[RF_PATH_MAX];
u8 pad_bias_trim[RF_PATH_MAX];
u8 vco_trim[RF_PATH_MAX];
+
+ s16 thermal_k;
};
enum rtw89_regd_func {
diff --git a/drivers/net/wireless/realtek/rtw89/efuse.h b/drivers/net/wireless/realtek/rtw89/efuse.h
index a14a9dfed8e8..c6415da749a3 100644
--- a/drivers/net/wireless/realtek/rtw89/efuse.h
+++ b/drivers/net/wireless/realtek/rtw89/efuse.h
@@ -16,6 +16,11 @@
#define EF_CV_MASK GENMASK(7, 4)
#define EF_CV_INV 15
+#define EFUSE_THERMAL_K_OFFSET_BE 0x17CC
+#define EFUSE_THERMAL_K_VALID_BE BIT(9)
+#define EFUSE_THERMAL_K_SIGN_BE BIT(8)
+#define EFUSE_THERMAL_K_VAL_BE GENMASK(7, 0)
+
struct rtw89_efuse_block_cfg {
u32 offset;
u32 size;
@@ -32,5 +37,6 @@ int rtw89_efuse_recognize_mss_info_v1(struct rtw89_dev *rtwdev, u8 b1, u8 b2);
int rtw89_efuse_read_fw_secure_ax(struct rtw89_dev *rtwdev);
int rtw89_efuse_read_fw_secure_be(struct rtw89_dev *rtwdev);
int rtw89_efuse_read_ecv_be(struct rtw89_dev *rtwdev);
+int rtw89_efuse_read_thermal_k_be(struct rtw89_dev *rtwdev);
#endif
diff --git a/drivers/net/wireless/realtek/rtw89/efuse_be.c b/drivers/net/wireless/realtek/rtw89/efuse_be.c
index a716ad54fce5..67036c89883f 100644
--- a/drivers/net/wireless/realtek/rtw89/efuse_be.c
+++ b/drivers/net/wireless/realtek/rtw89/efuse_be.c
@@ -537,3 +537,32 @@ int rtw89_efuse_read_ecv_be(struct rtw89_dev *rtwdev)
return 0;
}
+
+int rtw89_efuse_read_thermal_k_be(struct rtw89_dev *rtwdev)
+{
+ struct rtw89_power_trim_info *info = &rtwdev->pwr_trim;
+ u32 dump_addr = EFUSE_THERMAL_K_OFFSET_BE;
+ u8 buff[4]; /* efuse access must be multiple of 4 bytes in size */
+ bool no_k;
+ u16 val16;
+ int ret;
+
+ ret = rtw89_dump_physical_efuse_map_be(rtwdev, buff, dump_addr, 4, false);
+ if (ret)
+ return ret;
+
+ val16 = buff[0] | buff[1] << 8;
+
+ no_k = !!u16_get_bits(val16, EFUSE_THERMAL_K_VALID_BE);
+ if (no_k) {
+ info->thermal_k = 0;
+ return -ENOENT;
+ }
+
+ info->thermal_k = u16_get_bits(val16, EFUSE_THERMAL_K_VAL_BE);
+
+ if (u16_get_bits(val16, EFUSE_THERMAL_K_SIGN_BE))
+ info->thermal_k *= -1;
+
+ return 0;
+}
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index 99de1b202976..3d3f683046a7 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -1558,6 +1558,7 @@ static int rtw89_mac_power_switch(struct rtw89_dev *rtwdev, bool on)
if (!test_bit(RTW89_FLAG_PROBE_DONE, rtwdev->flags)) {
rtw89_mac_efuse_read_ecv(rtwdev);
mac->efuse_read_fw_secure(rtwdev);
+ rtw89_mac_efuse_read_thermal_k(rtwdev);
}
set_bit(RTW89_FLAG_POWERON, rtwdev->flags);
@@ -7500,6 +7501,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_ax = {
.cnv_efuse_state = rtw89_cnv_efuse_state_ax,
.efuse_read_fw_secure = rtw89_efuse_read_fw_secure_ax,
.efuse_read_ecv = NULL,
+ .efuse_read_thermal_k = NULL,
.cfg_plt = rtw89_mac_cfg_plt_ax,
.get_plt_cnt = rtw89_mac_get_plt_cnt_ax,
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
index 539061fc15e8..7256d64ea07f 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.h
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
@@ -1132,6 +1132,7 @@ struct rtw89_mac_gen_def {
int (*cnv_efuse_state)(struct rtw89_dev *rtwdev, bool idle);
int (*efuse_read_fw_secure)(struct rtw89_dev *rtwdev);
int (*efuse_read_ecv)(struct rtw89_dev *rtwdev);
+ int (*efuse_read_thermal_k)(struct rtw89_dev *rtwdev);
int (*cfg_plt)(struct rtw89_dev *rtwdev, struct rtw89_mac_ax_plt *plt);
u16 (*get_plt_cnt)(struct rtw89_dev *rtwdev, u8 band);
@@ -1735,6 +1736,16 @@ static inline int rtw89_mac_efuse_read_ecv(struct rtw89_dev *rtwdev)
return mac->efuse_read_ecv(rtwdev);
}
+static inline int rtw89_mac_efuse_read_thermal_k(struct rtw89_dev *rtwdev)
+{
+ const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
+
+ if (!mac->efuse_read_thermal_k)
+ return -ENOENT;
+
+ return mac->efuse_read_thermal_k(rtwdev);
+}
+
static inline
void rtw89_mac_fwdl_preconfig(struct rtw89_dev *rtwdev)
{
diff --git a/drivers/net/wireless/realtek/rtw89/mac_be.c b/drivers/net/wireless/realtek/rtw89/mac_be.c
index 14f1e30066e9..077ddf4f77c5 100644
--- a/drivers/net/wireless/realtek/rtw89/mac_be.c
+++ b/drivers/net/wireless/realtek/rtw89/mac_be.c
@@ -3312,6 +3312,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_be = {
.cnv_efuse_state = rtw89_cnv_efuse_state_be,
.efuse_read_fw_secure = rtw89_efuse_read_fw_secure_be,
.efuse_read_ecv = rtw89_efuse_read_ecv_be,
+ .efuse_read_thermal_k = rtw89_efuse_read_thermal_k_be,
.cfg_plt = rtw89_mac_cfg_plt_be,
.get_plt_cnt = rtw89_mac_get_plt_cnt_be,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index e8267173bd4c..8b91c552a309 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -3006,6 +3006,7 @@ static void rtw8922d_bb_cfg_txrx_path(struct rtw89_dev *rtwdev)
static u8 rtw8922d_get_thermal(struct rtw89_dev *rtwdev, enum rtw89_rf_path rf_path)
{
+ struct rtw89_power_trim_info *info = &rtwdev->pwr_trim;
u8 val;
rtw89_phy_write32_mask(rtwdev, R_TC_EN_BE4, B_TC_EN_BE4, 0x1);
@@ -3015,6 +3016,7 @@ static u8 rtw8922d_get_thermal(struct rtw89_dev *rtwdev, enum rtw89_rf_path rf_p
fsleep(100);
val = rtw89_phy_read32_mask(rtwdev, R_TC_VAL_BE4, B_TC_VAL_BE4);
+ val = clamp_t(int, val + info->thermal_k, 0, 255);
return val;
}
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 08/15] wifi: rtw89: 8922d: read default digital voltage calibration values
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
In order to lower temperature when WiFi is running, reduce the digital
voltage for the purpose.
The calibration values of digital voltage are programmed in efuse. One is
for normal use, which driver stores it into hal->thermal_prot_vmax. The
other is the minimum voltage, which is stored into hal->thermal_prot_vmin.
These two values define a range of supported voltage, which latter patch
uses them to adjust voltage depends on thermal value (temperature).
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/core.h | 7 ++
drivers/net/wireless/realtek/rtw89/efuse.h | 1 +
drivers/net/wireless/realtek/rtw89/efuse_be.c | 87 +++++++++++++++++++
drivers/net/wireless/realtek/rtw89/mac.c | 2 +
drivers/net/wireless/realtek/rtw89/mac.h | 11 +++
drivers/net/wireless/realtek/rtw89/mac_be.c | 1 +
drivers/net/wireless/realtek/rtw89/reg.h | 17 ++++
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 24 +++++
8 files changed, 150 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
index 888a09fb2a9a..7729e7d4a792 100644
--- a/drivers/net/wireless/realtek/rtw89/core.h
+++ b/drivers/net/wireless/realtek/rtw89/core.h
@@ -3661,6 +3661,8 @@ struct rtw89_sta_link {
struct rtw89_efuse {
bool valid;
bool power_k_valid;
+ bool vcore_valid;
+ bool dswr_valid;
u8 xtal_cap;
u8 addr[ETH_ALEN];
u8 rfe_type;
@@ -3670,6 +3672,8 @@ struct rtw89_efuse {
u8 bt_setting_3;
u8 sn[RTW89_EFUSE_SN_LEN];
u8 uuid[RTW89_EFUSE_UUID_LEN];
+ u8 vcore_vmax_reduce;
+ u8 dswr_vmin;
};
struct rtw89_phy_rate_pattern {
@@ -5382,6 +5386,9 @@ struct rtw89_hal {
u8 thermal_prot_th;
u8 thermal_prot_lv; /* 0 ~ RTW89_THERMAL_PROT_LV_MAX */
+ u8 thermal_prot_vmax;
+ u8 thermal_prot_vmin;
+
u8 fixed_dig_pd_th; /* v = (X(dBm) + 102)/2 */
s8 fixed_dig_cck_pd_th; /* dBm */
};
diff --git a/drivers/net/wireless/realtek/rtw89/efuse.h b/drivers/net/wireless/realtek/rtw89/efuse.h
index c6415da749a3..4eb629273ab9 100644
--- a/drivers/net/wireless/realtek/rtw89/efuse.h
+++ b/drivers/net/wireless/realtek/rtw89/efuse.h
@@ -38,5 +38,6 @@ int rtw89_efuse_read_fw_secure_ax(struct rtw89_dev *rtwdev);
int rtw89_efuse_read_fw_secure_be(struct rtw89_dev *rtwdev);
int rtw89_efuse_read_ecv_be(struct rtw89_dev *rtwdev);
int rtw89_efuse_read_thermal_k_be(struct rtw89_dev *rtwdev);
+int rtw89_efuse_read_pwr_data_be(struct rtw89_dev *rtwdev);
#endif
diff --git a/drivers/net/wireless/realtek/rtw89/efuse_be.c b/drivers/net/wireless/realtek/rtw89/efuse_be.c
index 67036c89883f..825274bd7c41 100644
--- a/drivers/net/wireless/realtek/rtw89/efuse_be.c
+++ b/drivers/net/wireless/realtek/rtw89/efuse_be.c
@@ -16,6 +16,15 @@
#define EFUSE_SEC_BE_START 0x1580
#define EFUSE_SEC_BE_SIZE 4
+#define EFUSE_VCORE_PWR_BE 0x17D6
+#define EFUSE_VCORE_PWR_BE_VALID BIT(12)
+#define EFUSE_VCORE_PWR_BE_VAL GENMASK(11, 0)
+#define SWR_DIG_MIN 860
+#define EFUSE_DIG_K_STEP 0xC
+#define EFUSE_DSWR_V0_86_BE 0x17DA
+#define EFUSE_DSWR_V0_86_BE_VALID BIT(5)
+#define EFUSE_DSWR_V0_86_BE_VAL GENMASK(4, 0)
+
static const u32 sb_sel_mgn[SB_SEL_MGN_MAX_SIZE] = {
0x8000100, 0xC000180
};
@@ -392,6 +401,17 @@ int rtw89_parse_efuse_map_be(struct rtw89_dev *rtwdev)
goto out_free;
}
+ if (rtwdev->chip->chip_id != RTL8922D)
+ goto out_free;
+
+ ret = rtw89_parse_logical_efuse_block_be(rtwdev, phy_map, phy_size,
+ RTW89_EFUSE_BLOCK_SYS);
+ if (ret) {
+ rtw89_warn(rtwdev, "failed to parse efuse logic block %d\n",
+ RTW89_EFUSE_BLOCK_SYS);
+ goto out_free;
+ }
+
out_free:
kfree(dav_phy_map);
kfree(phy_map);
@@ -566,3 +586,70 @@ int rtw89_efuse_read_thermal_k_be(struct rtw89_dev *rtwdev)
return 0;
}
+
+static int rtw89_efuse_read_pwr_data_vcore_be(struct rtw89_dev *rtwdev)
+{
+ struct rtw89_efuse *efuse = &rtwdev->efuse;
+ u32 dump_addr;
+ u8 buff[4]; /* efuse access must 4 bytes align */
+ u16 val16;
+ int ret;
+
+ dump_addr = ALIGN_DOWN(EFUSE_VCORE_PWR_BE, 4);
+
+ ret = rtw89_dump_physical_efuse_map_be(rtwdev, buff, dump_addr, 4, false);
+ if (ret)
+ return ret;
+
+ val16 = buff[EFUSE_VCORE_PWR_BE - dump_addr] |
+ buff[EFUSE_VCORE_PWR_BE - dump_addr + 1] << 8;
+
+ if (val16 & EFUSE_VCORE_PWR_BE_VALID)
+ return 0;
+
+ efuse->vcore_valid = true;
+ efuse->vcore_vmax_reduce =
+ (u16_get_bits(val16, EFUSE_VCORE_PWR_BE_VAL) - SWR_DIG_MIN) /
+ EFUSE_DIG_K_STEP;
+
+ return 0;
+}
+
+static int rtw89_efuse_read_pwr_data_dswr_be(struct rtw89_dev *rtwdev)
+{
+ struct rtw89_efuse *efuse = &rtwdev->efuse;
+ u32 dump_addr;
+ u8 buff[4]; /* efuse access must 4 bytes align */
+ u8 val8;
+ int ret;
+
+ dump_addr = ALIGN_DOWN(EFUSE_DSWR_V0_86_BE, 4);
+
+ ret = rtw89_dump_physical_efuse_map_be(rtwdev, buff, dump_addr, 4, false);
+ if (ret)
+ return ret;
+
+ val8 = buff[EFUSE_DSWR_V0_86_BE - dump_addr];
+
+ if (val8 & EFUSE_DSWR_V0_86_BE_VALID)
+ return 0;
+
+ efuse->dswr_valid = true;
+ efuse->dswr_vmin = u8_get_bits(val8, EFUSE_DSWR_V0_86_BE_VAL);
+
+ return 0;
+}
+
+int rtw89_efuse_read_pwr_data_be(struct rtw89_dev *rtwdev)
+{
+ int ret;
+
+ if (rtwdev->chip->chip_id != RTL8922D)
+ return 0;
+
+ ret = rtw89_efuse_read_pwr_data_vcore_be(rtwdev);
+ if (ret)
+ return ret;
+
+ return rtw89_efuse_read_pwr_data_dswr_be(rtwdev);
+}
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index 3d3f683046a7..f5e55e6be119 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -1559,6 +1559,7 @@ static int rtw89_mac_power_switch(struct rtw89_dev *rtwdev, bool on)
rtw89_mac_efuse_read_ecv(rtwdev);
mac->efuse_read_fw_secure(rtwdev);
rtw89_mac_efuse_read_thermal_k(rtwdev);
+ rtw89_mac_efuse_read_pwr_data(rtwdev);
}
set_bit(RTW89_FLAG_POWERON, rtwdev->flags);
@@ -7502,6 +7503,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_ax = {
.efuse_read_fw_secure = rtw89_efuse_read_fw_secure_ax,
.efuse_read_ecv = NULL,
.efuse_read_thermal_k = NULL,
+ .efuse_read_pwr_data = NULL,
.cfg_plt = rtw89_mac_cfg_plt_ax,
.get_plt_cnt = rtw89_mac_get_plt_cnt_ax,
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
index 7256d64ea07f..8bbe49492d4c 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.h
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
@@ -1133,6 +1133,7 @@ struct rtw89_mac_gen_def {
int (*efuse_read_fw_secure)(struct rtw89_dev *rtwdev);
int (*efuse_read_ecv)(struct rtw89_dev *rtwdev);
int (*efuse_read_thermal_k)(struct rtw89_dev *rtwdev);
+ int (*efuse_read_pwr_data)(struct rtw89_dev *rtwdev);
int (*cfg_plt)(struct rtw89_dev *rtwdev, struct rtw89_mac_ax_plt *plt);
u16 (*get_plt_cnt)(struct rtw89_dev *rtwdev, u8 band);
@@ -1746,6 +1747,16 @@ static inline int rtw89_mac_efuse_read_thermal_k(struct rtw89_dev *rtwdev)
return mac->efuse_read_thermal_k(rtwdev);
}
+static inline int rtw89_mac_efuse_read_pwr_data(struct rtw89_dev *rtwdev)
+{
+ const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
+
+ if (!mac->efuse_read_pwr_data)
+ return -ENOENT;
+
+ return mac->efuse_read_pwr_data(rtwdev);
+}
+
static inline
void rtw89_mac_fwdl_preconfig(struct rtw89_dev *rtwdev)
{
diff --git a/drivers/net/wireless/realtek/rtw89/mac_be.c b/drivers/net/wireless/realtek/rtw89/mac_be.c
index 077ddf4f77c5..0fe317929b1b 100644
--- a/drivers/net/wireless/realtek/rtw89/mac_be.c
+++ b/drivers/net/wireless/realtek/rtw89/mac_be.c
@@ -3313,6 +3313,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_be = {
.efuse_read_fw_secure = rtw89_efuse_read_fw_secure_be,
.efuse_read_ecv = rtw89_efuse_read_ecv_be,
.efuse_read_thermal_k = rtw89_efuse_read_thermal_k_be,
+ .efuse_read_pwr_data = rtw89_efuse_read_pwr_data_be,
.cfg_plt = rtw89_mac_cfg_plt_be,
.get_plt_cnt = rtw89_mac_get_plt_cnt_be,
diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h
index 3908f9729736..72f7b80fe1fb 100644
--- a/drivers/net/wireless/realtek/rtw89/reg.h
+++ b/drivers/net/wireless/realtek/rtw89/reg.h
@@ -4573,6 +4573,23 @@
#define R_BE_UDM2 0x01F8
#define B_BE_UDM2_EPC_RA_MASK GENMASK(31, 0)
+#define R_BE_SPS_DIG_ON_CTRL0 0x0200
+#define B_BE_PFMCMP_IQ BIT(31)
+#define B_BE_FREQ_MASK GENMASK(30, 27)
+#define B_BE_OFF_END_SEL BIT(26)
+#define B_BE_POW_MINOFF_L BIT(25)
+#define B_BE_REG_BYPASS_L BIT(24)
+#define B_BE_VREFPFM_L_MASK GENMASK(23, 19)
+#define B_BE_REG_ZCDC_H_MASK GENMASK(18, 17)
+#define B_BE_FORCE_ZCD_BIAS BIT(16)
+#define B_BE_ZCD_SDZ_L_MASK GENMASK(15, 14)
+#define B_BE_ISAW_MASK GENMASK(13, 10)
+#define B_BE_SS_DIVSEL_MASK GENMASK(9, 8)
+#define B_BE_REG_BG_H BIT(7)
+#define B_BE_FPWM_L1 BIT(6)
+#define B_BE_POW_ZCD_L BIT(5)
+#define B_BE_PWMTUNE_MASK GENMASK(4, 0)
+
#define R_BE_SPS_DIG_ON_CTRL1 0x0204
#define B_BE_SN_N_L_MASK GENMASK(31, 28)
#define B_BE_SP_N_L_MASK GENMASK(27, 24)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 8b91c552a309..a6693c8413d5 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -881,6 +881,28 @@ static int rtw8922d_read_efuse_rf(struct rtw89_dev *rtwdev, u8 *log_map)
return 0;
}
+static int rtw8922d_read_sys(struct rtw89_dev *rtwdev, u8 *log_map)
+{
+ struct rtw89_efuse *efuse = &rtwdev->efuse;
+ struct rtw89_hal *hal = &rtwdev->hal;
+ u16 digk;
+ u8 vmin;
+
+ digk = log_map[0x200] | log_map[0x201] << 8;
+ hal->thermal_prot_vmax = u16_get_bits(digk, B_BE_PWMTUNE_MASK);
+
+ if (efuse->dswr_valid)
+ vmin = efuse->dswr_vmin;
+ else if (efuse->vcore_valid)
+ vmin = hal->thermal_prot_vmax - efuse->vcore_vmax_reduce;
+ else
+ vmin = hal->thermal_prot_vmax - 3;
+
+ hal->thermal_prot_vmin = vmin;
+
+ return 0;
+}
+
static int rtw8922d_read_efuse(struct rtw89_dev *rtwdev, u8 *log_map,
enum rtw89_efuse_block block)
{
@@ -891,6 +913,8 @@ static int rtw8922d_read_efuse(struct rtw89_dev *rtwdev, u8 *log_map,
return rtw8922d_read_efuse_usb(rtwdev, log_map);
case RTW89_EFUSE_BLOCK_RF:
return rtw8922d_read_efuse_rf(rtwdev, log_map);
+ case RTW89_EFUSE_BLOCK_SYS:
+ return rtw8922d_read_sys(rtwdev, log_map);
default:
return 0;
}
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 09/15] wifi: rtw89: add thermal protect by digital voltage reduction
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
The temperature is rising when WiFi does high throughput, and reduce
voltage is a way to ease temperature.
The existing method to do thermal protect is to reduce TX duty, which
can affect throughput obviously. Before doing reduce TX duty (with -20
thermal value offset), driver does voltage reduction first, which doesn't
affect throughput but lower power consumption.
The voltage gram of register is 0.01 voltage, and the suggested maximum
reduction is 6 grams, which driver defines 6 as maximum voltage level.
When thermal value is over threshold, driver will try to adjust level and
corresponding register value. It should be adjust grams one by one with
additional 50 ms delay to ensure hardware work properly.
A note that the voltage must reset to normal value before entering power
save mode, otherwise WiFi card might get lost. Since it takes 50 ms delay
for each gram to adjust voltage, we stop to enter power save if protect
level is not zero.
By the way, adjust thermal threshold to 0xB4 as desired.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/core.c | 9 +++++
drivers/net/wireless/realtek/rtw89/core.h | 4 ++
drivers/net/wireless/realtek/rtw89/debug.c | 1 +
drivers/net/wireless/realtek/rtw89/mac.c | 3 ++
drivers/net/wireless/realtek/rtw89/mac.h | 24 ++++++++++++
drivers/net/wireless/realtek/rtw89/mac_be.c | 38 +++++++++++++++++++
drivers/net/wireless/realtek/rtw89/phy.c | 27 +++++++++++++
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 2 +-
8 files changed, 107 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 9dbf01e82383..74b9aa8398ff 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -5236,9 +5236,18 @@ static bool rtw89_traffic_stats_track(struct rtw89_dev *rtwdev)
static void rtw89_enter_lps_track(struct rtw89_dev *rtwdev,
enum rtw89_tfc_interval interval)
{
+ struct rtw89_hal *hal = &rtwdev->hal;
struct ieee80211_vif *vif;
struct rtw89_vif *rtwvif;
+ /*
+ * If vcore level is set, temperature is high and voltage is low. As
+ * entering power save must reset voltage to default, avoid power save
+ * until vcore decreases to zero resulting from temperature becomes low.
+ */
+ if (hal->thermal_prot_vlv)
+ return;
+
rtw89_for_each_rtwvif(rtwdev, rtwvif) {
if (rtwvif->tdls_peer)
continue;
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
index 7729e7d4a792..2b388407bf6e 100644
--- a/drivers/net/wireless/realtek/rtw89/core.h
+++ b/drivers/net/wireless/realtek/rtw89/core.h
@@ -5344,10 +5344,13 @@ enum rtw89_dm_type {
RTW89_DM_HW_SCAN,
RTW89_DM_INACTIVE_PS,
RTW89_DM_DIG_PD,
+ RTW89_DM_VCORE,
};
#define RTW89_THERMAL_PROT_LV_MAX 5
#define RTW89_THERMAL_PROT_STEP 5 /* -5% for each level */
+#define RTW89_THERMAL_PROT_VLV_MAX 6
+#define RTW89_THERMAL_PROT_VLV_TH_OFFSET 20
struct rtw89_hal {
u32 rx_fltr;
@@ -5388,6 +5391,7 @@ struct rtw89_hal {
u8 thermal_prot_vmax;
u8 thermal_prot_vmin;
+ u8 thermal_prot_vlv; /* 0 ~ RTW89_THERMAL_PROT_VLV_MAX (6) */
u8 fixed_dig_pd_th; /* v = (X(dBm) + 102)/2 */
s8 fixed_dig_cck_pd_th; /* dBm */
diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wireless/realtek/rtw89/debug.c
index 5786120602ab..e42dc5707576 100644
--- a/drivers/net/wireless/realtek/rtw89/debug.c
+++ b/drivers/net/wireless/realtek/rtw89/debug.c
@@ -4778,6 +4778,7 @@ static const struct rtw89_disabled_dm_info {
DM_INFO(HW_SCAN),
DM_INFO(INACTIVE_PS),
DM_INFO(DIG_PD),
+ DM_INFO(VCORE),
};
static ssize_t
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index f5e55e6be119..6e3da5e4a1b3 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -1602,6 +1602,8 @@ int rtw89_mac_pwr_on(struct rtw89_dev *rtwdev)
void rtw89_mac_pwr_off(struct rtw89_dev *rtwdev)
{
+ rtw89_mac_set_vcore_reset(rtwdev);
+
rtw89_mac_power_switch(rtwdev, false);
}
@@ -7477,6 +7479,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_ax = {
.cfg_ppdu_status = rtw89_mac_cfg_ppdu_status_ax,
.cfg_phy_rpt = NULL,
.set_edcca_mode = NULL,
+ .set_vcore_cfg = NULL,
.dle_mix_cfg = dle_mix_cfg_ax,
.chk_dle_rdy = chk_dle_rdy_ax,
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
index 8bbe49492d4c..f85c14ca0f35 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.h
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
@@ -1100,6 +1100,7 @@ struct rtw89_mac_gen_def {
int (*cfg_ppdu_status)(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable);
void (*cfg_phy_rpt)(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable);
void (*set_edcca_mode)(struct rtw89_dev *rtwdev, u8 mac_idx, bool normal);
+ void (*set_vcore_cfg)(struct rtw89_dev *rtwdev, u8 vlv);
int (*dle_mix_cfg)(struct rtw89_dev *rtwdev, const struct rtw89_dle_mem *cfg);
int (*chk_dle_rdy)(struct rtw89_dev *rtwdev, bool wde_or_ple);
@@ -1459,6 +1460,29 @@ void rtw89_mac_set_edcca_mode(struct rtw89_dev *rtwdev, u8 mac_idx, bool normal)
mac->set_edcca_mode(rtwdev, mac_idx, normal);
}
+static inline
+void rtw89_mac_set_vcore_cfg(struct rtw89_dev *rtwdev, u8 vlv)
+{
+ const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
+
+ if (!mac->set_vcore_cfg)
+ return;
+
+ mac->set_vcore_cfg(rtwdev, vlv);
+}
+
+static inline
+void rtw89_mac_set_vcore_reset(struct rtw89_dev *rtwdev)
+{
+ struct rtw89_hal *hal = &rtwdev->hal;
+
+ if (hal->thermal_prot_vlv == 0)
+ return;
+
+ hal->thermal_prot_vlv = 0;
+ rtw89_mac_set_vcore_cfg(rtwdev, 0);
+}
+
static inline
void rtw89_mac_set_edcca_mode_bands(struct rtw89_dev *rtwdev, bool normal)
{
diff --git a/drivers/net/wireless/realtek/rtw89/mac_be.c b/drivers/net/wireless/realtek/rtw89/mac_be.c
index 0fe317929b1b..4bdf20b7ba6d 100644
--- a/drivers/net/wireless/realtek/rtw89/mac_be.c
+++ b/drivers/net/wireless/realtek/rtw89/mac_be.c
@@ -2676,6 +2676,43 @@ void rtw89_mac_set_edcca_mode_be(struct rtw89_dev *rtwdev, u8 mac_idx, bool norm
}
}
+static
+void rtw89_mac_set_vcore_cfg_be(struct rtw89_dev *rtwdev, u8 vlv)
+{
+ struct rtw89_hal *hal = &rtwdev->hal;
+ u32 val32;
+ u8 target;
+ u8 vpwm;
+ int i;
+
+ if (rtwdev->chip->chip_id != RTL8922D)
+ return;
+
+ target = clamp(hal->thermal_prot_vmax - vlv,
+ hal->thermal_prot_vmin, hal->thermal_prot_vmax);
+
+ val32 = rtw89_read32(rtwdev, R_BE_SPS_DIG_ON_CTRL0);
+ vpwm = u32_get_bits(val32, B_BE_PWMTUNE_MASK);
+ val32 &= ~B_BE_PWMTUNE_MASK;
+
+ if (vpwm == target)
+ return;
+
+ for (i = 0; i < RTW89_THERMAL_PROT_VLV_MAX; i++) {
+ if (vpwm > target)
+ vpwm--;
+ else
+ vpwm++;
+
+ rtw89_write32(rtwdev, R_BE_SPS_DIG_ON_CTRL0, val32 | vpwm);
+
+ if (vpwm == target)
+ break;
+
+ mdelay(50);
+ }
+}
+
static
int rtw89_mac_cfg_ppdu_status_be(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable)
{
@@ -3287,6 +3324,7 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_be = {
.cfg_ppdu_status = rtw89_mac_cfg_ppdu_status_be,
.cfg_phy_rpt = rtw89_mac_cfg_phy_rpt_be,
.set_edcca_mode = rtw89_mac_set_edcca_mode_be,
+ .set_vcore_cfg = rtw89_mac_set_vcore_cfg_be,
.dle_mix_cfg = dle_mix_cfg_be,
.chk_dle_rdy = chk_dle_rdy_be,
diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
index 981c7f02271a..dcd54be58a33 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.c
+++ b/drivers/net/wireless/realtek/rtw89/phy.c
@@ -5718,6 +5718,32 @@ static void rtw89_phy_antdiv_init(struct rtw89_dev *rtwdev)
rtw89_phy_antdiv_reg_init(rtwdev);
}
+static void rtw89_phy_thermal_protect_vcore(struct rtw89_dev *rtwdev)
+{
+ struct rtw89_phy_stat *phystat = &rtwdev->phystat;
+ struct rtw89_hal *hal = &rtwdev->hal;
+ bool vcore_enabled = !!hal->thermal_prot_vmax;
+ u8 th_max = phystat->last_thermal_max;
+ u8 vlv = hal->thermal_prot_vlv;
+ u8 prot_th;
+
+ if (!vcore_enabled || (hal->disabled_dm_bitmap & BIT(RTW89_DM_VCORE)))
+ return;
+
+ prot_th = hal->thermal_prot_th - RTW89_THERMAL_PROT_VLV_TH_OFFSET;
+ if (th_max > prot_th && vlv < RTW89_THERMAL_PROT_VLV_MAX)
+ vlv++;
+ else if (th_max < prot_th - 2 && vlv > 0)
+ vlv--;
+ else
+ return;
+
+ rtw89_debug(rtwdev, RTW89_DBG_RFK_TRACK, "thermal protection vlv=%d\n", vlv);
+
+ hal->thermal_prot_vlv = vlv;
+ rtw89_mac_set_vcore_cfg(rtwdev, vlv);
+}
+
static void rtw89_phy_thermal_protect(struct rtw89_dev *rtwdev)
{
struct rtw89_phy_stat *phystat = &rtwdev->phystat;
@@ -6186,6 +6212,7 @@ void rtw89_phy_stat_track(struct rtw89_dev *rtwdev)
struct rtw89_bb_ctx *bb;
rtw89_phy_stat_thermal_update(rtwdev);
+ rtw89_phy_thermal_protect_vcore(rtwdev);
rtw89_phy_thermal_protect(rtwdev);
rtw89_phy_stat_rssi_update(rtwdev);
rtw89_phy_stat_update(rtwdev);
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index a6693c8413d5..36b9b529195d 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -3451,7 +3451,7 @@ const struct rtw89_chip_info rtw8922d_chip_info = {
.wde_qempty_acq_grpnum = 8,
.wde_qempty_mgq_grpsel = 8,
.rf_base_addr = {0x3e000, 0x3f000},
- .thermal_th = {0xac, 0xad},
+ .thermal_th = {0xac, 0xb4},
.pwr_on_seq = NULL,
.pwr_off_seq = NULL,
.bb_table = NULL,
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 10/15] wifi: rtw89: 8922d: set ANA CLK enter to 500KHz
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
To power save, change the clock of ANA hardware from 12MHz to 500KHz.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/mac.h | 1 +
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 13 +++++++++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
index f85c14ca0f35..a5f1694af91a 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.h
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
@@ -1680,6 +1680,7 @@ enum rtw89_mac_xtal_si_offset {
XTAL_SI_PWR_CUT = 0x10,
#define XTAL_SI_SMALL_PWR_CUT BIT(0)
#define XTAL_SI_BIG_PWR_CUT BIT(1)
+ XTAL_SI_AONLDO_CTRL = 0x10,
XTAL_SI_XTAL_DRV = 0x15,
#define XTAL_SI_DRV_LATCH BIT(4)
XTAL_SI_XTAL_PLL = 0x16,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 36b9b529195d..8ca07aeb377a 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -535,6 +535,19 @@ static int rtw8922d_pwr_on_func(struct rtw89_dev *rtwdev)
rtw89_write32_set(rtwdev, R_BE_SYS_PW_CTRL, B_BE_EN_WLON);
rtw89_write32_set(rtwdev, R_BE_WLRESUME_CTRL, B_BE_LPSROP_CMAC0 |
B_BE_LPSROP_CMAC1);
+
+ if (hal->aid == RTL8922D_AID7102) {
+ ret = rtw89_mac_write_xtal_si(rtwdev, XTAL_SI_AONLDO_CTRL, 0, 0x20);
+ if (ret)
+ return ret;
+
+ udelay(1);
+
+ ret = rtw89_mac_write_xtal_si(rtwdev, XTAL_SI_AONLDO_CTRL, 0, 0x40);
+ if (ret)
+ return ret;
+ }
+
rtw89_write32_set(rtwdev, R_BE_SYS_PW_CTRL, B_BE_APFN_ONMAC);
ret = read_poll_timeout(rtw89_read32, val32, !(val32 & B_BE_APFN_ONMAC),
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 11/15] wifi: rtw89: 8922d: update scaling factor for RX path
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
Update the per-MCS calibration values of RX scaling factors on RX path
(1R or 2R) for BCC and LDPC coding schemes.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/reg.h | 5 ++++
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 26 +++++++++++--------
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h
index 72f7b80fe1fb..2caefb929199 100644
--- a/drivers/net/wireless/realtek/rtw89/reg.h
+++ b/drivers/net/wireless/realtek/rtw89/reg.h
@@ -11002,6 +11002,11 @@
#define R_RX_LDPC02_BE4 0x26834
#define B_RX_LDPC10_BE4 GENMASK(17, 12)
#define B_RX_LDPC11_BE4 GENMASK(23, 18)
+#define B_RX_LDPC12_BE4 GENMASK(29, 24)
+#define R_RX_LDPC03_BE4 0x26838
+#define B_RX_LDPC13_BE4 GENMASK(5, 0)
+#define B_RX_LDPC02_BE4 GENMASK(23, 18)
+#define B_RX_LDPC03_BE4 GENMASK(29, 24)
#define R_RX_LDPC00_BE4 0x2683C
#define B_RX_LDPC04_BE4 GENMASK(5, 0)
#define B_RX_LDPC05_BE4 GENMASK(11, 6)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 8ca07aeb377a..768434db14c6 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -2230,38 +2230,42 @@ static int rtw8922d_ctrl_rx_path_tmac(struct rtw89_dev *rtwdev,
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS6_BE4, 3, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS7_BE4, 7, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS8_BE4, 2, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS9_BE4, 2, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN00_BE4, B_RX_AWGN04_BE4, 4, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN00_BE4, B_RX_AWGN07_BE4, 2, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN01_BE4, B_RX_AWGN09_BE4, 0, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN02_BE4, B_RX_AWGN11_BE4, 1, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC04_BE4, 8, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC05_BE4, 5, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC06_BE4, 3, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC07_BE4, 5, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC08_BE4, 1, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC01_BE4, B_RX_LDPC09_BE4, 2, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC10_BE4, 4, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC11_BE4, 2, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC03_BE4, B_RX_LDPC02_BE4, 0x6, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC03_BE4, B_RX_LDPC03_BE4, 0xf, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC04_BE4, 0x10, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC05_BE4, 0xa, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC06_BE4, 0x8, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC07_BE4, 0x14, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC01_BE4, B_RX_LDPC09_BE4, 0x14, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC10_BE4, 0xc, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC11_BE4, 0xb, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC12_BE4, 0x14, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC03_BE4, B_RX_LDPC13_BE4, 0x2d, phy_idx);
} else {
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC0_BE4, B_RXCH_MCS4_BE4, 13, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS5_BE4, 15, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS6_BE4, 6, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS7_BE4, 15, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS8_BE4, 4, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RXCH_BCC1_BE4, B_RXCH_MCS9_BE4, 15, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN00_BE4, B_RX_AWGN04_BE4, 9, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN00_BE4, B_RX_AWGN07_BE4, 3, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN01_BE4, B_RX_AWGN09_BE4, 1, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_AWGN02_BE4, B_RX_AWGN11_BE4, 0, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC03_BE4, B_RX_LDPC02_BE4, 0x3, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC03_BE4, B_RX_LDPC03_BE4, 0x9, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC04_BE4, 9, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC05_BE4, 8, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC06_BE4, 6, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC07_BE4, 16, phy_idx);
- rtw89_phy_write32_idx(rtwdev, R_RX_LDPC00_BE4, B_RX_LDPC08_BE4, 4, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC01_BE4, B_RX_LDPC09_BE4, 9, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC10_BE4, 9, phy_idx);
rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC11_BE4, 7, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC02_BE4, B_RX_LDPC12_BE4, 0x17, phy_idx);
+ rtw89_phy_write32_idx(rtwdev, R_RX_LDPC03_BE4, B_RX_LDPC13_BE4, 0x1a, phy_idx);
}
return 0;
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 12/15] wifi: rtw89: 8852a: fix RSSI report when average beacon RSSI is not ready
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
From: Chih-Kang Chang <gary.chang@realtek.com>
8852A uses the average beacon RSSI to smooth the RSSI. However, before
the average beacon RSSI is available, the RSSI should use the PPDU
status RSSI of the received packet to avoid reporting the RSSI as -110 dBm.
Fixes: f0f3bf4b370c ("wifi: rtw89: 8852a: report average RSSI to avoid unnecessary scanning")
Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
index a5a06ae5c446..61b6b76c5bdb 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
@@ -2212,7 +2212,7 @@ static void rtw8852a_query_ppdu(struct rtw89_dev *rtwdev,
u8 raw;
if (!status->signal) {
- if (phy_ppdu->to_self)
+ if (phy_ppdu->to_self && ewma_rssi_read(&bb->bcn_rssi))
raw = ewma_rssi_read(&bb->bcn_rssi);
else
raw = max(rx_power[RF_PATH_A], rx_power[RF_PATH_B]);
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 13/15] wifi: rtw89: phy: add NCTL check for WiFi 7 chips
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
Initialize NCTL hardware and check the state before downloading NCTL.
Otherwise, the following RF calibrations relying on NCTL may fail.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/phy.c | 1 +
drivers/net/wireless/realtek/rtw89/phy.h | 6 +++
drivers/net/wireless/realtek/rtw89/phy_be.c | 41 +++++++++++++++++++++
drivers/net/wireless/realtek/rtw89/reg.h | 6 +++
4 files changed, 54 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
index dcd54be58a33..30d5741da87e 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.c
+++ b/drivers/net/wireless/realtek/rtw89/phy.c
@@ -9010,6 +9010,7 @@ const struct rtw89_phy_gen_def rtw89_phy_gen_ax = {
.physts = &rtw89_physts_regs_ax,
.cfo = &rtw89_cfo_regs_ax,
.bb_wrap = NULL,
+ .nctl = NULL,
.phy0_phy1_offset = rtw89_phy0_phy1_offset_ax,
.config_bb_gain = rtw89_phy_config_bb_gain_ax,
.preinit_rf_nctl = rtw89_phy_preinit_rf_nctl_ax,
diff --git a/drivers/net/wireless/realtek/rtw89/phy.h b/drivers/net/wireless/realtek/rtw89/phy.h
index 532232892831..e31034377b54 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.h
+++ b/drivers/net/wireless/realtek/rtw89/phy.h
@@ -502,6 +502,11 @@ struct rtw89_bb_wrap_regs {
u32 pwr_macid_path;
};
+struct rtw89_nctl_regs {
+ u32 cfg;
+ u32 rw;
+};
+
enum rtw89_bandwidth_section_num_ax {
RTW89_BW20_SEC_NUM_AX = 8,
RTW89_BW40_SEC_NUM_AX = 4,
@@ -679,6 +684,7 @@ struct rtw89_phy_gen_def {
const struct rtw89_physts_regs *physts;
const struct rtw89_cfo_regs *cfo;
const struct rtw89_bb_wrap_regs *bb_wrap;
+ const struct rtw89_nctl_regs *nctl;
u32 (*phy0_phy1_offset)(struct rtw89_dev *rtwdev, u32 addr);
void (*config_bb_gain)(struct rtw89_dev *rtwdev,
const struct rtw89_reg2_def *reg,
diff --git a/drivers/net/wireless/realtek/rtw89/phy_be.c b/drivers/net/wireless/realtek/rtw89/phy_be.c
index ac4ce30445b3..2187b448fe75 100644
--- a/drivers/net/wireless/realtek/rtw89/phy_be.c
+++ b/drivers/net/wireless/realtek/rtw89/phy_be.c
@@ -225,6 +225,16 @@ static const struct rtw89_bb_wrap_regs rtw89_bb_wrap_regs_be_v1 = {
.pwr_macid_path = R_BE_PWR_MACID_PATH_BASE_V1,
};
+static const struct rtw89_nctl_regs rtw89_nctl_regs_be = {
+ .cfg = R_NCTL_CFG,
+ .rw = R_NCTL_RW,
+};
+
+static const struct rtw89_nctl_regs rtw89_nctl_regs_be_v1 = {
+ .cfg = R_NCTL_CFG_BE4,
+ .rw = R_NCTL_RW_BE4,
+};
+
static u32 rtw89_phy0_phy1_offset_be(struct rtw89_dev *rtwdev, u32 addr)
{
u32 phy_page = addr >> 8;
@@ -440,6 +450,28 @@ static void rtw89_phy_config_bb_gain_be(struct rtw89_dev *rtwdev,
}
}
+static void rtw89_phy_preinit_rf_nctl_check_be(struct rtw89_dev *rtwdev)
+{
+ const struct rtw89_phy_gen_def *phy = rtwdev->chip->phy_def;
+ const struct rtw89_nctl_regs *nctl = phy->nctl;
+ int poll;
+ u32 val;
+
+ rtw89_phy_write32(rtwdev, nctl->cfg, B_NCTL_CHK_EN);
+
+ for (poll = 0; poll < 10000; poll++) {
+ rtw89_phy_write32(rtwdev, nctl->rw, B_NCTL_CHECK);
+
+ fsleep(10);
+
+ val = rtw89_phy_read32(rtwdev, nctl->rw);
+ if (val == B_NCTL_CHECK)
+ return;
+ }
+
+ rtw89_warn(rtwdev, "NCTL INIT check 0x%x[2]TIMEOUT!\n", nctl->rw);
+}
+
static void rtw89_phy_preinit_rf_nctl_be(struct rtw89_dev *rtwdev)
{
rtw89_phy_write32_mask(rtwdev, R_GOTX_IQKDPK_C0, B_GOTX_IQKDPK, 0x3);
@@ -456,6 +488,11 @@ static void rtw89_phy_preinit_rf_nctl_be(struct rtw89_dev *rtwdev)
rtw89_phy_write32_mask(rtwdev, R_IQK_DPK_RST_C1, B_IQK_DPK_RST, 0x1);
rtw89_phy_write32_mask(rtwdev, R_TXRFC_C1, B_TXRFC_RST, 0x1);
}
+
+ rtw89_phy_write32_mask(rtwdev, R_TX_COLLISION_T2R_ST, B_RX_CFIR_PATH_EN, 0x1);
+ rtw89_phy_write32_mask(rtwdev, R_TX_COLLISION_T2R_ST, B_RX_CFIR_PATH, 0x3);
+
+ rtw89_phy_preinit_rf_nctl_check_be(rtwdev);
}
static void rtw89_phy_preinit_rf_nctl_be_v1(struct rtw89_dev *rtwdev)
@@ -466,6 +503,8 @@ static void rtw89_phy_preinit_rf_nctl_be_v1(struct rtw89_dev *rtwdev)
rtw89_phy_write32_mask(rtwdev, R_IQK_DPK_RST_BE4, B_IQK_DPK_RST, 0x1);
rtw89_phy_write32_mask(rtwdev, R_IQK_DPK_PRST_BE4, B_IQK_DPK_PRST, 0x1);
rtw89_phy_write32_mask(rtwdev, R_IQK_DPK_PRST_C1_BE4, B_IQK_DPK_PRST, 0x1);
+
+ rtw89_phy_preinit_rf_nctl_check_be(rtwdev);
}
static u32 rtw89_phy_bb_wrap_flush_addr(struct rtw89_dev *rtwdev, u32 addr)
@@ -1905,6 +1944,7 @@ const struct rtw89_phy_gen_def rtw89_phy_gen_be = {
.physts = &rtw89_physts_regs_be,
.cfo = &rtw89_cfo_regs_be,
.bb_wrap = &rtw89_bb_wrap_regs_be,
+ .nctl = &rtw89_nctl_regs_be,
.phy0_phy1_offset = rtw89_phy0_phy1_offset_be,
.config_bb_gain = rtw89_phy_config_bb_gain_be,
.preinit_rf_nctl = rtw89_phy_preinit_rf_nctl_be,
@@ -1930,6 +1970,7 @@ const struct rtw89_phy_gen_def rtw89_phy_gen_be_v1 = {
.physts = &rtw89_physts_regs_be_v1,
.cfo = &rtw89_cfo_regs_be_v1,
.bb_wrap = &rtw89_bb_wrap_regs_be_v1,
+ .nctl = &rtw89_nctl_regs_be_v1,
.phy0_phy1_offset = rtw89_phy0_phy1_offset_be_v1,
.config_bb_gain = rtw89_phy_config_bb_gain_be,
.preinit_rf_nctl = rtw89_phy_preinit_rf_nctl_be_v1,
diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h
index 2caefb929199..4d2117de798b 100644
--- a/drivers/net/wireless/realtek/rtw89/reg.h
+++ b/drivers/net/wireless/realtek/rtw89/reg.h
@@ -9022,6 +9022,8 @@
#define B_IQK_DPK_RST BIT(0)
#define R_TX_COLLISION_T2R_ST 0x0C70
#define B_TX_COLLISION_T2R_ST_M GENMASK(25, 20)
+#define B_RX_CFIR_PATH_EN BIT(9)
+#define B_RX_CFIR_PATH GENMASK(6, 5)
#define B_TXRX_FORCE_VAL GENMASK(9, 0)
#define R_TXGATING 0x0C74
#define B_TXGATING_EN BIT(4)
@@ -10115,6 +10117,8 @@
#define R_S1_DACKQ8 0x7E98
#define B_S1_DACKQ8_K GENMASK(15, 8)
#define R_NCTL_CFG 0x8000
+#define R_NCTL_CFG_BE4 0x38000
+#define B_NCTL_CHK_EN BIT(3)
#define B_NCTL_CFG_SPAGE GENMASK(2, 1)
#define R_NCTL_RPT 0x8008
#define B_NCTL_RPT_FLG BIT(26)
@@ -10148,6 +10152,8 @@
#define R_KIP_MOD 0x8078
#define B_KIP_MOD GENMASK(19, 0)
#define R_NCTL_RW 0x8080
+#define R_NCTL_RW_BE4 0x38080
+#define B_NCTL_CHECK BIT(2)
#define R_KIP_SYSCFG 0x8088
#define R_KIP_CLK 0x808C
#define R_DPK_IDL 0x809C
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 14/15] wifi: rtw89: unify access struct of TX power track tables
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
There are two struct to access TX power track tables. One is to access
driver built-in tables, and the other one is to access the tables in fw
element. As we are going to remove the built-in tables from driver, unify
to use the struct as fw element style.
The precedence is to use tables in fw element if present, and then
built-in tables.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/phy.h | 19 ----
.../net/wireless/realtek/rtw89/rtw8851b_rfk.c | 20 ++--
.../wireless/realtek/rtw89/rtw8851b_table.c | 15 +--
.../wireless/realtek/rtw89/rtw8851b_table.h | 2 +-
.../net/wireless/realtek/rtw89/rtw8852a_rfk.c | 36 ++++---
.../wireless/realtek/rtw89/rtw8852a_table.c | 27 ++---
.../wireless/realtek/rtw89/rtw8852a_table.h | 2 +-
.../net/wireless/realtek/rtw89/rtw8852b_rfk.c | 36 ++++---
.../wireless/realtek/rtw89/rtw8852b_table.c | 27 ++---
.../wireless/realtek/rtw89/rtw8852b_table.h | 2 +-
.../net/wireless/realtek/rtw89/rtw8852c_rfk.c | 101 +++++++-----------
.../wireless/realtek/rtw89/rtw8852c_table.c | 35 +++---
.../wireless/realtek/rtw89/rtw8852c_table.h | 2 +-
13 files changed, 146 insertions(+), 178 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/phy.h b/drivers/net/wireless/realtek/rtw89/phy.h
index e31034377b54..b0c82bac72f0 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.h
+++ b/drivers/net/wireless/realtek/rtw89/phy.h
@@ -353,25 +353,6 @@ struct rtw89_txpwr_byrate_cfg {
u32 data;
};
-struct rtw89_txpwr_track_cfg {
- const s8 (*delta_swingidx_6gb_n)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_6gb_p)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_6ga_n)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_6ga_p)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_5gb_n)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_5gb_p)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_5ga_n)[DELTA_SWINGIDX_SIZE];
- const s8 (*delta_swingidx_5ga_p)[DELTA_SWINGIDX_SIZE];
- const s8 *delta_swingidx_2gb_n;
- const s8 *delta_swingidx_2gb_p;
- const s8 *delta_swingidx_2ga_n;
- const s8 *delta_swingidx_2ga_p;
- const s8 *delta_swingidx_2g_cck_b_n;
- const s8 *delta_swingidx_2g_cck_b_p;
- const s8 *delta_swingidx_2g_cck_a_n;
- const s8 *delta_swingidx_2g_cck_a_p;
-};
-
struct rtw89_phy_dig_gain_cfg {
const struct rtw89_reg_def *table;
u8 size;
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
index a6c7f59223ef..c63f0e6364da 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
@@ -2823,6 +2823,7 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
} \
__val; \
})
+ const struct rtw89_fw_txpwr_track_cfg *trk = rtwdev->fw.elm_info.txpwr_trk;
struct rtw89_tssi_info *tssi_info = &rtwdev->tssi;
u8 ch = chan->channel;
u8 subband = chan->subband_type;
@@ -2833,23 +2834,26 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
u32 tmp = 0;
u8 i, j;
+ if (!trk)
+ trk = &rtw89_8851b_trk_cfg;
+
switch (subband) {
default:
case RTW89_CH_2G:
- thm_up_a = rtw89_8851b_trk_cfg.delta_swingidx_2ga_p;
- thm_down_a = rtw89_8851b_trk_cfg.delta_swingidx_2ga_n;
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N][0];
break;
case RTW89_CH_5G_BAND_1:
- thm_up_a = rtw89_8851b_trk_cfg.delta_swingidx_5ga_p[0];
- thm_down_a = rtw89_8851b_trk_cfg.delta_swingidx_5ga_n[0];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][0];
break;
case RTW89_CH_5G_BAND_3:
- thm_up_a = rtw89_8851b_trk_cfg.delta_swingidx_5ga_p[1];
- thm_down_a = rtw89_8851b_trk_cfg.delta_swingidx_5ga_n[1];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][1];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][1];
break;
case RTW89_CH_5G_BAND_4:
- thm_up_a = rtw89_8851b_trk_cfg.delta_swingidx_5ga_p[2];
- thm_down_a = rtw89_8851b_trk_cfg.delta_swingidx_5ga_n[2];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][2];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][2];
break;
}
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b_table.c b/drivers/net/wireless/realtek/rtw89/rtw8851b_table.c
index a9c309c245c3..b8105f6e94f1 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851b_table.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851b_table.c
@@ -2,6 +2,7 @@
/* Copyright(c) 2022-2023 Realtek Corporation
*/
+#include "fw.h"
#include "phy.h"
#include "reg.h"
#include "rtw8851b_table.h"
@@ -14866,13 +14867,13 @@ const struct rtw89_txpwr_table rtw89_8851b_byr_table_type2 = {
.load = rtw89_phy_load_txpwr_byrate,
};
-const struct rtw89_txpwr_track_cfg rtw89_8851b_trk_cfg = {
- .delta_swingidx_5ga_n = _txpwr_track_delta_swingidx_5ga_n,
- .delta_swingidx_5ga_p = _txpwr_track_delta_swingidx_5ga_p,
- .delta_swingidx_2ga_n = _txpwr_track_delta_swingidx_2ga_n,
- .delta_swingidx_2ga_p = _txpwr_track_delta_swingidx_2ga_p,
- .delta_swingidx_2g_cck_a_n = _txpwr_track_delta_swingidx_2g_cck_a_n,
- .delta_swingidx_2g_cck_a_p = _txpwr_track_delta_swingidx_2g_cck_a_p,
+const struct rtw89_fw_txpwr_track_cfg rtw89_8851b_trk_cfg = {
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N] = _txpwr_track_delta_swingidx_5ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P] = _txpwr_track_delta_swingidx_5ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N] = &_txpwr_track_delta_swingidx_2ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P] = &_txpwr_track_delta_swingidx_2ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_N] = &_txpwr_track_delta_swingidx_2g_cck_a_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_P] = &_txpwr_track_delta_swingidx_2g_cck_a_p,
};
const struct rtw89_rfe_parms rtw89_8851b_dflt_parms = {
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b_table.h b/drivers/net/wireless/realtek/rtw89/rtw8851b_table.h
index d8cf545d40a0..a73c0a6f03df 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851b_table.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851b_table.h
@@ -11,7 +11,7 @@ extern const struct rtw89_phy_table rtw89_8851b_phy_bb_table;
extern const struct rtw89_phy_table rtw89_8851b_phy_bb_gain_table;
extern const struct rtw89_phy_table rtw89_8851b_phy_radioa_table;
extern const struct rtw89_phy_table rtw89_8851b_phy_nctl_table;
-extern const struct rtw89_txpwr_track_cfg rtw89_8851b_trk_cfg;
+extern const struct rtw89_fw_txpwr_track_cfg rtw89_8851b_trk_cfg;
extern const struct rtw89_rfe_parms rtw89_8851b_dflt_parms;
extern const struct rtw89_rfe_parms_conf rtw89_8851b_rfe_parms_conf[];
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
index 8679b21fd3fd..609cc300f24e 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
@@ -2910,6 +2910,7 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
} \
__val; \
})
+ const struct rtw89_fw_txpwr_track_cfg *trk = rtwdev->fw.elm_info.txpwr_trk;
struct rtw89_tssi_info *tssi_info = &rtwdev->tssi;
u8 ch = chan->channel;
u8 subband = chan->subband_type;
@@ -2922,31 +2923,34 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
u32 tmp = 0;
u8 i, j;
+ if (!trk)
+ trk = &rtw89_8852a_trk_cfg;
+
switch (subband) {
default:
case RTW89_CH_2G:
- thm_up_a = rtw89_8852a_trk_cfg.delta_swingidx_2ga_p;
- thm_down_a = rtw89_8852a_trk_cfg.delta_swingidx_2ga_n;
- thm_up_b = rtw89_8852a_trk_cfg.delta_swingidx_2gb_p;
- thm_down_b = rtw89_8852a_trk_cfg.delta_swingidx_2gb_n;
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N][0];
break;
case RTW89_CH_5G_BAND_1:
- thm_up_a = rtw89_8852a_trk_cfg.delta_swingidx_5ga_p[0];
- thm_down_a = rtw89_8852a_trk_cfg.delta_swingidx_5ga_n[0];
- thm_up_b = rtw89_8852a_trk_cfg.delta_swingidx_5gb_p[0];
- thm_down_b = rtw89_8852a_trk_cfg.delta_swingidx_5gb_n[0];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][0];
break;
case RTW89_CH_5G_BAND_3:
- thm_up_a = rtw89_8852a_trk_cfg.delta_swingidx_5ga_p[1];
- thm_down_a = rtw89_8852a_trk_cfg.delta_swingidx_5ga_n[1];
- thm_up_b = rtw89_8852a_trk_cfg.delta_swingidx_5gb_p[1];
- thm_down_b = rtw89_8852a_trk_cfg.delta_swingidx_5gb_n[1];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][1];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][1];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][1];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][1];
break;
case RTW89_CH_5G_BAND_4:
- thm_up_a = rtw89_8852a_trk_cfg.delta_swingidx_5ga_p[2];
- thm_down_a = rtw89_8852a_trk_cfg.delta_swingidx_5ga_n[2];
- thm_up_b = rtw89_8852a_trk_cfg.delta_swingidx_5gb_p[2];
- thm_down_b = rtw89_8852a_trk_cfg.delta_swingidx_5gb_n[2];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][2];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][2];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][2];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][2];
break;
}
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a_table.c b/drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
index ffdeb3801991..f1bcef64a91f 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
@@ -2,6 +2,7 @@
/* Copyright(c) 2019-2020 Realtek Corporation
*/
+#include "fw.h"
#include "phy.h"
#include "reg.h"
#include "rtw8852a_table.h"
@@ -50983,19 +50984,19 @@ const struct rtw89_txpwr_table rtw89_8852a_byr_table = {
.load = rtw89_phy_load_txpwr_byrate,
};
-const struct rtw89_txpwr_track_cfg rtw89_8852a_trk_cfg = {
- .delta_swingidx_5gb_n = _txpwr_track_delta_swingidx_5gb_n,
- .delta_swingidx_5gb_p = _txpwr_track_delta_swingidx_5gb_p,
- .delta_swingidx_5ga_n = _txpwr_track_delta_swingidx_5ga_n,
- .delta_swingidx_5ga_p = _txpwr_track_delta_swingidx_5ga_p,
- .delta_swingidx_2gb_n = _txpwr_track_delta_swingidx_2gb_n,
- .delta_swingidx_2gb_p = _txpwr_track_delta_swingidx_2gb_p,
- .delta_swingidx_2ga_n = _txpwr_track_delta_swingidx_2ga_n,
- .delta_swingidx_2ga_p = _txpwr_track_delta_swingidx_2ga_p,
- .delta_swingidx_2g_cck_b_n = _txpwr_track_delta_swingidx_2g_cck_b_n,
- .delta_swingidx_2g_cck_b_p = _txpwr_track_delta_swingidx_2g_cck_b_p,
- .delta_swingidx_2g_cck_a_n = _txpwr_track_delta_swingidx_2g_cck_a_n,
- .delta_swingidx_2g_cck_a_p = _txpwr_track_delta_swingidx_2g_cck_a_p,
+const struct rtw89_fw_txpwr_track_cfg rtw89_8852a_trk_cfg = {
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N] = _txpwr_track_delta_swingidx_5gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P] = _txpwr_track_delta_swingidx_5gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N] = _txpwr_track_delta_swingidx_5ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P] = _txpwr_track_delta_swingidx_5ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N] = &_txpwr_track_delta_swingidx_2gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P] = &_txpwr_track_delta_swingidx_2gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N] = &_txpwr_track_delta_swingidx_2ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P] = &_txpwr_track_delta_swingidx_2ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_B_N] = &_txpwr_track_delta_swingidx_2g_cck_b_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_B_P] = &_txpwr_track_delta_swingidx_2g_cck_b_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_N] = &_txpwr_track_delta_swingidx_2g_cck_a_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_P] = &_txpwr_track_delta_swingidx_2g_cck_a_p,
};
const struct rtw89_rfe_parms rtw89_8852a_dflt_parms = {
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a_table.h b/drivers/net/wireless/realtek/rtw89/rtw8852a_table.h
index 58fe8575c1c9..501a8248d1ce 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a_table.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a_table.h
@@ -11,7 +11,7 @@ extern const struct rtw89_phy_table rtw89_8852a_phy_bb_table;
extern const struct rtw89_phy_table rtw89_8852a_phy_radioa_table;
extern const struct rtw89_phy_table rtw89_8852a_phy_radiob_table;
extern const struct rtw89_phy_table rtw89_8852a_phy_nctl_table;
-extern const struct rtw89_txpwr_track_cfg rtw89_8852a_trk_cfg;
+extern const struct rtw89_fw_txpwr_track_cfg rtw89_8852a_trk_cfg;
extern const struct rtw89_rfe_parms rtw89_8852a_dflt_parms;
#endif
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
index 5cfacc10e7c8..29a82b1c4457 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
@@ -2784,6 +2784,7 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
} \
__val; \
})
+ const struct rtw89_fw_txpwr_track_cfg *trk = rtwdev->fw.elm_info.txpwr_trk;
struct rtw89_tssi_info *tssi_info = &rtwdev->tssi;
u8 ch = chan->channel;
u8 subband = chan->subband_type;
@@ -2796,31 +2797,34 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
u32 tmp = 0;
u8 i, j;
+ if (!trk)
+ trk = &rtw89_8852b_trk_cfg;
+
switch (subband) {
default:
case RTW89_CH_2G:
- thm_up_a = rtw89_8852b_trk_cfg.delta_swingidx_2ga_p;
- thm_down_a = rtw89_8852b_trk_cfg.delta_swingidx_2ga_n;
- thm_up_b = rtw89_8852b_trk_cfg.delta_swingidx_2gb_p;
- thm_down_b = rtw89_8852b_trk_cfg.delta_swingidx_2gb_n;
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N][0];
break;
case RTW89_CH_5G_BAND_1:
- thm_up_a = rtw89_8852b_trk_cfg.delta_swingidx_5ga_p[0];
- thm_down_a = rtw89_8852b_trk_cfg.delta_swingidx_5ga_n[0];
- thm_up_b = rtw89_8852b_trk_cfg.delta_swingidx_5gb_p[0];
- thm_down_b = rtw89_8852b_trk_cfg.delta_swingidx_5gb_n[0];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][0];
break;
case RTW89_CH_5G_BAND_3:
- thm_up_a = rtw89_8852b_trk_cfg.delta_swingidx_5ga_p[1];
- thm_down_a = rtw89_8852b_trk_cfg.delta_swingidx_5ga_n[1];
- thm_up_b = rtw89_8852b_trk_cfg.delta_swingidx_5gb_p[1];
- thm_down_b = rtw89_8852b_trk_cfg.delta_swingidx_5gb_n[1];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][1];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][1];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][1];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][1];
break;
case RTW89_CH_5G_BAND_4:
- thm_up_a = rtw89_8852b_trk_cfg.delta_swingidx_5ga_p[2];
- thm_down_a = rtw89_8852b_trk_cfg.delta_swingidx_5ga_n[2];
- thm_up_b = rtw89_8852b_trk_cfg.delta_swingidx_5gb_p[2];
- thm_down_b = rtw89_8852b_trk_cfg.delta_swingidx_5gb_n[2];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][2];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][2];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][2];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][2];
break;
}
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_table.c b/drivers/net/wireless/realtek/rtw89/rtw8852b_table.c
index 07945d06dc59..96b18e9095b3 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b_table.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_table.c
@@ -2,6 +2,7 @@
/* Copyright(c) 2019-2020 Realtek Corporation
*/
+#include "fw.h"
#include "phy.h"
#include "reg.h"
#include "rtw8852b_table.h"
@@ -22895,19 +22896,19 @@ const struct rtw89_txpwr_table rtw89_8852b_byr_table = {
.load = rtw89_phy_load_txpwr_byrate,
};
-const struct rtw89_txpwr_track_cfg rtw89_8852b_trk_cfg = {
- .delta_swingidx_5gb_n = _txpwr_track_delta_swingidx_5gb_n,
- .delta_swingidx_5gb_p = _txpwr_track_delta_swingidx_5gb_p,
- .delta_swingidx_5ga_n = _txpwr_track_delta_swingidx_5ga_n,
- .delta_swingidx_5ga_p = _txpwr_track_delta_swingidx_5ga_p,
- .delta_swingidx_2gb_n = _txpwr_track_delta_swingidx_2gb_n,
- .delta_swingidx_2gb_p = _txpwr_track_delta_swingidx_2gb_p,
- .delta_swingidx_2ga_n = _txpwr_track_delta_swingidx_2ga_n,
- .delta_swingidx_2ga_p = _txpwr_track_delta_swingidx_2ga_p,
- .delta_swingidx_2g_cck_b_n = _txpwr_track_delta_swingidx_2g_cck_b_n,
- .delta_swingidx_2g_cck_b_p = _txpwr_track_delta_swingidx_2g_cck_b_p,
- .delta_swingidx_2g_cck_a_n = _txpwr_track_delta_swingidx_2g_cck_a_n,
- .delta_swingidx_2g_cck_a_p = _txpwr_track_delta_swingidx_2g_cck_a_p,
+const struct rtw89_fw_txpwr_track_cfg rtw89_8852b_trk_cfg = {
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N] = _txpwr_track_delta_swingidx_5gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P] = _txpwr_track_delta_swingidx_5gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N] = _txpwr_track_delta_swingidx_5ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P] = _txpwr_track_delta_swingidx_5ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N] = &_txpwr_track_delta_swingidx_2gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P] = &_txpwr_track_delta_swingidx_2gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N] = &_txpwr_track_delta_swingidx_2ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P] = &_txpwr_track_delta_swingidx_2ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_B_N] = &_txpwr_track_delta_swingidx_2g_cck_b_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_B_P] = &_txpwr_track_delta_swingidx_2g_cck_b_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_N] = &_txpwr_track_delta_swingidx_2g_cck_a_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_P] = &_txpwr_track_delta_swingidx_2g_cck_a_p,
};
const struct rtw89_rfe_parms rtw89_8852b_dflt_parms = {
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_table.h b/drivers/net/wireless/realtek/rtw89/rtw8852b_table.h
index da6c90e2ba93..d30a1fb43e96 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b_table.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_table.h
@@ -12,7 +12,7 @@ extern const struct rtw89_phy_table rtw89_8852b_phy_bb_gain_table;
extern const struct rtw89_phy_table rtw89_8852b_phy_radioa_table;
extern const struct rtw89_phy_table rtw89_8852b_phy_radiob_table;
extern const struct rtw89_phy_table rtw89_8852b_phy_nctl_table;
-extern const struct rtw89_txpwr_track_cfg rtw89_8852b_trk_cfg;
+extern const struct rtw89_fw_txpwr_track_cfg rtw89_8852b_trk_cfg;
extern const struct rtw89_rfe_parms rtw89_8852b_dflt_parms;
#endif
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
index cbee484dee30..8d03a4645947 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
@@ -2992,7 +2992,7 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
} \
__val; \
})
- struct rtw89_fw_txpwr_track_cfg *trk = rtwdev->fw.elm_info.txpwr_trk;
+ const struct rtw89_fw_txpwr_track_cfg *trk = rtwdev->fw.elm_info.txpwr_trk;
struct rtw89_tssi_info *tssi_info = &rtwdev->tssi;
u8 ch = chan->channel;
u8 subband = chan->subband_type;
@@ -3005,91 +3005,62 @@ static void _tssi_set_tmeter_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx ph
u32 tmp = 0;
u8 i, j;
+ if (!trk)
+ trk = &rtw89_8852c_trk_cfg;
+
switch (subband) {
default:
case RTW89_CH_2G:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_2ga_p;
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_2ga_n;
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_2gb_p;
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_2gb_n;
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N][0];
break;
case RTW89_CH_5G_BAND_1:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_5ga_p[0];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_5ga_n[0];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_5gb_p[0];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_5gb_n[0];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][0];
break;
case RTW89_CH_5G_BAND_3:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_5ga_p[1];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_5ga_n[1];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_5gb_p[1];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_5gb_n[1];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][1];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][1];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][1];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][1];
break;
case RTW89_CH_5G_BAND_4:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_5ga_p[2];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_5ga_n[2];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_5gb_p[2];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_5gb_n[2];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P][2];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N][2];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P][2];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N][2];
break;
case RTW89_CH_6G_BAND_IDX0:
case RTW89_CH_6G_BAND_IDX1:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_p[0];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_n[0];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_p[0];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][0] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_n[0];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][0];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][0];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][0];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][0];
break;
case RTW89_CH_6G_BAND_IDX2:
case RTW89_CH_6G_BAND_IDX3:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_p[1];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_n[1];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_p[1];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][1] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_n[1];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][1];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][1];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][1];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][1];
break;
case RTW89_CH_6G_BAND_IDX4:
case RTW89_CH_6G_BAND_IDX5:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_p[2];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_n[2];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_p[2];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][2] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_n[2];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][2];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][2];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][2];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][2];
break;
case RTW89_CH_6G_BAND_IDX6:
case RTW89_CH_6G_BAND_IDX7:
- thm_up_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][3] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_p[3];
- thm_down_a = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][3] :
- rtw89_8852c_trk_cfg.delta_swingidx_6ga_n[3];
- thm_up_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][3] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_p[3];
- thm_down_b = trk ? trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][3] :
- rtw89_8852c_trk_cfg.delta_swingidx_6gb_n[3];
+ thm_up_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P][3];
+ thm_down_a = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N][3];
+ thm_up_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P][3];
+ thm_down_b = trk->delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N][3];
break;
}
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
index 24c390b6f3d3..b4cf497e8524 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
@@ -2,6 +2,7 @@
/* Copyright(c) 2019-2022 Realtek Corporation
*/
+#include "fw.h"
#include "phy.h"
#include "reg.h"
#include "rtw8852c_table.h"
@@ -57109,23 +57110,23 @@ const struct rtw89_txpwr_table rtw89_8852c_byr_table = {
.load = rtw89_phy_load_txpwr_byrate,
};
-const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg = {
- .delta_swingidx_6gb_n = _txpwr_track_delta_swingidx_6gb_n,
- .delta_swingidx_6gb_p = _txpwr_track_delta_swingidx_6gb_p,
- .delta_swingidx_6ga_n = _txpwr_track_delta_swingidx_6ga_n,
- .delta_swingidx_6ga_p = _txpwr_track_delta_swingidx_6ga_p,
- .delta_swingidx_5gb_n = _txpwr_track_delta_swingidx_5gb_n,
- .delta_swingidx_5gb_p = _txpwr_track_delta_swingidx_5gb_p,
- .delta_swingidx_5ga_n = _txpwr_track_delta_swingidx_5ga_n,
- .delta_swingidx_5ga_p = _txpwr_track_delta_swingidx_5ga_p,
- .delta_swingidx_2gb_n = _txpwr_track_delta_swingidx_2gb_n,
- .delta_swingidx_2gb_p = _txpwr_track_delta_swingidx_2gb_p,
- .delta_swingidx_2ga_n = _txpwr_track_delta_swingidx_2ga_n,
- .delta_swingidx_2ga_p = _txpwr_track_delta_swingidx_2ga_p,
- .delta_swingidx_2g_cck_b_n = _txpwr_track_delta_swingidx_2g_cck_b_n,
- .delta_swingidx_2g_cck_b_p = _txpwr_track_delta_swingidx_2g_cck_b_p,
- .delta_swingidx_2g_cck_a_n = _txpwr_track_delta_swingidx_2g_cck_a_n,
- .delta_swingidx_2g_cck_a_p = _txpwr_track_delta_swingidx_2g_cck_a_p,
+const struct rtw89_fw_txpwr_track_cfg rtw89_8852c_trk_cfg = {
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_N] = _txpwr_track_delta_swingidx_6gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_6GB_P] = _txpwr_track_delta_swingidx_6gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_N] = _txpwr_track_delta_swingidx_6ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_6GA_P] = _txpwr_track_delta_swingidx_6ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_N] = _txpwr_track_delta_swingidx_5gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GB_P] = _txpwr_track_delta_swingidx_5gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_N] = _txpwr_track_delta_swingidx_5ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_5GA_P] = _txpwr_track_delta_swingidx_5ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_N] = &_txpwr_track_delta_swingidx_2gb_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GB_P] = &_txpwr_track_delta_swingidx_2gb_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_N] = &_txpwr_track_delta_swingidx_2ga_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2GA_P] = &_txpwr_track_delta_swingidx_2ga_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_B_N] = &_txpwr_track_delta_swingidx_2g_cck_b_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_B_P] = &_txpwr_track_delta_swingidx_2g_cck_b_p,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_N] = &_txpwr_track_delta_swingidx_2g_cck_a_n,
+ .delta[RTW89_FW_TXPWR_TRK_TYPE_2G_CCK_A_P] = &_txpwr_track_delta_swingidx_2g_cck_a_p,
};
const struct rtw89_phy_tssi_dbw_table rtw89_8852c_tssi_dbw_table = {
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h
index 7c9f3ecdc4e7..69c95f35b535 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h
@@ -13,7 +13,7 @@ extern const struct rtw89_phy_table rtw89_8852c_phy_radioa_table;
extern const struct rtw89_phy_table rtw89_8852c_phy_radiob_table;
extern const struct rtw89_phy_table rtw89_8852c_phy_nctl_table;
extern const struct rtw89_phy_tssi_dbw_table rtw89_8852c_tssi_dbw_table;
-extern const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg;
+extern const struct rtw89_fw_txpwr_track_cfg rtw89_8852c_trk_cfg;
extern const struct rtw89_rfe_parms rtw89_8852c_dflt_parms;
#endif
--
2.25.1
^ permalink raw reply related
* [PATCH rtw-next 15/15] wifi: rtw89: set needed firmware elements for early chips transition
From: Ping-Ke Shih @ 2026-07-07 9:10 UTC (permalink / raw)
To: linux-wireless; +Cc: gary.chang, echuang
In-Reply-To: <20260707091056.42771-1-pkshih@realtek.com>
The early chips including RTL8852A, RTL8851B, RTL8852B and RTL8852C have
driver built-in tables, which are not preferred. New firmware is prepared
with corresponding tables in firmware elements, so we can start to
transition. After this patch, old firmware is still usable, but add a
prompt text for users to update firmware.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/fw.c | 10 +++++++
drivers/net/wireless/realtek/rtw89/fw.h | 27 ++++++++++++++++---
drivers/net/wireless/realtek/rtw89/rtw8851b.c | 3 ++-
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 3 ++-
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 3 ++-
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 3 ++-
6 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
index 9d98805835d6..6b293611d5a8 100644
--- a/drivers/net/wireless/realtek/rtw89/fw.c
+++ b/drivers/net/wireless/realtek/rtw89/fw.c
@@ -1562,6 +1562,7 @@ int rtw89_fw_recognize_elements(struct rtw89_dev *rtwdev)
u32 unrecognized_elements = chip->needed_fw_elms;
const struct rtw89_fw_element_handler *handler;
const struct rtw89_fw_element_hdr *hdr;
+ bool transition;
u32 elm_size;
u32 elem_id;
u32 offset;
@@ -1569,6 +1570,9 @@ int rtw89_fw_recognize_elements(struct rtw89_dev *rtwdev)
BUILD_BUG_ON(sizeof(chip->needed_fw_elms) * 8 < RTW89_FW_ELEMENT_ID_NUM);
+ transition = !!((chip->needed_fw_elms & BIT(__RTW89_FW_ELEMENT_ID_INTL_TRANSITION)));
+ unrecognized_elements &= ~BIT(__RTW89_FW_ELEMENT_ID_INTL_TRANSITION);
+
offset = rtw89_mfw_get_size(rtwdev);
offset = ALIGN(offset, RTW89_FW_ELEMENT_ALIGN);
if (offset == 0)
@@ -1608,6 +1612,12 @@ int rtw89_fw_recognize_elements(struct rtw89_dev *rtwdev)
}
if (unrecognized_elements) {
+ if (transition) {
+ rtw89_info(rtwdev, "NOTE: This firmware is going to be obsolete!\n"
+ "Please download the latest firmware from https://gitlab.com/kernel-firmware/linux-firmware.git\n");
+ return 0;
+ }
+
rtw89_err(rtwdev, "Firmware elements 0x%08x are unrecognized\n",
unrecognized_elements);
return -ENOENT;
diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h
index 71e8554a7af7..e4c81b893780 100644
--- a/drivers/net/wireless/realtek/rtw89/fw.h
+++ b/drivers/net/wireless/realtek/rtw89/fw.h
@@ -4346,31 +4346,50 @@ enum rtw89_fw_element_id {
RTW89_FW_ELEMENT_ID_DIAG_MAC = 28,
RTW89_FW_ELEMENT_ID_TX_COMP = 29,
+ __RTW89_FW_ELEMENT_ID_INTL_TRANSITION,
RTW89_FW_ELEMENT_ID_NUM,
};
+#define BITS_OF_RTW89_TXPWR_FW_ELEMENTS_TX_SHAPE \
+ (BIT(RTW89_FW_ELEMENT_ID_TX_SHAPE_LMT) | \
+ BIT(RTW89_FW_ELEMENT_ID_TX_SHAPE_LMT_RU))
+
#define BITS_OF_RTW89_TXPWR_FW_ELEMENTS_NO_6GHZ \
(BIT(RTW89_FW_ELEMENT_ID_TXPWR_BYRATE) | \
BIT(RTW89_FW_ELEMENT_ID_TXPWR_LMT_2GHZ) | \
BIT(RTW89_FW_ELEMENT_ID_TXPWR_LMT_5GHZ) | \
BIT(RTW89_FW_ELEMENT_ID_TXPWR_LMT_RU_2GHZ) | \
BIT(RTW89_FW_ELEMENT_ID_TXPWR_LMT_RU_5GHZ) | \
- BIT(RTW89_FW_ELEMENT_ID_TX_SHAPE_LMT) | \
- BIT(RTW89_FW_ELEMENT_ID_TX_SHAPE_LMT_RU))
+ BITS_OF_RTW89_TXPWR_FW_ELEMENTS_TX_SHAPE)
#define BITS_OF_RTW89_TXPWR_FW_ELEMENTS \
(BITS_OF_RTW89_TXPWR_FW_ELEMENTS_NO_6GHZ | \
BIT(RTW89_FW_ELEMENT_ID_TXPWR_LMT_6GHZ) | \
BIT(RTW89_FW_ELEMENT_ID_TXPWR_LMT_RU_6GHZ))
-#define RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_NO_6GHZ \
+#define RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_BASE \
(BIT(RTW89_FW_ELEMENT_ID_BB_REG) | \
BIT(RTW89_FW_ELEMENT_ID_RADIO_A) | \
BIT(RTW89_FW_ELEMENT_ID_RADIO_B) | \
BIT(RTW89_FW_ELEMENT_ID_RF_NCTL) | \
- BIT(RTW89_FW_ELEMENT_ID_TXPWR_TRK) | \
+ BIT(RTW89_FW_ELEMENT_ID_TXPWR_TRK))
+
+#define RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_NO_6GHZ \
+ (RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_BASE | \
BITS_OF_RTW89_TXPWR_FW_ELEMENTS_NO_6GHZ)
+#define RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS \
+ (RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_BASE | \
+ BITS_OF_RTW89_TXPWR_FW_ELEMENTS)
+
+#define RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_RTL8852A \
+ (RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_NO_6GHZ & \
+ ~BITS_OF_RTW89_TXPWR_FW_ELEMENTS_TX_SHAPE)
+
+#define RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_RTL8851B \
+ (RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_NO_6GHZ & \
+ ~BIT(RTW89_FW_ELEMENT_ID_RADIO_B))
+
#define RTW89_BE_GEN_DEF_NEEDED_FW_ELEMENTS_BASE \
(BIT(RTW89_FW_ELEMENT_ID_BB_REG) | \
BIT(RTW89_FW_ELEMENT_ID_RADIO_A) | \
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b.c b/drivers/net/wireless/realtek/rtw89/rtw8851b.c
index d0c262c3dffe..818cf82861d9 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851b.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851b.c
@@ -2637,7 +2637,8 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
},
.try_ce_fw = true,
.bbmcu_nr = 0,
- .needed_fw_elms = 0,
+ .needed_fw_elms = RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_RTL8851B |
+ BIT(__RTW89_FW_ELEMENT_ID_INTL_TRANSITION),
.fw_blacklist = NULL,
.fifo_size = 196608,
.small_fifo_size = true,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
index 61b6b76c5bdb..08821af48f02 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
@@ -2374,7 +2374,8 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
},
.try_ce_fw = false,
.bbmcu_nr = 0,
- .needed_fw_elms = 0,
+ .needed_fw_elms = RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_RTL8852A |
+ BIT(__RTW89_FW_ELEMENT_ID_INTL_TRANSITION),
.fw_blacklist = NULL,
.fifo_size = 458752,
.small_fifo_size = false,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b.c b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
index a8638024b54a..5904127cc836 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
@@ -968,7 +968,8 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
},
.try_ce_fw = true,
.bbmcu_nr = 0,
- .needed_fw_elms = 0,
+ .needed_fw_elms = RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS_NO_6GHZ |
+ BIT(__RTW89_FW_ELEMENT_ID_INTL_TRANSITION),
.fw_blacklist = &rtw89_fw_blacklist_default,
.fifo_size = 196608,
.small_fifo_size = true,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c
index 52986b982ecd..35cbb59b3e56 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c
@@ -3173,7 +3173,8 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
},
.try_ce_fw = false,
.bbmcu_nr = 0,
- .needed_fw_elms = 0,
+ .needed_fw_elms = RTW89_AX_GEN_DEF_NEEDED_FW_ELEMENTS |
+ BIT(__RTW89_FW_ELEMENT_ID_INTL_TRANSITION),
.fw_blacklist = &rtw89_fw_blacklist_default,
.fifo_size = 458752,
.small_fifo_size = false,
--
2.25.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox