From: Ping-Ke Shih <pkshih@realtek.com>
To: <linux-wireless@vger.kernel.org>
Cc: <kevin_yang@realtek.com>
Subject: [PATCH rtw-next v2 12/12] wifi: rtw89: 8852bx: support different SAR configs by antenna
Date: Wed, 26 Mar 2025 10:06:43 +0800 [thread overview]
Message-ID: <20250326020643.14487-13-pkshih@realtek.com> (raw)
In-Reply-To: <20250326020643.14487-1-pkshih@realtek.com>
From: Zong-Zhe Yang <kevin_yang@realtek.com>
Calculate difference of SAR configs between RF path A and RF path B.
And then, based on the calculated result, set the TX power reference
CR (control register). Finally, declare to support SAR by antenna in
8852b/8852bt chip info.
Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
v2: no change
---
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2 +-
.../wireless/realtek/rtw89/rtw8852b_common.c | 24 +++++++++++++++++++
.../net/wireless/realtek/rtw89/rtw8852bt.c | 2 +-
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b.c b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
index 47233f0c6ea0..dec736a07c54 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
@@ -853,7 +853,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
.support_unii4 = true,
.support_ant_gain = true,
.support_tas = false,
- .support_sar_by_ant = false,
+ .support_sar_by_ant = true,
.ul_tb_waveform_ctrl = true,
.ul_tb_pwr_diff = false,
.rx_freq_frome_ie = true,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c b/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
index 99c9505b3cbd..0cf03f18cbb1 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
@@ -8,6 +8,7 @@
#include "phy.h"
#include "reg.h"
#include "rtw8852b_common.h"
+#include "sar.h"
#include "util.h"
static const struct rtw89_reg3_def rtw8852bx_pmac_ht20_mcs7_tbl[] = {
@@ -1234,6 +1235,7 @@ static u32 rtw8852bx_bb_cal_txpwr_ref(struct rtw89_dev *rtwdev,
u32_encode_bits(ref, B_DPD_REF);
}
+/* @pwr_ofst (unit: 1/8 dBm): power of path A minus power of path B */
static void rtw8852bx_set_txpwr_ref(struct rtw89_dev *rtwdev,
enum rtw89_phy_idx phy_idx, s16 pwr_ofst)
{
@@ -1336,6 +1338,27 @@ static void rtw8852bx_set_tx_shape(struct rtw89_dev *rtwdev,
tx_shape_ofdm);
}
+static s16 rtw8852bx_get_txpwr_sar_diff(struct rtw89_dev *rtwdev,
+ const struct rtw89_chan *chan)
+{
+ struct rtw89_sar_parm sar_parm = {
+ .center_freq = chan->freq,
+ .force_path = true,
+ };
+ s16 sar_bb_a, sar_bb_b;
+ s8 sar_mac;
+
+ sar_parm.path = RF_PATH_A;
+ sar_mac = rtw89_query_sar(rtwdev, &sar_parm);
+ sar_bb_a = rtw89_phy_txpwr_mac_to_bb(rtwdev, sar_mac);
+
+ sar_parm.path = RF_PATH_B;
+ sar_mac = rtw89_query_sar(rtwdev, &sar_parm);
+ sar_bb_b = rtw89_phy_txpwr_mac_to_bb(rtwdev, sar_mac);
+
+ return sar_bb_a - sar_bb_b;
+}
+
static void rtw8852bx_set_txpwr_diff(struct rtw89_dev *rtwdev,
const struct rtw89_chan *chan,
enum rtw89_phy_idx phy_idx)
@@ -1343,6 +1366,7 @@ static void rtw8852bx_set_txpwr_diff(struct rtw89_dev *rtwdev,
s16 pwr_ofst;
pwr_ofst = rtw89_phy_ant_gain_pwr_offset(rtwdev, chan);
+ pwr_ofst += rtw8852bx_get_txpwr_sar_diff(rtwdev, chan);
rtw8852bx_set_txpwr_ref(rtwdev, phy_idx, pwr_ofst);
}
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852bt.c b/drivers/net/wireless/realtek/rtw89/rtw8852bt.c
index 0903e902d8f4..3aaf70e32652 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852bt.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852bt.c
@@ -786,7 +786,7 @@ const struct rtw89_chip_info rtw8852bt_chip_info = {
.support_unii4 = true,
.support_ant_gain = true,
.support_tas = false,
- .support_sar_by_ant = false,
+ .support_sar_by_ant = true,
.ul_tb_waveform_ctrl = true,
.ul_tb_pwr_diff = false,
.rx_freq_frome_ie = true,
--
2.25.1
prev parent reply other threads:[~2025-03-26 2:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-26 2:06 [PATCH rtw-next v2 00/12] wifi: rtw89: support SAR from BIOS ACPI Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 01/12] wifi: rtw89: fix typo of "access" in rtw89_sar_info description Ping-Ke Shih
2025-03-31 6:38 ` Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 02/12] wifi: rtw89: regd: introduce string getter for reuse Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 03/12] wifi: rtw89: sar: introduce structure to wrap query parameters Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 04/12] wifi: rtw89: sar: add skeleton for SAR configuration via ACPI Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 05/12] wifi: rtw89: acpi: introduce method evaluation function for reuse Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 06/12] wifi: rtw89: acpi: support loading static SAR table Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 07/12] wifi: rtw89: acpi: support loading dynamic SAR tables and indicator Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 08/12] wifi: rtw89: acpi: support loading GEO SAR tables Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 09/12] wifi: rtw89: sar: add skeleton for different configs by antenna Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 10/12] wifi: rtw89: 8922a: support different SAR " Ping-Ke Shih
2025-03-26 2:06 ` [PATCH rtw-next v2 11/12] wifi: rtw89: 8852c: " Ping-Ke Shih
2025-03-26 2:06 ` Ping-Ke Shih [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250326020643.14487-13-pkshih@realtek.com \
--to=pkshih@realtek.com \
--cc=kevin_yang@realtek.com \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.