]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: coex: Not to set slot duration to zero to avoid firmware issue
authorChing-Te Ku <ku920601@realtek.com>
Mon, 16 Jun 2025 09:02:49 +0000 (17:02 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Tue, 24 Jun 2025 06:28:21 +0000 (14:28 +0800)
If the duration set to zero, Wi-Fi firmware will trigger some unexpected
issue when firmware try to enable timer.

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250616090252.51098-9-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/coex.c

index 138b3559a37be7e9b20eaa375b6dbab7dcfeb79b..60760512e93d8c086bdba1aeeee9ad6b47045fae 100644 (file)
@@ -4125,13 +4125,13 @@ void rtw89_btc_set_policy_v1(struct rtw89_dev *rtwdev, u16 policy_type)
 
                switch (policy_type) {
                case BTC_CXP_OFFE_2GBWISOB: /* for normal-case */
-                       _slot_set(btc, CXST_E2G, 0, tbl_w1, SLOT_ISO);
+                       _slot_set(btc, CXST_E2G, 5, tbl_w1, SLOT_ISO);
                        _slot_set_le(btc, CXST_EBT, s_def[CXST_EBT].dur,
                                     s_def[CXST_EBT].cxtbl, s_def[CXST_EBT].cxtype);
                        _slot_set_dur(btc, CXST_EBT, dur_2);
                        break;
                case BTC_CXP_OFFE_2GISOB: /* for bt no-link */
-                       _slot_set(btc, CXST_E2G, 0, cxtbl[1], SLOT_ISO);
+                       _slot_set(btc, CXST_E2G, 5, cxtbl[1], SLOT_ISO);
                        _slot_set_le(btc, CXST_EBT, s_def[CXST_EBT].dur,
                                     s_def[CXST_EBT].cxtbl, s_def[CXST_EBT].cxtype);
                        _slot_set_dur(btc, CXST_EBT, dur_2);
@@ -4157,15 +4157,15 @@ void rtw89_btc_set_policy_v1(struct rtw89_dev *rtwdev, u16 policy_type)
                        break;
                case BTC_CXP_OFFE_2GBWMIXB:
                        if (a2dp->exist)
-                               _slot_set(btc, CXST_E2G, 0, cxtbl[2], SLOT_MIX);
+                               _slot_set(btc, CXST_E2G, 5, cxtbl[2], SLOT_MIX);
                        else
-                               _slot_set(btc, CXST_E2G, 0, tbl_w1, SLOT_MIX);
+                               _slot_set(btc, CXST_E2G, 5, tbl_w1, SLOT_MIX);
                        _slot_set_le(btc, CXST_EBT, s_def[CXST_EBT].dur,
                                     s_def[CXST_EBT].cxtbl, s_def[CXST_EBT].cxtype);
                        break;
                case BTC_CXP_OFFE_WL: /* for 4-way */
-                       _slot_set(btc, CXST_E2G, 0, cxtbl[1], SLOT_MIX);
-                       _slot_set(btc, CXST_EBT, 0, cxtbl[1], SLOT_MIX);
+                       _slot_set(btc, CXST_E2G, 5, cxtbl[1], SLOT_MIX);
+                       _slot_set(btc, CXST_EBT, 5, cxtbl[1], SLOT_MIX);
                        break;
                default:
                        break;