|
|
@@ -132,41 +132,6 @@ static void iwl_mvm_pass_packet_to_mac80211(struct iwl_mvm *mvm,
|
|
|
ieee80211_rx(mvm->hw, skb);
|
|
|
}
|
|
|
|
|
|
-static void iwl_mvm_calc_rssi(struct iwl_mvm *mvm,
|
|
|
- struct iwl_rx_phy_info *phy_info,
|
|
|
- struct ieee80211_rx_status *rx_status)
|
|
|
-{
|
|
|
- int rssi_a, rssi_b, rssi_a_dbm, rssi_b_dbm, max_rssi_dbm;
|
|
|
- u32 agc_a, agc_b;
|
|
|
- u32 val;
|
|
|
-
|
|
|
- val = le32_to_cpu(phy_info->non_cfg_phy[IWL_RX_INFO_AGC_IDX]);
|
|
|
- agc_a = (val & IWL_OFDM_AGC_A_MSK) >> IWL_OFDM_AGC_A_POS;
|
|
|
- agc_b = (val & IWL_OFDM_AGC_B_MSK) >> IWL_OFDM_AGC_B_POS;
|
|
|
-
|
|
|
- val = le32_to_cpu(phy_info->non_cfg_phy[IWL_RX_INFO_RSSI_AB_IDX]);
|
|
|
- rssi_a = (val & IWL_OFDM_RSSI_INBAND_A_MSK) >> IWL_OFDM_RSSI_A_POS;
|
|
|
- rssi_b = (val & IWL_OFDM_RSSI_INBAND_B_MSK) >> IWL_OFDM_RSSI_B_POS;
|
|
|
-
|
|
|
- /*
|
|
|
- * dBm = rssi dB - agc dB - constant.
|
|
|
- * Higher AGC (higher radio gain) means lower signal.
|
|
|
- */
|
|
|
- rssi_a_dbm = rssi_a - IWL_RSSI_OFFSET - agc_a;
|
|
|
- rssi_b_dbm = rssi_b - IWL_RSSI_OFFSET - agc_b;
|
|
|
- max_rssi_dbm = max_t(int, rssi_a_dbm, rssi_b_dbm);
|
|
|
-
|
|
|
- IWL_DEBUG_STATS(mvm, "Rssi In A %d B %d Max %d AGCA %d AGCB %d\n",
|
|
|
- rssi_a_dbm, rssi_b_dbm, max_rssi_dbm, agc_a, agc_b);
|
|
|
-
|
|
|
- rx_status->signal = max_rssi_dbm;
|
|
|
- rx_status->chains = (le16_to_cpu(phy_info->phy_flags) &
|
|
|
- RX_RES_PHY_FLAGS_ANTENNA)
|
|
|
- >> RX_RES_PHY_FLAGS_ANTENNA_POS;
|
|
|
- rx_status->chain_signal[0] = rssi_a_dbm;
|
|
|
- rx_status->chain_signal[1] = rssi_b_dbm;
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* iwl_mvm_get_signal_strength - use new rx PHY INFO API
|
|
|
* values are reported by the fw as positive values - need to negate
|
|
|
@@ -336,10 +301,7 @@ int iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb,
|
|
|
*/
|
|
|
/*rx_status.flag |= RX_FLAG_MACTIME_MPDU;*/
|
|
|
|
|
|
- if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_RX_ENERGY_API)
|
|
|
- iwl_mvm_get_signal_strength(mvm, phy_info, &rx_status);
|
|
|
- else
|
|
|
- iwl_mvm_calc_rssi(mvm, phy_info, &rx_status);
|
|
|
+ iwl_mvm_get_signal_strength(mvm, phy_info, &rx_status);
|
|
|
|
|
|
IWL_DEBUG_STATS_LIMIT(mvm, "Rssi %d, TSF %llu\n", rx_status.signal,
|
|
|
(unsigned long long)rx_status.mactime);
|