iwlwifi: mvm: decode HE information for MU (without ext info)
authorJohannes Berg <johannes.berg@intel.com>
Tue, 19 Jun 2018 07:21:58 +0000 (09:21 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Sat, 6 Oct 2018 07:25:53 +0000 (10:25 +0300)
When the info type is MU, we still have the data from the TSF
overload words, so should decode that. When it's MU_EXT_INFO
we additionally have the SIG-B common 0/1/2 fields.

Also document the validity depending on the info type and fix
the name of the regular TB PPDU info type accordingly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/rx.h
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index 415b884..0537496 100644 (file)
@@ -368,10 +368,10 @@ enum iwl_rx_he_phy {
        /* trigger encoded */
        IWL_RX_HE_PHY_RU_ALLOC_MASK             = 0xfe0000000000ULL,
        IWL_RX_HE_PHY_INFO_TYPE_MASK            = 0xf000000000000000ULL,
-       IWL_RX_HE_PHY_INFO_TYPE_SU              = 0x0,
-       IWL_RX_HE_PHY_INFO_TYPE_MU              = 0x1,
-       IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO     = 0x2,
-       IWL_RX_HE_PHY_INFO_TYPE_TB_EXT_INFO     = 0x3,
+       IWL_RX_HE_PHY_INFO_TYPE_SU              = 0x0, /* TSF low valid (first DW) */
+       IWL_RX_HE_PHY_INFO_TYPE_MU              = 0x1, /* TSF low/high valid (both DWs) */
+       IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO     = 0x2, /* same + SIGB-common0/1/2 valid */
+       IWL_RX_HE_PHY_INFO_TYPE_TB              = 0x3, /* TSF low/high valid (both DWs) */
 
        /* second dword - MU data */
        IWL_RX_HE_PHY_MU_SIGB_COMPRESSION               = BIT_ULL(32 + 0),
index 61916f3..a63a073 100644 (file)
@@ -1095,8 +1095,9 @@ static void iwl_mvm_decode_he_phy_data(struct iwl_mvm *mvm,
        }
 
        switch (FIELD_GET(IWL_RX_HE_PHY_INFO_TYPE_MASK, he_phy_data)) {
+       case IWL_RX_HE_PHY_INFO_TYPE_MU:
        case IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO:
-       case IWL_RX_HE_PHY_INFO_TYPE_TB_EXT_INFO:
+       case IWL_RX_HE_PHY_INFO_TYPE_TB:
                iwl_mvm_decode_he_phy_ru_alloc(he_phy_data, rate_n_flags,
                                               he, he_mu, rx_status);
                break;