]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
rtlwifi: btcoex: 23b 2ant: some hi-prio pkt will cause hid_exist
authorYan-Hsuan Chuang <yhchuang@realtek.com>
Thu, 6 Apr 2017 20:19:58 +0000 (15:19 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 13 Apr 2017 14:09:39 +0000 (17:09 +0300)
Clear the hid_exist flag by monitoring the packet counter.

Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Pkshih <pkshih@realtek.com>
Cc: Birming Chiu <birming@realtek.com>
Cc: Shaofu <shaofu@realtek.com>
Cc: Steven Ting <steventing@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c

index 1c823a71ce9f50dd75330d14149a0bcc67cda96f..2f3946be4ce29bdb581753b515faa78bf7750be8 100644 (file)
@@ -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);