iwlwifi: mvm: fix PS-Poll enablement
We added the uAPSD enabled ACs and that made the firmware choose to pull frames with uAPSD trigger frames instead of PS-Poll. Fix that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
36401cb7ff
commit
143b0b2ae8
|
@ -174,6 +174,14 @@ static void iwl_mvm_power_configure_uapsd(struct iwl_mvm *mvm,
|
||||||
enum ieee80211_ac_numbers ac;
|
enum ieee80211_ac_numbers ac;
|
||||||
bool tid_found = false;
|
bool tid_found = false;
|
||||||
|
|
||||||
|
#ifdef CONFIG_IWLWIFI_DEBUGFS
|
||||||
|
/* set advanced pm flag with no uapsd ACs to enable ps-poll */
|
||||||
|
if (mvmvif->dbgfs_pm.use_ps_poll) {
|
||||||
|
cmd->flags |= cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
for (ac = IEEE80211_AC_VO; ac <= IEEE80211_AC_BK; ac++) {
|
for (ac = IEEE80211_AC_VO; ac <= IEEE80211_AC_BK; ac++) {
|
||||||
if (!mvmvif->queue_params[ac].uapsd)
|
if (!mvmvif->queue_params[ac].uapsd)
|
||||||
continue;
|
continue;
|
||||||
|
@ -204,16 +212,6 @@ static void iwl_mvm_power_configure_uapsd(struct iwl_mvm *mvm,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(cmd->flags & cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK))) {
|
|
||||||
#ifdef CONFIG_IWLWIFI_DEBUGFS
|
|
||||||
/* set advanced pm flag with no uapsd ACs to enable ps-poll */
|
|
||||||
if (mvmvif->dbgfs_pm.use_ps_poll)
|
|
||||||
cmd->flags |=
|
|
||||||
cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK);
|
|
||||||
#endif
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd->flags |= cpu_to_le16(POWER_FLAGS_UAPSD_MISBEHAVING_ENA_MSK);
|
cmd->flags |= cpu_to_le16(POWER_FLAGS_UAPSD_MISBEHAVING_ENA_MSK);
|
||||||
|
|
||||||
if (cmd->uapsd_ac_flags == (BIT(IEEE80211_AC_VO) |
|
if (cmd->uapsd_ac_flags == (BIT(IEEE80211_AC_VO) |
|
||||||
|
|
Loading…
Reference in New Issue