Skip to content

Commit

Permalink
ath10k: limit multi-vif ps more aggresivelly
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michal Kazior authored and Kalle Valo committed Jul 11, 2015
1 parent 835d56a commit 424f263
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/net/wireless/ath/ath10k/mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1668,15 +1668,15 @@ 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;

lockdep_assert_held(&ar->conf_mutex);

list_for_each_entry(arvif, &ar->arvifs, list)
if (arvif->ps)
if (arvif->is_started)
num++;

return num;
Expand All @@ -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",
Expand Down

0 comments on commit 424f263

Please sign in to comment.