rtlwifi: btcoexist control to enter/leave LPS
To yield better user experience, have btcoex control LPS's parameters. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Yan-Hsuan Chuang <yhchuang@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>
This commit is contained in:
@@ -242,14 +242,19 @@ static void halbtc_enter_lps(struct btc_coexist *btcoexist)
|
||||
}
|
||||
|
||||
btcoexist->bt_info.bt_ctrl_lps = true;
|
||||
btcoexist->bt_info.bt_lps_on = false;
|
||||
btcoexist->bt_info.bt_lps_on = true;
|
||||
rtl_lps_enter(rtlpriv->mac80211.hw);
|
||||
}
|
||||
|
||||
static void halbtc_normal_lps(struct btc_coexist *btcoexist)
|
||||
{
|
||||
struct rtl_priv *rtlpriv;
|
||||
|
||||
rtlpriv = btcoexist->adapter;
|
||||
|
||||
if (btcoexist->bt_info.bt_ctrl_lps) {
|
||||
btcoexist->bt_info.bt_lps_on = false;
|
||||
rtl_lps_leave(rtlpriv->mac80211.hw);
|
||||
btcoexist->bt_info.bt_ctrl_lps = false;
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,9 @@ static struct rtl_btc_ops rtl_btc_operation = {
|
||||
.btc_is_bt_disabled = rtl_btc_is_bt_disabled,
|
||||
.btc_special_packet_notify = rtl_btc_special_packet_notify,
|
||||
.btc_record_pwr_mode = rtl_btc_record_pwr_mode,
|
||||
.btc_get_lps_val = rtl_btc_get_lps_val,
|
||||
.btc_get_rpwm_val = rtl_btc_get_rpwm_val,
|
||||
.btc_is_bt_ctrl_lps = rtl_btc_is_bt_ctrl_lps,
|
||||
.btc_is_bt_lps_on = rtl_btc_is_bt_lps_on,
|
||||
.btc_get_ampdu_cfg = rtl_btc_get_ampdu_cfg,
|
||||
};
|
||||
@@ -62,6 +65,21 @@ void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len)
|
||||
memcpy(gl_bt_coexist.pwr_mode_val, buf, safe_len);
|
||||
}
|
||||
|
||||
u8 rtl_btc_get_lps_val(struct rtl_priv *rtlpriv)
|
||||
{
|
||||
return gl_bt_coexist.bt_info.lps_val;
|
||||
}
|
||||
|
||||
u8 rtl_btc_get_rpwm_val(struct rtl_priv *rtlpriv)
|
||||
{
|
||||
return gl_bt_coexist.bt_info.rpwm_val;
|
||||
}
|
||||
|
||||
bool rtl_btc_is_bt_ctrl_lps(struct rtl_priv *rtlpriv)
|
||||
{
|
||||
return gl_bt_coexist.bt_info.bt_ctrl_lps;
|
||||
}
|
||||
|
||||
bool rtl_btc_is_bt_lps_on(struct rtl_priv *rtlpriv)
|
||||
{
|
||||
return gl_bt_coexist.bt_info.bt_lps_on;
|
||||
|
@@ -44,6 +44,9 @@ bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv);
|
||||
bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv);
|
||||
void rtl_btc_special_packet_notify(struct rtl_priv *rtlpriv, u8 pkt_type);
|
||||
void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len);
|
||||
u8 rtl_btc_get_lps_val(struct rtl_priv *rtlpriv);
|
||||
u8 rtl_btc_get_rpwm_val(struct rtl_priv *rtlpriv);
|
||||
bool rtl_btc_is_bt_ctrl_lps(struct rtl_priv *rtlpriv);
|
||||
bool rtl_btc_is_bt_lps_on(struct rtl_priv *rtlpriv);
|
||||
void rtl_btc_get_ampdu_cfg(struct rtl_priv *rtlpriv, u8 *reject_agg,
|
||||
u8 *ctrl_agg_size, u8 *agg_size);
|
||||
|
Reference in New Issue
Block a user