From ec400f25bbd164ae59c7846cb5f13fe0e7a44743 Mon Sep 17 00:00:00 2001 From: Prithvi Tambewagh Date: Thu, 9 Apr 2026 19:20:25 +0530 Subject: [PATCH] staging: rtl8723bs: use read_poll_timeout_atomic in _is_fw_read_cmd_down Replace the existing rtw_read8() and do-while loop mechanism with read_poll_timeout_atomic() from , in _is_fw_read_cmd_down() which is a standard Linux macro, ensuring polling REG_HMETFR efficiently. Signed-off-by: Prithvi Tambewagh Reviewed-by: Luka Gejak Link: https://patch.msgid.link/20260409135026.137904-5-activprithvi@gmail.com Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c b/drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c index 12416e499ac3..4bdc8e314015 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c @@ -8,6 +8,7 @@ #include #include #include +#include #include "hal_com_h2c.h" #define MAX_H2C_BOX_NUMS 4 @@ -18,20 +19,15 @@ static u8 _is_fw_read_cmd_down(struct adapter *padapter, u8 msgbox_num) { - u8 read_down = false; - int retry_cnts = 100; - u8 valid; + int ret; - do { - valid = rtw_read8(padapter, REG_HMETFR) & BIT(msgbox_num); - if (0 == valid) { - read_down = true; - } - } while ((!read_down) && (retry_cnts--)); - - return read_down; + ret = read_poll_timeout_atomic(rtw_read8, + valid, !(valid & BIT(msgbox_num)), + 0, 500, false, + padapter, REG_HMETFR); + return !ret; }