Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op
@ 2026-10-20 20:50 Bitterblue Smith
  2026-10-20 20:51 ` [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse Bitterblue Smith
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Bitterblue Smith @ 2026-10-20 20:50 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih, Luka Gejak

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


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse
  2026-10-20 20:50 [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op Bitterblue Smith
@ 2026-10-20 20:51 ` 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
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 9+ messages in thread
From: Bitterblue Smith @ 2026-10-20 20:51 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih, Luka Gejak

Some chip package types need different parts of the RF initialisation
table, so read the package type from efuse.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
v2:
 - Get the byte from the efuse physical map stored in RAM instead of
   reading it again from the chip.
 - Use macros for the address and the mask.
 - Read only the package type. The chip variant is now in patch 3.
---
 drivers/net/wireless/realtek/rtw88/rtw8723b.c | 29 +++++++++++++++++++
 drivers/net/wireless/realtek/rtw88/rtw8723b.h | 11 +++++++
 2 files changed, 40 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723b.c b/drivers/net/wireless/realtek/rtw88/rtw8723b.c
index 0179f09140ef..f550c8708e01 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723b.c
@@ -2349,6 +2349,33 @@ static void rtw8723b_fill_txdesc_checksum(struct rtw_dev *rtwdev,
 	fill_txdesc_checksum_common(txdesc, 16);
 }
 
+static void rtw8723b_read_package_type(struct rtw_dev *rtwdev, u8 *phy_map)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	u8 val_1fb, package;
+
+	val_1fb = phy_map[RTW8723B_EFUSE_PACKAGE_TYPE];
+	package = u8_get_bits(val_1fb, RTW8723B_PACKAGE_TYPE_MASK);
+
+	switch (package) {
+	case 0x4:
+		hal->pkg_type = RTW8723B_PACKAGE_TFBGA79;
+		break;
+	case 0x5:
+		hal->pkg_type = RTW8723B_PACKAGE_TFBGA90;
+		break;
+	case 0x6:
+		hal->pkg_type = RTW8723B_PACKAGE_QFN68;
+		break;
+	case 0x7:
+		hal->pkg_type = RTW8723B_PACKAGE_TFBGA80;
+		break;
+	default:
+		hal->pkg_type = RTW8723B_PACKAGE_DEFAULT;
+		break;
+	}
+}
+
 static int rtw8723b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
@@ -2374,6 +2401,8 @@ static int rtw8723b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 	efuse->hw_cap.bw = BIT(RTW_CHANNEL_WIDTH_20) |
 			   BIT(RTW_CHANNEL_WIDTH_40);
 
+	rtw8723b_read_package_type(rtwdev, phy_map);
+
 	return 0;
 }
 
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723b.h b/drivers/net/wireless/realtek/rtw88/rtw8723b.h
index cf93b93ede81..f1eaf7ab2a81 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723b.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723b.h
@@ -9,6 +9,17 @@
 
 #include "rtw8723x.h"
 
+enum rtw8723b_package_type {
+	RTW8723B_PACKAGE_DEFAULT,
+	RTW8723B_PACKAGE_QFN68,
+	RTW8723B_PACKAGE_TFBGA90,
+	RTW8723B_PACKAGE_TFBGA80,
+	RTW8723B_PACKAGE_TFBGA79,
+};
+
+#define RTW8723B_EFUSE_PACKAGE_TYPE	0x1fb
+#define RTW8723B_PACKAGE_TYPE_MASK	GENMASK(2, 0)
+
 extern const struct rtw_chip_info rtw8723b_hw_spec;
 
 #endif
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH rtw-next v2 3/3] wifi: rtw88: 8723b: Read the chip variant from efuse
  2026-10-20 20:50 [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op Bitterblue Smith
  2026-10-20 20:51 ` [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse Bitterblue Smith
@ 2026-10-20 20:53 ` 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
  3 siblings, 2 replies; 9+ messages in thread
From: Bitterblue Smith @ 2026-10-20 20:53 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih, Luka Gejak

The RTL8703AS appears to be a variant of RTL8723BS which doesn't support
40 MHz channel width, so read the chip variant from efuse and disable
support for 40 MHz.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
v2:
 - Split into a separate patch.
 - Get the byte from the efuse physical map stored in RAM instead of
   reading it again from the chip.
 - Use macros for the address, mask, and chip variants.
---
 drivers/net/wireless/realtek/rtw88/rtw8723b.c | 13 +++++++++++++
 drivers/net/wireless/realtek/rtw88/rtw8723b.h |  3 +++
 2 files changed, 16 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723b.c b/drivers/net/wireless/realtek/rtw88/rtw8723b.c
index f550c8708e01..48102baf66fc 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723b.c
@@ -2376,6 +2376,18 @@ static void rtw8723b_read_package_type(struct rtw_dev *rtwdev, u8 *phy_map)
 	}
 }
 
+static void rtw8723b_read_chip_variant(struct rtw_dev *rtwdev, u8 *phy_map)
+{
+	u8 val_1fb, variant;
+
+	val_1fb = phy_map[RTW8723B_EFUSE_PACKAGE_TYPE];
+	variant = u8_get_bits(val_1fb, RTW8723B_VARIANT_MASK);
+
+	if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO &&
+	    variant == RTW8723B_VARIANT_8703AS)
+		rtwdev->efuse.hw_cap.bw &= ~BIT(RTW_CHANNEL_WIDTH_40);
+}
+
 static int rtw8723b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 {
 	struct rtw_efuse *efuse = &rtwdev->efuse;
@@ -2402,6 +2414,7 @@ static int rtw8723b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map, u8 *phy_map)
 			   BIT(RTW_CHANNEL_WIDTH_40);
 
 	rtw8723b_read_package_type(rtwdev, phy_map);
+	rtw8723b_read_chip_variant(rtwdev, phy_map);
 
 	return 0;
 }
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723b.h b/drivers/net/wireless/realtek/rtw88/rtw8723b.h
index f1eaf7ab2a81..39b92ec5153b 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723b.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723b.h
@@ -19,6 +19,9 @@ enum rtw8723b_package_type {
 
 #define RTW8723B_EFUSE_PACKAGE_TYPE	0x1fb
 #define RTW8723B_PACKAGE_TYPE_MASK	GENMASK(2, 0)
+#define RTW8723B_VARIANT_MASK		GENMASK(5, 4)
+#define RTW8723B_VARIANT_8723BS		0x3
+#define RTW8723B_VARIANT_8703AS		0x2
 
 extern const struct rtw_chip_info rtw8723b_hw_spec;
 
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* RE: [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op
  2026-10-20 20:50 [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op Bitterblue Smith
  2026-10-20 20:51 ` [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse Bitterblue Smith
  2026-10-20 20:53 ` [PATCH rtw-next v2 3/3] wifi: rtw88: 8723b: Read the chip variant " Bitterblue Smith
@ 2026-10-21  3:39 ` Ping-Ke Shih
  2026-10-21  4:41 ` Luka Gejak
  3 siblings, 0 replies; 9+ messages in thread
From: Ping-Ke Shih @ 2026-10-21  3:39 UTC (permalink / raw)
  To: Bitterblue Smith, linux-wireless@vger.kernel.org; +Cc: Luka Gejak

Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> 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>

Acked-by: Ping-Ke Shih <pkshih@realtek.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse
  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
  1 sibling, 0 replies; 9+ messages in thread
From: Ping-Ke Shih @ 2026-10-21  3:42 UTC (permalink / raw)
  To: Bitterblue Smith, linux-wireless@vger.kernel.org; +Cc: Luka Gejak

Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> Some chip package types need different parts of the RF initialisation
> table, so read the package type from efuse.
> 
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>

Acked-by: Ping-Ke Shih <pkshih@realtek.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH rtw-next v2 3/3] wifi: rtw88: 8723b: Read the chip variant from efuse
  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
  1 sibling, 0 replies; 9+ messages in thread
From: Ping-Ke Shih @ 2026-10-21  3:45 UTC (permalink / raw)
  To: Bitterblue Smith, linux-wireless@vger.kernel.org; +Cc: Luka Gejak

Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> The RTL8703AS appears to be a variant of RTL8723BS which doesn't support
> 40 MHz channel width, so read the chip variant from efuse and disable
> support for 40 MHz.
> 
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>

Acked-by: Ping-Ke Shih <pkshih@realtek.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op
  2026-10-20 20:50 [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op Bitterblue Smith
                   ` (2 preceding siblings ...)
  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
  3 siblings, 0 replies; 9+ messages in thread
From: Luka Gejak @ 2026-10-21  4:41 UTC (permalink / raw)
  To: Bitterblue Smith, linux-wireless; +Cc: Ping-Ke Shih

October 20, 2026 at 10:50 PM, "Bitterblue Smith" <rtl8821cerfe2@gmail.com> wrote:


> 
> 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.
> ---

Reviewed-by: Luka Gejak <luka.gejak@linux.dev>
Tested-by: Luka Gejak <luka.gejak@linux.dev>

Best regards,
Luka Gejak

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH rtw-next v2 2/3] wifi: rtw88: 8723b: Read the package type from efuse
  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
  1 sibling, 0 replies; 9+ messages in thread
From: Luka Gejak @ 2026-10-21  4:41 UTC (permalink / raw)
  To: Bitterblue Smith, linux-wireless; +Cc: Ping-Ke Shih

October 20, 2026 at 10:51 PM, "Bitterblue Smith" <rtl8821cerfe2@gmail.com> wrote:


> 
> Some chip package types need different parts of the RF initialisation
> table, so read the package type from efuse.
> 
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
> ---
> v2:
>  - Get the byte from the efuse physical map stored in RAM instead of
>  reading it again from the chip.
>  - Use macros for the address and the mask.
>  - Read only the package type. The chip variant is now in patch 3.
> ---

Reviewed-by: Luka Gejak <luka.gejak@linux.dev>
Tested-by: Luka Gejak <luka.gejak@linux.dev>

Best regards,
Luka Gejak

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH rtw-next v2 3/3] wifi: rtw88: 8723b: Read the chip variant from efuse
  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
  1 sibling, 0 replies; 9+ messages in thread
From: Luka Gejak @ 2026-10-21  4:42 UTC (permalink / raw)
  To: Bitterblue Smith, linux-wireless; +Cc: Ping-Ke Shih

October 20, 2026 at 10:53 PM, "Bitterblue Smith" <rtl8821cerfe2@gmail.com> wrote:


> 
> The RTL8703AS appears to be a variant of RTL8723BS which doesn't support
> 40 MHz channel width, so read the chip variant from efuse and disable
> support for 40 MHz.
> 
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
> ---
> v2:
>  - Split into a separate patch.
>  - Get the byte from the efuse physical map stored in RAM instead of
>  reading it again from the chip.
>  - Use macros for the address, mask, and chip variants.
> ---

Reviewed-by: Luka Gejak <luka.gejak@linux.dev>
Tested-by: Luka Gejak <luka.gejak@linux.dev>

Best regards,
Luka Gejak

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-10-21  4:42 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20 20:50 [PATCH rtw-next v2 1/3] wifi: rtw88: Pass the physical map to the read_efuse chip op Bitterblue Smith
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox