ath10k: limit multi-vif ps more aggresivelly
Further testing proved that multi-channel AP+STA on QCA6174 with RM.2.0-00088 should have powersave force-disabled to avoid beacon misses/skipping on either side which in turn could disrupt communication. Since AP never has arvif->ps don't even bother checking it. Other combinations may be broken as well so disallow powersave with multivif outright unless firmware advertises otherwise. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
835d56a10c
commit
424f263014
@ -1668,7 +1668,7 @@ static int ath10k_mac_vif_recalc_ps_poll_count(struct ath10k_vif *arvif)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ath10k_mac_ps_vif_count(struct ath10k *ar)
|
||||
static int ath10k_mac_num_vifs_started(struct ath10k *ar)
|
||||
{
|
||||
struct ath10k_vif *arvif;
|
||||
int num = 0;
|
||||
@ -1676,7 +1676,7 @@ static int ath10k_mac_ps_vif_count(struct ath10k *ar)
|
||||
lockdep_assert_held(&ar->conf_mutex);
|
||||
|
||||
list_for_each_entry(arvif, &ar->arvifs, list)
|
||||
if (arvif->ps)
|
||||
if (arvif->is_started)
|
||||
num++;
|
||||
|
||||
return num;
|
||||
@ -1700,7 +1700,7 @@ static int ath10k_mac_vif_setup_ps(struct ath10k_vif *arvif)
|
||||
|
||||
enable_ps = arvif->ps;
|
||||
|
||||
if (enable_ps && ath10k_mac_ps_vif_count(ar) > 1 &&
|
||||
if (enable_ps && ath10k_mac_num_vifs_started(ar) > 1 &&
|
||||
!test_bit(ATH10K_FW_FEATURE_MULTI_VIF_PS_SUPPORT,
|
||||
ar->fw_features)) {
|
||||
ath10k_warn(ar, "refusing to enable ps on vdev %i: not supported by fw\n",
|
||||
|
Loading…
Reference in New Issue
Block a user