ath9k: stomp audio profiles on weak signal strength
On lower WLAN signal strength, WLAN downlink traffic might suffer from retransmissions. At the mean time, playing SCO/A2DP profiles is affecting WLAN stability. In such scenario, by stomping SCO/A2DP BT traffic completely for a BTCOEX period, gives WLAN traffic an oppertunity to recover PHY rate. It also improves WLAN stability at lower RSSI without sacificing BT traffic. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
b88083bfb3
commit
2884561a64
@@ -729,12 +729,30 @@ void ath9k_mci_set_txpower(struct ath_softc *sc, bool setchannel,
|
||||
ath9k_hw_set_txpowerlimit(ah, sc->config.txpowlimit, false);
|
||||
}
|
||||
|
||||
static void ath9k_mci_stomp_audio(struct ath_softc *sc)
|
||||
{
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_btcoex *btcoex = &sc->btcoex;
|
||||
struct ath_mci_profile *mci = &btcoex->mci;
|
||||
|
||||
if (!mci->num_sco && !mci->num_a2dp)
|
||||
return;
|
||||
|
||||
if (ah->stats.avgbrssi > 25) {
|
||||
btcoex->stomp_audio = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
btcoex->stomp_audio++;
|
||||
}
|
||||
void ath9k_mci_update_rssi(struct ath_softc *sc)
|
||||
{
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_btcoex *btcoex = &sc->btcoex;
|
||||
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
|
||||
|
||||
ath9k_mci_stomp_audio(sc);
|
||||
|
||||
if (!(mci_hw->config & ATH_MCI_CONFIG_CONCUR_TX))
|
||||
return;
|
||||
|
||||
|
Reference in New Issue
Block a user