iwlwifi: mvm: support RX flags API change
authorSara Sharon <sara.sharon@intel.com>
Wed, 6 Dec 2017 11:57:19 +0000 (13:57 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 20 Dec 2017 16:28:24 +0000 (18:28 +0200)
Latest firmware calculates both phases of the TKIP
field, so the TTAK ok flag is not needed and deprecated.

Support this API change.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/file.h
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index 0824c00..12f97a2 100644 (file)
@@ -248,6 +248,8 @@ typedef unsigned int __bitwise iwl_ucode_tlv_api_t;
  * @IWL_UCODE_TLV_API_NEW_RX_STATS: should new RX STATISTICS API be used
  * @IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY: Quota command includes a field
  *     indicating low latency direction.
+ * @IWL_UCODE_TLV_API_DEPRECATE_TTAK: RX status flag TTAK ok (bit 7) is
+ *     deprecated.
  *
  * @NUM_IWL_UCODE_TLV_API: number of bits used
  */
@@ -266,6 +268,7 @@ enum iwl_ucode_tlv_api {
        IWL_UCODE_TLV_API_NEW_BEACON_TEMPLATE   = (__force iwl_ucode_tlv_api_t)34,
        IWL_UCODE_TLV_API_NEW_RX_STATS          = (__force iwl_ucode_tlv_api_t)35,
        IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY     = (__force iwl_ucode_tlv_api_t)38,
+       IWL_UCODE_TLV_API_DEPRECATE_TTAK        = (__force iwl_ucode_tlv_api_t)41,
 
        NUM_IWL_UCODE_TLV_API
 #ifdef __CHECKER__
index 63a57f0..d26833c 100644 (file)
@@ -222,7 +222,9 @@ static u32 iwl_mvm_set_mac80211_rx_flag(struct iwl_mvm *mvm,
 
        case RX_MPDU_RES_STATUS_SEC_TKIP_ENC:
                /* Don't drop the frame and decrypt it in SW */
-               if (!(rx_pkt_status & RX_MPDU_RES_STATUS_TTAK_OK))
+               if (!fw_has_api(&mvm->fw->ucode_capa,
+                               IWL_UCODE_TLV_API_DEPRECATE_TTAK) &&
+                   !(rx_pkt_status & RX_MPDU_RES_STATUS_TTAK_OK))
                        return 0;
                *crypt_len = IEEE80211_TKIP_IV_LEN;
                /* fall through if TTAK OK */
index 4a70e62..a3f7c1b 100644 (file)
@@ -261,7 +261,9 @@ static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
                return 0;
        case IWL_RX_MPDU_STATUS_SEC_TKIP:
                /* Don't drop the frame and decrypt it in SW */
-               if (!(status & IWL_RX_MPDU_RES_STATUS_TTAK_OK))
+               if (!fw_has_api(&mvm->fw->ucode_capa,
+                               IWL_UCODE_TLV_API_DEPRECATE_TTAK) &&
+                   !(status & IWL_RX_MPDU_RES_STATUS_TTAK_OK))
                        return 0;
 
                *crypt_len = IEEE80211_TKIP_IV_LEN;