iwlwifi: mvm: only enable HE DCM if we also support TX
authorMordechay Goodstein <mordechay.goodstein@intel.com>
Sat, 29 Jan 2022 11:16:13 +0000 (13:16 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 18 Feb 2022 08:40:51 +0000 (10:40 +0200)
Currently we enable DCM if the peer supports RX without checking whether
we advertised that we support TX.  Fix this by also checking that our TX
side is set.

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20220129105618.6865266c8a34.If1de7849f25337bb14ba2f27896e9715ae5975df@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c

index 0611874..6ba591f 100644 (file)
@@ -97,7 +97,10 @@ static u16 rs_fw_get_config_flags(struct iwl_mvm *mvm,
 
        if (he_cap->has_he &&
            (he_cap->he_cap_elem.phy_cap_info[3] &
-            IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK))
+            IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK &&
+            sband->iftype_data &&
+            sband->iftype_data->he_cap.he_cap_elem.phy_cap_info[3] &
+            IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK))
                flags |= IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_1_MSK;
 
        return flags;