diff options
author | Ping-Ke Shih <pkshih@realtek.com> | 2018-03-05 20:25:47 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2018-03-27 04:54:50 -0400 |
commit | c3468950ef802c659c0ac215e757163833bc563f (patch) | |
tree | ed951f2fde6d58b4af7df26b79872143c724fb3e | |
parent | 7fd34dc4d827d3ba87e650cbb36aa0cbeca50d79 (diff) |
rtlwifi: btcoex: Add pre- and post- normal LPS function
Normal LPS is decomposed into pre- and post- parts, so we can issue H2C
with TDMA parameters in the "critical section" that dirver can't change
LPS state at the moment.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r-- | drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 22 | ||||
-rw-r--r-- | drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h | 2 |
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c index bfb32d476a70..0f664a0490a7 100644 --- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c +++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c | |||
@@ -363,6 +363,22 @@ static void halbtc_normal_lps(struct btc_coexist *btcoexist) | |||
363 | } | 363 | } |
364 | } | 364 | } |
365 | 365 | ||
366 | static void halbtc_pre_normal_lps(struct btc_coexist *btcoexist) | ||
367 | { | ||
368 | struct rtl_priv *rtlpriv = btcoexist->adapter; | ||
369 | |||
370 | if (btcoexist->bt_info.bt_ctrl_lps) { | ||
371 | btcoexist->bt_info.bt_lps_on = false; | ||
372 | rtl_lps_leave(rtlpriv->mac80211.hw); | ||
373 | } | ||
374 | } | ||
375 | |||
376 | static void halbtc_post_normal_lps(struct btc_coexist *btcoexist) | ||
377 | { | ||
378 | if (btcoexist->bt_info.bt_ctrl_lps) | ||
379 | btcoexist->bt_info.bt_ctrl_lps = false; | ||
380 | } | ||
381 | |||
366 | static void halbtc_leave_low_power(struct btc_coexist *btcoexist) | 382 | static void halbtc_leave_low_power(struct btc_coexist *btcoexist) |
367 | { | 383 | { |
368 | } | 384 | } |
@@ -806,6 +822,12 @@ static bool halbtc_set(void *void_btcoexist, u8 set_type, void *in_buf) | |||
806 | case BTC_SET_ACT_NORMAL_LPS: | 822 | case BTC_SET_ACT_NORMAL_LPS: |
807 | halbtc_normal_lps(btcoexist); | 823 | halbtc_normal_lps(btcoexist); |
808 | break; | 824 | break; |
825 | case BTC_SET_ACT_PRE_NORMAL_LPS: | ||
826 | halbtc_pre_normal_lps(btcoexist); | ||
827 | break; | ||
828 | case BTC_SET_ACT_POST_NORMAL_LPS: | ||
829 | halbtc_post_normal_lps(btcoexist); | ||
830 | break; | ||
809 | case BTC_SET_ACT_DISABLE_LOW_POWER: | 831 | case BTC_SET_ACT_DISABLE_LOW_POWER: |
810 | halbtc_disable_low_power(btcoexist, *bool_tmp); | 832 | halbtc_disable_low_power(btcoexist, *bool_tmp); |
811 | break; | 833 | break; |
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h index 1f12449363c2..ad80ec05975e 100644 --- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h +++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h | |||
@@ -349,6 +349,8 @@ enum btc_set_type { | |||
349 | BTC_SET_ACT_LEAVE_LPS, | 349 | BTC_SET_ACT_LEAVE_LPS, |
350 | BTC_SET_ACT_ENTER_LPS, | 350 | BTC_SET_ACT_ENTER_LPS, |
351 | BTC_SET_ACT_NORMAL_LPS, | 351 | BTC_SET_ACT_NORMAL_LPS, |
352 | BTC_SET_ACT_PRE_NORMAL_LPS, | ||
353 | BTC_SET_ACT_POST_NORMAL_LPS, | ||
352 | BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT, | 354 | BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT, |
353 | BTC_SET_ACT_DISABLE_LOW_POWER, | 355 | BTC_SET_ACT_DISABLE_LOW_POWER, |
354 | BTC_SET_ACT_UPDATE_RAMASK, | 356 | BTC_SET_ACT_UPDATE_RAMASK, |