From: Chien-Hsun Liao <ben.liao@xxxxxxxxxxx> After writing a rf register, driver should wait for several microseconds. If we write a rf register and read it immediately without a delay, we could get a wrong value because the writing is not finished yet. Based on the simulation results, writing a rf register by pi write needs 13 microsenconds, writing rf register directly write needs 1 microsecond to complete. Signed-off-by: Chien-Hsun Liao <ben.liao@xxxxxxxxxxx> Signed-off-by: Yan-Hsuan Chuang <yhchuang@xxxxxxxxxxx> --- drivers/net/wireless/realtek/rtw88/phy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c index 51b7fca..7509ef6 100644 --- a/drivers/net/wireless/realtek/rtw88/phy.c +++ b/drivers/net/wireless/realtek/rtw88/phy.c @@ -573,6 +573,8 @@ bool rtw_phy_write_rf_reg_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, rtw_write32(rtwdev, sipi_addr[rf_path], data_and_addr); + udelay(13); + return true; } @@ -595,6 +597,8 @@ bool rtw_phy_write_rf_reg(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, rtw_write32_mask(rtwdev, direct_addr, mask, data); + udelay(1); + return true; } -- 2.7.4