public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH rtw-next 1/2] wifi: rtw88: add __packed to efuse map and do assertion
@ 2026-04-11  7:24 Ping-Ke Shih
  2026-04-11  7:24 ` [PATCH rtw-next 2/2] wifi: rtw89: " Ping-Ke Shih
  0 siblings, 1 reply; 2+ messages in thread
From: Ping-Ke Shih @ 2026-04-11  7:24 UTC (permalink / raw)
  To: linux-wireless; +Cc: rtl8821cerfe2

As arm-linux-gnueabi-gcc compiler align struct field is not always like
gcc on x86 target, the efuse map layout might not be expected. Add __packed
and do assertion to ensure it is expected.

Complied test only with arm-linux-gnueabi-gcc and x86 gcc.

Cc: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw88/rtw8703b.h | 2 ++
 drivers/net/wireless/realtek/rtw88/rtw8723x.h | 4 +++-
 drivers/net/wireless/realtek/rtw88/rtw8821c.h | 4 +++-
 drivers/net/wireless/realtek/rtw88/rtw8822b.h | 4 +++-
 drivers/net/wireless/realtek/rtw88/rtw8822c.h | 4 +++-
 drivers/net/wireless/realtek/rtw88/rtw88xxa.h | 2 +-
 6 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.h b/drivers/net/wireless/realtek/rtw88/rtw8703b.h
index 3e2da2e6739d..e3d709635902 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.h
@@ -70,6 +70,8 @@ struct phy_status_8703b {
 #endif
 } __packed;
 
+static_assert(sizeof(struct phy_status_8703b) == 28);
+
 /* Baseband registers */
 #define REG_BB_PWR_SAV5_11N 0x0818
 /* BIT(11) should be 1 for 8703B *and* 8723D, which means LNA uses 4
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.h b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
index 0fc70dfdfc8b..da674ab7cb78 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
@@ -95,9 +95,11 @@ struct rtw8723x_efuse {
 		struct rtw8723xe_efuse e;
 		struct rtw8723xu_efuse u;
 		struct rtw8723xs_efuse s;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8723x_efuse) == 0x120);
+
 #define RTW8723X_IQK_ADDA_REG_NUM	16
 #define RTW8723X_IQK_MAC8_REG_NUM	3
 #define RTW8723X_IQK_MAC32_REG_NUM	1
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.h b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
index 954e93c8020d..ac9773b6dee5 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
@@ -101,9 +101,11 @@ struct rtw8821c_efuse {
 		struct rtw8821ce_efuse e;
 		struct rtw8821cu_efuse u;
 		struct rtw8821cs_efuse s;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8821c_efuse) == 0x200);
+
 static inline void
 _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
 {
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.h b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
index 9fca9ba67c90..656f8830a394 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
@@ -103,9 +103,11 @@ struct rtw8822b_efuse {
 		struct rtw8822be_efuse e;
 		struct rtw8822bu_efuse u;
 		struct rtw8822bs_efuse s;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8822b_efuse) == 0x200);
+
 static inline void
 _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
 {
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.h b/drivers/net/wireless/realtek/rtw88/rtw8822c.h
index fc62b67a15f2..e1423448c453 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.h
@@ -102,9 +102,11 @@ struct rtw8822c_efuse {
 		struct rtw8822ce_efuse e;
 		struct rtw8822cu_efuse u;
 		struct rtw8822cs_efuse s;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8822c_efuse) == 0x19a);
+
 enum rtw8822c_dpk_agc_phase {
 	RTW_DPK_GAIN_CHECK,
 	RTW_DPK_GAIN_LARGE,
diff --git a/drivers/net/wireless/realtek/rtw88/rtw88xxa.h b/drivers/net/wireless/realtek/rtw88/rtw88xxa.h
index 09a45c1a4129..1b5297c942d8 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.h
@@ -58,7 +58,7 @@ struct rtw88xxa_efuse {
 	union {
 		struct rtw8821au_efuse rtw8821au;
 		struct rtw8812au_efuse rtw8812au;
-	};
+	} __packed;
 } __packed;
 
 static_assert(sizeof(struct rtw88xxa_efuse) == 512);
-- 
2.25.1


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

end of thread, other threads:[~2026-04-11  7:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-11  7:24 [PATCH rtw-next 1/2] wifi: rtw88: add __packed to efuse map and do assertion Ping-Ke Shih
2026-04-11  7:24 ` [PATCH rtw-next 2/2] wifi: rtw89: " Ping-Ke Shih

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