]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:41:16 +0000 (18:41 +0200)
[ Upstream commit a7feafea4ce80d5fa5284d05d54b4f108d2ab575 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/realtek/rtw89/coex.c

index 5ccf0cbaed2fa4d332dc7faf26ce67628f41a4fd..ea3664103fbf86ffe7d253379404262a6c8528ce 100644 (file)
@@ -3836,13 +3836,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);
@@ -3868,15 +3868,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;