]> git.baikalelectronics.ru Git - kernel.git/commitdiff
iwlwifi: mvm: don't request mac80211 to disable/enable sta's queues
authorNaftali Goldstein <naftali.goldstein@intel.com>
Fri, 18 Jun 2021 08:01:13 +0000 (11:01 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 22 Jun 2021 13:57:55 +0000 (16:57 +0300)
When operating in AP mode with NICs supporting the AP_LINK_PS hw flag,
mac80211 doesn't need to start/stop queueing tx for connected stations
because the FW already handles that.

Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210618105614.64df994c8fbb.I0fa5cda3a5f893a396eef30a01522422be359e69@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/sta.c

index f618368eda832cbbc09dbbe69ae78f383abe9d16..9c45a64c5009409deb09832712dada7c7dc5e11a 100644 (file)
@@ -3794,8 +3794,12 @@ void iwl_mvm_sta_modify_disable_tx_ap(struct iwl_mvm *mvm,
 
        mvm_sta->disable_tx = disable;
 
-       /* Tell mac80211 to start/stop queuing tx for this station */
-       ieee80211_sta_block_awake(mvm->hw, sta, disable);
+       /*
+        * If sta PS state is handled by mac80211, tell it to start/stop
+        * queuing tx for this station.
+        */
+       if (!ieee80211_hw_check(mvm->hw, AP_LINK_PS))
+               ieee80211_sta_block_awake(mvm->hw, sta, disable);
 
        iwl_mvm_sta_modify_disable_tx(mvm, mvm_sta, disable);