iwlwifi: mvm: set default new STA as non-aggregated
authorLiad Kaufman <liad.kaufman@intel.com>
Thu, 24 Sep 2015 08:44:12 +0000 (10:44 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 13 Dec 2015 06:19:36 +0000 (08:19 +0200)
When sending the first ADD_STA HCMD for a STA, the %add_modify
field indicates an addition of a STA and not a modification
of one. In such a case, all fields of the HCMD are used to
initialize the corresponding fields in the FW, regardless of
what bits are set in %modify_mask.

Set the %tid_disable_tx field to mvm_sta->tid_disable_agg in
iwl_mvm_sta_send_to_fw(). If the STA is only updated this will
have no effect, but if it is added - it will make sure the
STA starts with the correct queues - if any - configured as
non-aggregated by default (until told otherwise).

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/sta.c

index 354acbde088e9e6fad0927a9ef73787ab235558c..dc3206a353e1277b9872461777dde82bd65b0964 100644 (file)
@@ -106,6 +106,7 @@ int iwl_mvm_sta_send_to_fw(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
                .add_modify = update ? 1 : 0,
                .station_flags_msk = cpu_to_le32(STA_FLG_FAT_EN_MSK |
                                                 STA_FLG_MIMO_EN_MSK),
+               .tid_disable_tx = cpu_to_le16(mvm_sta->tid_disable_agg),
        };
        int ret;
        u32 status;
@@ -622,6 +623,7 @@ static int iwl_mvm_add_int_sta_common(struct iwl_mvm *mvm,
                                                             color));
 
        cmd.tfd_queue_msk = cpu_to_le32(sta->tfd_queue_msk);
+       cmd.tid_disable_tx = cpu_to_le16(0xffff);
 
        if (addr)
                memcpy(cmd.addr, addr, ETH_ALEN);