iwlwifi: consider HE capability when setting LDPC
authorMordechay Goodstein <mordechay.goodstein@intel.com>
Fri, 6 Mar 2020 13:16:22 +0000 (15:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Apr 2020 07:08:44 +0000 (09:08 +0200)
commit cb377dfda1755b3bc01436755d866c8e5336a762 upstream.

The AP may set the LDPC capability only in HE (IEEE80211_HE_PHY_CAP1),
but we were checking it only in the HT capabilities.

If we don't use this capability when required, the DSP gets the wrong
configuration in HE and doesn't work properly.

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Fixes: befebbb30af0 ("iwlwifi: rs: consider LDPC capability in case of HE")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20200306151128.492d167c1a25.I1ad1353dbbf6c99ae57814be750f41a1c9f7f4ac@changeid
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c

index 098d481..24df318 100644 (file)
@@ -147,7 +147,11 @@ static u16 rs_fw_get_config_flags(struct iwl_mvm *mvm,
             (vht_ena && (vht_cap->cap & IEEE80211_VHT_CAP_RXLDPC))))
                flags |= IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK;
 
-       /* consider our LDPC support in case of HE */
+       /* consider LDPC support in case of HE */
+       if (he_cap->has_he && (he_cap->he_cap_elem.phy_cap_info[1] &
+           IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD))
+               flags |= IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK;
+
        if (sband->iftype_data && sband->iftype_data->he_cap.has_he &&
            !(sband->iftype_data->he_cap.he_cap_elem.phy_cap_info[1] &
             IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD))