All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
To: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Cc: Ping-Ke Shih <pkshih@realtek.com>, Luka Gejak <luka.gejak@linux.dev>
Subject: [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op
Date: Tue, 20 Oct 2026 23:50:34 +0300	[thread overview]
Message-ID: <8e47daa4-538d-4e0a-84f9-fd4e91613ff8@gmail.com> (raw)

rtw8723b_read_efuse() will need to read a byte from the physical efuse
map, so pass the map to the read_efuse chip op.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
v2:
 - Patch is new in v2.
---
 drivers/net/wireless/realtek/rtw88/efuse.c    | 2 +-
 drivers/net/wireless/realtek/rtw88/main.h     | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw8703b.c | 4 ++--
 drivers/net/wireless/realtek/rtw88/rtw8723b.c | 4 ++--
 drivers/net/wireless/realtek/rtw88/rtw8723x.c | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw8723x.h | 7 ++++---
 drivers/net/wireless/realtek/rtw88/rtw8814a.c | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw88xxa.c | 2 +-
 drivers/net/wireless/realtek/rtw88/rtw88xxa.h | 2 +-
 12 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw88/efuse.c b/drivers/net/wireless/realtek/rtw88/efuse.c
index b85075cd68d0..15c57203545b 100644
--- a/drivers/net/wireless/realtek/rtw88/efuse.c
+++ b/drivers/net/wireless/realtek/rtw88/efuse.c
@@ -173,7 +173,7 @@ int rtw_parse_efuse_map(struct rtw_dev *rtwdev)
 		goto out_free;
 	}
 
-	ret = chip->ops->read_efuse(rtwdev, log_map);
+	ret = chip->ops->read_efuse(rtwdev, log_map, phy_map);
 	if (ret) {
 		rtw_err(rtwdev, "failed to read efuse map\n");
 		goto out_free;
diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h
index d59f6e323adf..6ecbeb4ffe4b 100644
--- a/drivers/net/wireless/realtek/rtw88/main.h
+++ b/drivers/net/wireless/realtek/rtw88/main.h
@@ -868,7 +868,7 @@ struct rtw_chip_ops {
 	int (*mac_postinit)(struct rtw_dev *rtwdev);
 	int (*dump_fw_crash)(struct rtw_dev *rtwdev);
 	void (*shutdown)(struct rtw_dev *rtwdev);
-	int (*read_efuse)(struct rtw_dev *rtwdev, u8 *map);
+	int (*read_efuse)(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map);
 	void (*phy_set_param)(struct rtw_dev *rtwdev);
 	void (*set_channel)(struct rtw_dev *rtwdev, u8 channel,
 			    u8 bandwidth, u8 primary_chan_idx);
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.c b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
index 25456f0367b2..8ad30a37096d 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
@@ -563,12 +563,12 @@ static void try_mac_from_devicetree(struct rtw_dev *rtwdev)
 	}
 }
 
-static int rtw8703b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int rtw8703b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	int ret;
 
-	ret = rtw8723x_read_efuse(rtwdev, log_map);
+	ret = rtw8723x_read_efuse(rtwdev, log_map, phy_map);
 	if (ret != 0)
 		return ret;
 
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723b.c b/drivers/net/wireless/realtek/rtw88/rtw8723b.c
index 8bb9c03d769c..0179f09140ef 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723b.c
@@ -2349,12 +2349,12 @@ static void rtw8723b_fill_txdesc_checksum(struct rtw_dev *rtwdev,
 	fill_txdesc_checksum_common(txdesc, 16);
 }
 
-static int rtw8723b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int rtw8723b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	int ret;
 
-	ret = rtw8723x_read_efuse(rtwdev, log_map);
+	ret = rtw8723x_read_efuse(rtwdev, log_map, phy_map);
 	if (ret)
 		return ret;
 
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.c b/drivers/net/wireless/realtek/rtw88/rtw8723x.c
index 97e6f6a62c0d..5dd306cb058e 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.c
@@ -250,7 +250,7 @@ static const u8 rtw8723x_txpwr_idx_table[] = {
 	0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02
 };
 
-static int __rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int __rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	u8 *pwr = (u8 *)efuse->txpwr_idx_table;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.h b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
index e07b6ca99b3d..a8d42ea9a4f1 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
@@ -135,7 +135,7 @@ struct rtw8723x_common {
 
 	/* common functions */
 	void (*lck)(struct rtw_dev *rtwdev);
-	int (*read_efuse)(struct rtw_dev *rtwdev, u8 *log_map);
+	int (*read_efuse)(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map);
 	int (*mac_init)(struct rtw_dev *rtwdev);
 	int (*mac_postinit)(struct rtw_dev *rtwdev);
 	void (*cfg_ldo25)(struct rtw_dev *rtwdev, bool enable);
@@ -434,9 +434,10 @@ static inline void rtw8723x_lck(struct rtw_dev *rtwdev)
 	rtw8723x_common.lck(rtwdev);
 }
 
-static inline int rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static inline
+int rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
-	return rtw8723x_common.read_efuse(rtwdev, log_map);
+	return rtw8723x_common.read_efuse(rtwdev, log_map, phy_map);
 }
 
 static inline int rtw8723x_mac_init(struct rtw_dev *rtwdev)
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8814a.c b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
index fa02aa299b5e..b6916d3dc6d3 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8814a.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
@@ -126,7 +126,7 @@ static void rtw8814a_init_hwcap(struct rtw_dev *rtwdev)
 		efuse->hw_cap.ant_num, efuse->hw_cap.nss);
 }
 
-static int rtw8814a_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int rtw8814a_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	struct rtw8814a_efuse *map;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.c b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
index ee689fa3d87f..83ac6b732e80 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
@@ -45,7 +45,7 @@ enum rtw8821ce_rf_set {
 	SWITCH_TO_BT,
 };
 
-static int rtw8821c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int rtw8821c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
 	struct rtw_efuse *efuse = &rtwdev->efuse;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
index a56c8befa077..8ecf047a7ee2 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -38,7 +38,7 @@ static void rtw8822bs_efuse_parsing(struct rtw_efuse *efuse,
 	ether_addr_copy(efuse->addr, map->s.mac_addr);
 }
 
-static int rtw8822b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int rtw8822b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	struct rtw8822b_efuse *map;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index 32d9709f2c24..09315d23e2c4 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -41,7 +41,7 @@ static void rtw8822cs_efuse_parsing(struct rtw_efuse *efuse,
 	ether_addr_copy(efuse->addr, map->s.mac_addr);
 }
 
-static int rtw8822c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+static int rtw8822c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	struct rtw8822c_efuse *map;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
index c298fa0fb2a6..5ffa29d18168 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
@@ -197,7 +197,7 @@ static void rtw88xxa_read_usb_type(struct rtw_dev *rtwdev)
 		efuse->hw_cap.ant_num, efuse->hw_cap.nss);
 }
 
-int rtw88xxa_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+int rtw88xxa_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	const struct rtw_chip_info *chip = rtwdev->chip;
 	struct rtw_efuse *efuse = &rtwdev->efuse;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw88xxa.h b/drivers/net/wireless/realtek/rtw88/rtw88xxa.h
index d9c8db58909c..6597ca0dfc5d 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.h
@@ -140,7 +140,7 @@ struct rtw_jaguar_phy_status_rpt {
 #define RF18_BW_MASK		(BIT(11) | BIT(10))
 
 void rtw88xxa_efuse_grant(struct rtw_dev *rtwdev, bool on);
-int rtw88xxa_read_efuse(struct rtw_dev *rtwdev, u8 *log_map);
+int rtw88xxa_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map);
 void rtw88xxa_power_off(struct rtw_dev *rtwdev,
 			const struct rtw_pwr_seq_cmd *const *enter_lps_flow);
 int rtw88xxa_power_on(struct rtw_dev *rtwdev);
-- 
2.55.0


             reply	other threads:[~2026-10-20 20:50 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-20 20:50 Bitterblue Smith [this message]
2026-10-20 20:51 ` [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse Bitterblue Smith
2026-10-21  3:42   ` Ping-Ke Shih
2026-10-21  4:41   ` Luka Gejak
2026-10-20 20:53 ` [PATCH rtw-next v2 3/3] wifi: rtw88: 8723b: Read the chip variant " Bitterblue Smith
2026-10-21  3:45   ` Ping-Ke Shih
2026-10-21  4:42   ` Luka Gejak
2026-10-21  3:39 ` [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op Ping-Ke Shih
2026-10-21  4:41 ` Luka Gejak

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=8e47daa4-538d-4e0a-84f9-fd4e91613ff8@gmail.com \
    --to=rtl8821cerfe2@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=luka.gejak@linux.dev \
    --cc=pkshih@realtek.com \
    /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.