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; }