You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.3 KiB
68 lines
2.3 KiB
From 5348102de57043c51fdad0841b87a652e2bbaa22 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= <ihuguet@redhat.com>
|
|
Date: Wed, 24 May 2023 15:00:24 +0200
|
|
Subject: [PATCH 027/142] wifi: rtw89: 8852b: add chip_ops to get thermal
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Bugzilla: https://bugzilla.redhat.com/2207499
|
|
|
|
commit 8f88474ce3eca2dd8fb4e08d4b6ab71e76312e3e
|
|
Author: Ping-Ke Shih <pkshih@realtek.com>
|
|
Date: Sun Oct 9 20:53:58 2022 +0800
|
|
|
|
wifi: rtw89: 8852b: add chip_ops to get thermal
|
|
|
|
Thermal value reflects temperature that will affect RF performance, so
|
|
we re-calibrate RF characteristics if delta of thermal over a threshold.
|
|
|
|
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://lore.kernel.org/r/20221009125403.19662-5-pkshih@realtek.com
|
|
|
|
Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
|
|
---
|
|
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 18 ++++++++++++++++++
|
|
1 file changed, 18 insertions(+)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b.c b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
|
|
index f13c657f4d68d..09374b92f6617 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b.c
|
|
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b.c
|
|
@@ -1397,6 +1397,23 @@ rtw8852b_init_txpwr_unit(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
|
|
return 0;
|
|
}
|
|
|
|
+static u8 rtw8852b_get_thermal(struct rtw89_dev *rtwdev, enum rtw89_rf_path rf_path)
|
|
+{
|
|
+ if (rtwdev->is_tssi_mode[rf_path]) {
|
|
+ u32 addr = 0x1c10 + (rf_path << 13);
|
|
+
|
|
+ return rtw89_phy_read32_mask(rtwdev, addr, 0x3F000000);
|
|
+ }
|
|
+
|
|
+ rtw89_write_rf(rtwdev, rf_path, RR_TM, RR_TM_TRI, 0x1);
|
|
+ rtw89_write_rf(rtwdev, rf_path, RR_TM, RR_TM_TRI, 0x0);
|
|
+ rtw89_write_rf(rtwdev, rf_path, RR_TM, RR_TM_TRI, 0x1);
|
|
+
|
|
+ fsleep(200);
|
|
+
|
|
+ return rtw89_read_rf(rtwdev, rf_path, RR_TM, RR_TM_VAL);
|
|
+}
|
|
+
|
|
static int rtw8852b_mac_enable_bb_rf(struct rtw89_dev *rtwdev)
|
|
{
|
|
int ret;
|
|
@@ -1463,6 +1480,7 @@ static const struct rtw89_chip_ops rtw8852b_chip_ops = {
|
|
.set_txpwr = rtw8852b_set_txpwr,
|
|
.set_txpwr_ctrl = rtw8852b_set_txpwr_ctrl,
|
|
.init_txpwr_unit = rtw8852b_init_txpwr_unit,
|
|
+ .get_thermal = rtw8852b_get_thermal,
|
|
.pwr_on_func = rtw8852b_pwr_on_func,
|
|
.pwr_off_func = rtw8852b_pwr_off_func,
|
|
};
|
|
--
|
|
2.13.6
|
|
|