diff options
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/rx.c')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rx.c b/drivers/net/wireless/intel/iwlwifi/mvm/rx.c index d1a40688d5e1..d26833c5ce1f 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rx.c @@ -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 */ @@ -383,7 +385,7 @@ void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,  								 false);  		} -		rs_update_last_rssi(mvm, &mvmsta->lq_sta, rx_status); +		rs_update_last_rssi(mvm, mvmsta, rx_status);  		if (iwl_fw_dbg_trigger_enabled(mvm->fw, FW_DBG_TRIGGER_RSSI) &&  		    ieee80211_is_beacon(hdr->frame_control)) { @@ -439,7 +441,8 @@ void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,  		rx_status->bw = RATE_INFO_BW_160;  		break;  	} -	if (rate_n_flags & RATE_MCS_SGI_MSK) +	if (!(rate_n_flags & RATE_MCS_CCK_MSK) && +	    rate_n_flags & RATE_MCS_SGI_MSK)  		rx_status->enc_flags |= RX_ENC_FLAG_SHORT_GI;  	if (rate_n_flags & RATE_HT_MCS_GF_MSK)  		rx_status->enc_flags |= RX_ENC_FLAG_HT_GF;  |