Commit c3468950 authored by Ping-Ke Shih's avatar Ping-Ke Shih Committed by Kalle Valo

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: default avatarPing-Ke Shih <pkshih@realtek.com>
Acked-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 7fd34dc4
...@@ -363,6 +363,22 @@ static void halbtc_normal_lps(struct btc_coexist *btcoexist) ...@@ -363,6 +363,22 @@ static void halbtc_normal_lps(struct btc_coexist *btcoexist)
} }
} }
static void halbtc_pre_normal_lps(struct btc_coexist *btcoexist)
{
struct rtl_priv *rtlpriv = btcoexist->adapter;
if (btcoexist->bt_info.bt_ctrl_lps) {
btcoexist->bt_info.bt_lps_on = false;
rtl_lps_leave(rtlpriv->mac80211.hw);
}
}
static void halbtc_post_normal_lps(struct btc_coexist *btcoexist)
{
if (btcoexist->bt_info.bt_ctrl_lps)
btcoexist->bt_info.bt_ctrl_lps = false;
}
static void halbtc_leave_low_power(struct btc_coexist *btcoexist) static void halbtc_leave_low_power(struct btc_coexist *btcoexist)
{ {
} }
...@@ -806,6 +822,12 @@ static bool halbtc_set(void *void_btcoexist, u8 set_type, void *in_buf) ...@@ -806,6 +822,12 @@ static bool halbtc_set(void *void_btcoexist, u8 set_type, void *in_buf)
case BTC_SET_ACT_NORMAL_LPS: case BTC_SET_ACT_NORMAL_LPS:
halbtc_normal_lps(btcoexist); halbtc_normal_lps(btcoexist);
break; break;
case BTC_SET_ACT_PRE_NORMAL_LPS:
halbtc_pre_normal_lps(btcoexist);
break;
case BTC_SET_ACT_POST_NORMAL_LPS:
halbtc_post_normal_lps(btcoexist);
break;
case BTC_SET_ACT_DISABLE_LOW_POWER: case BTC_SET_ACT_DISABLE_LOW_POWER:
halbtc_disable_low_power(btcoexist, *bool_tmp); halbtc_disable_low_power(btcoexist, *bool_tmp);
break; break;
......
...@@ -349,6 +349,8 @@ enum btc_set_type { ...@@ -349,6 +349,8 @@ enum btc_set_type {
BTC_SET_ACT_LEAVE_LPS, BTC_SET_ACT_LEAVE_LPS,
BTC_SET_ACT_ENTER_LPS, BTC_SET_ACT_ENTER_LPS,
BTC_SET_ACT_NORMAL_LPS, BTC_SET_ACT_NORMAL_LPS,
BTC_SET_ACT_PRE_NORMAL_LPS,
BTC_SET_ACT_POST_NORMAL_LPS,
BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT, BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT,
BTC_SET_ACT_DISABLE_LOW_POWER, BTC_SET_ACT_DISABLE_LOW_POWER,
BTC_SET_ACT_UPDATE_RAMASK, BTC_SET_ACT_UPDATE_RAMASK,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment