git: 1ff23eeab2ef - stable/13 - rtw89: improve debugging and fix a sleep issue

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Mon, 19 Feb 2024 08:07:39 UTC
The branch stable/13 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=1ff23eeab2ef83075532c5d4870480062daa837a

commit 1ff23eeab2ef83075532c5d4870480062daa837a
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-06 16:47:45 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2024-02-19 08:01:58 +0000

    rtw89: improve debugging and fix a sleep issue
    
    Improve log messages to be more helpful in error cases.
    Change one LinuxKPI sleep function as we cannot call the original
    one from a context we cannot sleep.
    Both cases were hit during testing.
    
    (cherry picked from commit 118d0ff54d4f7cffe6a13a1e0cdb2fe23fbfce74)
---
 sys/contrib/dev/rtw89/fw.c  | 9 +++++++++
 sys/contrib/dev/rtw89/phy.c | 4 ++++
 2 files changed, 13 insertions(+)

diff --git a/sys/contrib/dev/rtw89/fw.c b/sys/contrib/dev/rtw89/fw.c
index 3a9b7868b069..2035e600b471 100644
--- a/sys/contrib/dev/rtw89/fw.c
+++ b/sys/contrib/dev/rtw89/fw.c
@@ -481,7 +481,12 @@ static void rtw89_fw_prog_cnt_dump(struct rtw89_dev *rtwdev)
 	for (index = 0; index < 15; index++) {
 		val32 = rtw89_read32(rtwdev, R_AX_DBG_PORT_SEL);
 		rtw89_err(rtwdev, "[ERR]fw PC = 0x%x\n", val32);
+#if defined(__linux__)
 		fsleep(10);
+#elif defined(__FreeBSD__)
+		/* Seems we are called from a context we cannot sleep. */
+		udelay(10);
+#endif
 	}
 }
 
@@ -2473,7 +2478,11 @@ static int rtw89_hw_scan_prehandle(struct rtw89_dev *rtwdev,
 
 	ret = rtw89_hw_scan_update_probe_req(rtwdev, rtwvif);
 	if (ret) {
+#if defined(__linux__)
 		rtw89_err(rtwdev, "Update probe request failed\n");
+#elif defined(__FreeBSD__)
+		rtw89_err(rtwdev, "Update probe request failed: ret %d\n", ret);
+#endif
 		goto out;
 	}
 	ret = rtw89_hw_scan_add_chan_list(rtwdev, rtwvif);
diff --git a/sys/contrib/dev/rtw89/phy.c b/sys/contrib/dev/rtw89/phy.c
index c4dfb192035a..60698f3b5e01 100644
--- a/sys/contrib/dev/rtw89/phy.c
+++ b/sys/contrib/dev/rtw89/phy.c
@@ -1340,7 +1340,11 @@ static void rtw89_phy_init_rf_nctl(struct rtw89_dev *rtwdev)
 	ret = read_poll_timeout(rtw89_phy_nctl_poll, val, val == 0x4, 10,
 				1000, false, rtwdev);
 	if (ret)
+#if defined(__linux__)
 		rtw89_err(rtwdev, "failed to poll nctl block\n");
+#elif defined(__FreeBSD__)
+		rtw89_err(rtwdev, "failed to poll nctl block: ret %d val %#06x\n", ret, val);
+#endif
 
 	nctl_table = chip->nctl_table;
 	rtw89_phy_init_reg(rtwdev, nctl_table, rtw89_phy_config_bb_reg, NULL);