[PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op
flat view
HOTtoday
From: Bitterblue Smith <hidden>
Date: 2026-10-20 20:50:38
Subsystem:
realtek wireless driver (rtw88), the rest · Maintainers:
Ping-Ke Shih, Linus Torvalds
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 <redacted> --- 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