mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
ath9k_htc: Start/stop btcoex using a helper
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
dbccdd1d32
commit
bf047fcdac
@ -400,6 +400,8 @@ struct ath_btcoex {
|
||||
u32 btscan_no_stomp;
|
||||
};
|
||||
|
||||
void ath9k_htc_start_btcoex(struct ath9k_htc_priv *priv);
|
||||
void ath9k_htc_stop_btcoex(struct ath9k_htc_priv *priv);
|
||||
void ath_htc_init_btcoex_work(struct ath9k_htc_priv *priv);
|
||||
void ath_htc_resume_btcoex_work(struct ath9k_htc_priv *priv);
|
||||
void ath_htc_cancel_btcoex_work(struct ath9k_htc_priv *priv);
|
||||
|
@ -160,6 +160,30 @@ void ath_htc_cancel_btcoex_work(struct ath9k_htc_priv *priv)
|
||||
cancel_delayed_work_sync(&priv->duty_cycle_work);
|
||||
}
|
||||
|
||||
void ath9k_htc_start_btcoex(struct ath9k_htc_priv *priv)
|
||||
{
|
||||
struct ath_hw *ah = priv->ah;
|
||||
|
||||
if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE) {
|
||||
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
|
||||
AR_STOMP_LOW_WLAN_WGHT);
|
||||
ath9k_hw_btcoex_enable(ah);
|
||||
ath_htc_resume_btcoex_work(priv);
|
||||
}
|
||||
}
|
||||
|
||||
void ath9k_htc_stop_btcoex(struct ath9k_htc_priv *priv)
|
||||
{
|
||||
struct ath_hw *ah = priv->ah;
|
||||
|
||||
if (ah->btcoex_hw.enabled &&
|
||||
ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) {
|
||||
ath9k_hw_btcoex_disable(ah);
|
||||
if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
|
||||
ath_htc_cancel_btcoex_work(priv);
|
||||
}
|
||||
}
|
||||
|
||||
/*******/
|
||||
/* LED */
|
||||
/*******/
|
||||
|
@ -957,12 +957,8 @@ static int ath9k_htc_start(struct ieee80211_hw *hw)
|
||||
mod_timer(&priv->tx.cleanup_timer,
|
||||
jiffies + msecs_to_jiffies(ATH9K_HTC_TX_CLEANUP_INTERVAL));
|
||||
|
||||
if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE) {
|
||||
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
|
||||
AR_STOMP_LOW_WLAN_WGHT);
|
||||
ath9k_hw_btcoex_enable(ah);
|
||||
ath_htc_resume_btcoex_work(priv);
|
||||
}
|
||||
ath9k_htc_start_btcoex(priv);
|
||||
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
||||
return ret;
|
||||
@ -1009,12 +1005,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
|
||||
|
||||
mutex_lock(&priv->mutex);
|
||||
|
||||
if (ah->btcoex_hw.enabled &&
|
||||
ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) {
|
||||
ath9k_hw_btcoex_disable(ah);
|
||||
if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
|
||||
ath_htc_cancel_btcoex_work(priv);
|
||||
}
|
||||
ath9k_htc_stop_btcoex(priv);
|
||||
|
||||
/* Remove a monitor interface if it's present. */
|
||||
if (priv->ah->is_monitoring)
|
||||
|
Loading…
Reference in New Issue
Block a user