From: Yan-Hsuan Chuang <yhchu...@realtek.com>

Clear the hid_exist flag by monitoring the packet counter.

Signed-off-by: Yan-Hsuan Chuang <yhchu...@realtek.com>
Signed-off-by: Larry Finger <larry.fin...@lwfinger.net>
Cc: Pkshih <pks...@realtek.com>
Cc: Birming Chiu <birm...@realtek.com>
Cc: Shaofu <sha...@realtek.com>
Cc: Steven Ting <stevent...@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
index 1c823a71ce9f..2f3946be4ce2 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
@@ -4329,6 +4329,7 @@ void ex_btc8723b2ant_pnp_notify(struct btc_coexist 
*btcoexist, u8 pnp_state)
 void ex_btc8723b2ant_periodical(struct btc_coexist *btcoexist)
 {
        struct rtl_priv *rtlpriv = btcoexist->adapter;
+       struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
 
        RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
                 "[BTCoex], 
==========================Periodical===========================\n");
@@ -4352,6 +4353,13 @@ void ex_btc8723b2ant_periodical(struct btc_coexist 
*btcoexist)
        btc8723b2ant_monitor_bt_ctr(btcoexist);
        btc8723b2ant_monitor_wifi_ctr(btcoexist);
 
+       /* for some BT speakers that High-Priority pkts appear before
+        * playing, this will cause HID exist
+        */
+       if ((coex_sta->high_priority_tx + coex_sta->high_priority_rx < 50) &&
+           (bt_link_info->hid_exist))
+               bt_link_info->hid_exist = false;
+
        if (btc8723b2ant_is_wifi_status_changed(btcoexist) ||
            coex_dm->auto_tdma_adjust)
                btc8723b2ant_run_coexist_mechanism(btcoexist);
-- 
2.12.0

Reply via email to