[PATCH v4 2/2] staging: rtl8723bs: unwind cast mess and remove phy_stat struct

From: Timo Joannin

Date: Wed Oct 07 2026 - 06:20:21 EST


Propagate the real struct type all the way through
the call chain to remove redundant casts to and from u8 *.

Remove redundant phy_stat struct, along with the dead function
prototype rtl8723b_query_rx_phy_status() which referenced it.

Signed-off-by: Timo Joannin <timo.joannin@xxxxxxxxx>
---
drivers/staging/rtl8723bs/hal/odm_HWConfig.c | 7 +++----
drivers/staging/rtl8723bs/hal/odm_HWConfig.h | 3 ++-
drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c | 7 ++++---
.../staging/rtl8723bs/include/rtl8192c_recv.h | 18 ------------------
.../staging/rtl8723bs/include/rtl8723b_recv.h | 1 -
5 files changed, 9 insertions(+), 27 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/odm_HWConfig.c b/drivers/staging/rtl8723bs/hal/odm_HWConfig.c
index bf2479c01873..c85194c8fe67 100644
--- a/drivers/staging/rtl8723bs/hal/odm_HWConfig.c
+++ b/drivers/staging/rtl8723bs/hal/odm_HWConfig.c
@@ -95,7 +95,7 @@ static s8 odm_cck_rssi(u8 lna_idx, u8 vga_idx)

static void odm_rx_phy_status_parsing(struct dm_odm_t *dm_odm,
struct odm_phy_info *phy_info,
- u8 *phy_status,
+ struct rtl8723bs_phy_status_rpt *phy_sta_rpt,
struct odm_packet_info *pkt_info)
{
u8 i;
@@ -105,8 +105,6 @@ static void odm_rx_phy_status_parsing(struct dm_odm_t *dm_odm,
bool is_cck_rate = false;
u8 rf_rx_num = 0;
u8 lna_idx, vga_idx;
- struct rtl8723bs_phy_status_rpt *phy_sta_rpt =
- (struct rtl8723bs_phy_status_rpt *)phy_status;

is_cck_rate = pkt_info->data_rate <= DESC_RATE11M;
phy_info->rx_mimo_signal_quality[RF_PATH_A] = -1;
@@ -384,7 +382,8 @@ static void odm_Process_RSSIForDM(

/* Endianness before calling this API */
void odm_phy_status_query(struct dm_odm_t *dm_odm, struct odm_phy_info *phy_info,
- u8 *phy_status, struct odm_packet_info *pkt_info)
+ struct rtl8723bs_phy_status_rpt *phy_status,
+ struct odm_packet_info *pkt_info)
{

odm_rx_phy_status_parsing(dm_odm, phy_info, phy_status, pkt_info);
diff --git a/drivers/staging/rtl8723bs/hal/odm_HWConfig.h b/drivers/staging/rtl8723bs/hal/odm_HWConfig.h
index ae010cae9dd7..21182a880da3 100644
--- a/drivers/staging/rtl8723bs/hal/odm_HWConfig.h
+++ b/drivers/staging/rtl8723bs/hal/odm_HWConfig.h
@@ -57,7 +57,8 @@ struct rtl8723bs_phy_status_rpt {
};

void odm_phy_status_query(struct dm_odm_t *dm_odm, struct odm_phy_info *phy_info,
- u8 *phy_status, struct odm_packet_info *pkt_info);
+ struct rtl8723bs_phy_status_rpt *phy_status,
+ struct odm_packet_info *pkt_info);

enum hal_status ODM_ConfigRFWithTxPwrTrackHeaderFile(struct dm_odm_t *pDM_Odm);

diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c
index 304fda3a3b5c..a62b845c69f9 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c
@@ -73,7 +73,7 @@ static void update_recvframe_attrib(struct adapter *padapter,
*precvframe->u.hdr.rx_data should be ready!
*/
static void update_recvframe_phyinfo(union recv_frame *precvframe,
- struct phy_stat *pphy_status)
+ struct rtl8723bs_phy_status_rpt *pphy_status)
{
struct adapter *padapter = precvframe->u.hdr.adapter;
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
@@ -125,7 +125,7 @@ static void update_recvframe_phyinfo(union recv_frame *precvframe,
pkt_info.data_rate = pattrib->data_rate;

odm_phy_status_query(&p_hal_data->odmpriv, p_phy_info,
- (u8 *)pphy_status, &(pkt_info));
+ pphy_status, &(pkt_info));
if (psta)
psta->rssi = pattrib->phy_info.RecvSignalPower;
precvframe->u.hdr.psta = NULL;
@@ -317,7 +317,8 @@ static void rtl8723bs_recv_tasklet(struct tasklet_struct *t)

if (pattrib->pkt_rpt_type == NORMAL_RX) { /* Normal rx packet */
if (pattrib->physt)
- update_recvframe_phyinfo(precvframe, (struct phy_stat *)ptr);
+ update_recvframe_phyinfo(precvframe,
+ (struct rtl8723bs_phy_status_rpt *)ptr);

rtw_recv_entry(precvframe);
} else if (pattrib->pkt_rpt_type == C2H_PACKET) {
diff --git a/drivers/staging/rtl8723bs/include/rtl8192c_recv.h b/drivers/staging/rtl8723bs/include/rtl8192c_recv.h
index b63625ab4e45..072e2b5f6129 100644
--- a/drivers/staging/rtl8723bs/include/rtl8192c_recv.h
+++ b/drivers/staging/rtl8723bs/include/rtl8192c_recv.h
@@ -9,24 +9,6 @@

#define MAX_RECVBUF_SZ (10240)

-struct phy_stat {
- unsigned int phydw0;
-
- unsigned int phydw1;
-
- unsigned int phydw2;
-
- unsigned int phydw3;
-
- unsigned int phydw4;
-
- unsigned int phydw5;
-
- unsigned int phydw6;
-
- unsigned int phydw7;
-};
-
/* Rx smooth factor */
#define Rx_Smooth_Factor (20)

diff --git a/drivers/staging/rtl8723bs/include/rtl8723b_recv.h b/drivers/staging/rtl8723bs/include/rtl8723b_recv.h
index e9ebecb224a6..2f230e2d27a4 100644
--- a/drivers/staging/rtl8723bs/include/rtl8723b_recv.h
+++ b/drivers/staging/rtl8723bs/include/rtl8723b_recv.h
@@ -84,7 +84,6 @@ struct rxreport_8723b {
s32 rtl8723bs_init_recv_priv(struct adapter *padapter);
void rtl8723bs_free_recv_priv(struct adapter *padapter);

-void rtl8723b_query_rx_phy_status(union recv_frame *prframe, struct phy_stat *pphy_stat);
void rtl8723b_process_phy_info(struct adapter *padapter, void *prframe);

void rtl8723b_read_chip_version(struct adapter *padapter);
--
2.55.0