From: Yan-Hsuan Chuang <[email protected]>

Hook the chip-specific PnP notify functions for the wifi driver to
notify btcoexistence.

Signed-off-by: Yan-Hsuan Chuang <[email protected]>
Signed-off-by: Larry Finger <[email protected]>
Cc: Ping-Ke Shih <[email protected]>
Cc: Birming Chiu <[email protected]>
Cc: Shaofu <[email protected]>
Cc: Steven Ting <[email protected]>
---
 .../realtek/rtlwifi/btcoexist/halbtc8723b2ant.h        |  1 +
 .../wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c  | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.h 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.h
index a98b9548c3c7..ae3e450c5966 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.h
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.h
@@ -196,6 +196,7 @@ void ex_btc8723b2ant_bt_info_notify(struct btc_coexist 
*btcoexist,
 void ex_btc8723b2ant_halt_notify(struct btc_coexist *btcoexist);
 void ex_btc8723b2ant_periodical(struct btc_coexist *btcoexist);
 void ex_btc8723b2ant_display_coex_info(struct btc_coexist *btcoexist);
+void ex_btc8723b2ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state);
 void ex_btc8723b2ant_pre_load_firmware(struct btc_coexist *btcoexist);
 
 #endif
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
index 0cd4926c1ed7..5e6e14fd8c85 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
@@ -916,6 +916,24 @@ void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 
pnp_state)
 {
        if (!halbtc_is_bt_coexist_available(btcoexist))
                return;
+
+       /* currently only 1ant we have to do the notification,
+        * once pnp is notified to sleep state, we have to leave LPS that
+        * we can sleep normally.
+        */
+
+       if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
+               if (btcoexist->board_info.btdm_ant_num == 1)
+                       ex_btc8723b1ant_pnp_notify(btcoexist, pnp_state);
+               else if (btcoexist->board_info.btdm_ant_num == 2)
+                       ex_btc8723b2ant_pnp_notify(btcoexist, pnp_state);
+       } else if (IS_HARDWARE_TYPE_8821(btcoexist->adapter)) {
+               if (btcoexist->board_info.btdm_ant_num == 1)
+                       ex_btc8821a1ant_pnp_notify(btcoexist, pnp_state);
+               else if (btcoexist->board_info.btdm_ant_num == 2)
+                       ex_btc8821a2ant_pnp_notify(btcoexist, pnp_state);
+       } else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
+       }
 }
 
 void exhalbtc_periodical(struct btc_coexist *btcoexist)
-- 
2.13.0

Reply via email to