Lines Matching refs:mvm
74 int iwl_mvm_rx_rx_phy_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb, in iwl_mvm_rx_rx_phy_cmd() argument
79 memcpy(&mvm->last_phy_info, pkt->data, sizeof(mvm->last_phy_info)); in iwl_mvm_rx_rx_phy_cmd()
80 mvm->ampdu_ref++; in iwl_mvm_rx_rx_phy_cmd()
83 if (mvm->last_phy_info.phy_flags & cpu_to_le16(RX_RES_PHY_FLAGS_AGG)) { in iwl_mvm_rx_rx_phy_cmd()
84 spin_lock(&mvm->drv_stats_lock); in iwl_mvm_rx_rx_phy_cmd()
85 mvm->drv_rx_stats.ampdu_count++; in iwl_mvm_rx_rx_phy_cmd()
86 spin_unlock(&mvm->drv_stats_lock); in iwl_mvm_rx_rx_phy_cmd()
98 static void iwl_mvm_pass_packet_to_mac80211(struct iwl_mvm *mvm, in iwl_mvm_pass_packet_to_mac80211() argument
132 ieee80211_rx(mvm->hw, skb); in iwl_mvm_pass_packet_to_mac80211()
141 static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm, in iwl_mvm_get_signal_strength() argument
162 IWL_DEBUG_STATS(mvm, "energy In A %d B %d C %d , and max %d\n", in iwl_mvm_get_signal_strength()
183 static u32 iwl_mvm_set_mac80211_rx_flag(struct iwl_mvm *mvm, in iwl_mvm_set_mac80211_rx_flag() argument
206 IWL_DEBUG_WEP(mvm, "hw decrypted CCMP successfully\n"); in iwl_mvm_set_mac80211_rx_flag()
234 IWL_ERR(mvm, "Unhandled alg: 0x%x\n", rx_pkt_status); in iwl_mvm_set_mac80211_rx_flag()
245 int iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb, in iwl_mvm_rx_rx_mpdu() argument
261 phy_info = &mvm->last_phy_info; in iwl_mvm_rx_rx_mpdu()
273 IWL_ERR(mvm, "alloc_skb failed\n"); in iwl_mvm_rx_rx_mpdu()
282 if (iwl_mvm_set_mac80211_rx_flag(mvm, hdr, rx_status, rx_pkt_status, in iwl_mvm_rx_rx_mpdu()
284 IWL_DEBUG_DROP(mvm, "Bad decryption results 0x%08x\n", in iwl_mvm_rx_rx_mpdu()
291 IWL_DEBUG_DROP(mvm, "dsp size out of range [0,20]: %d\n", in iwl_mvm_rx_rx_mpdu()
303 IWL_DEBUG_RX(mvm, "Bad CRC or FIFO: 0x%08X.\n", rx_pkt_status); in iwl_mvm_rx_rx_mpdu()
325 iwl_mvm_get_signal_strength(mvm, phy_info, rx_status); in iwl_mvm_rx_rx_mpdu()
327 IWL_DEBUG_STATS_LIMIT(mvm, "Rssi %d, TSF %llu\n", rx_status->signal, in iwl_mvm_rx_rx_mpdu()
335 if (unlikely(mvm->csa_tx_block_bcn_timeout)) { in iwl_mvm_rx_rx_mpdu()
337 rcu_dereference(mvm->csa_tx_blocked_vif), hdr->addr2); in iwl_mvm_rx_rx_mpdu()
339 iwl_mvm_sta_modify_disable_tx_ap(mvm, sta, false); in iwl_mvm_rx_rx_mpdu()
343 sta = ieee80211_find_sta_by_ifaddr(mvm->hw, hdr->addr2, NULL); in iwl_mvm_rx_rx_mpdu()
347 rs_update_last_rssi(mvm, &mvmsta->lq_sta, rx_status); in iwl_mvm_rx_rx_mpdu()
349 if (iwl_fw_dbg_trigger_enabled(mvm->fw, FW_DBG_TRIGGER_RSSI) && in iwl_mvm_rx_rx_mpdu()
356 trig = iwl_fw_dbg_get_trigger(mvm->fw, in iwl_mvm_rx_rx_mpdu()
362 iwl_fw_dbg_trigger_check_stop(mvm, mvmsta->vif, in iwl_mvm_rx_rx_mpdu()
365 iwl_mvm_fw_dbg_collect_trig(mvm, trig, NULL); in iwl_mvm_rx_rx_mpdu()
382 rx_status->ampdu_reference = mvm->ampdu_ref; in iwl_mvm_rx_rx_mpdu()
429 iwl_mvm_update_frame_stats(mvm, rate_n_flags, in iwl_mvm_rx_rx_mpdu()
432 iwl_mvm_pass_packet_to_mac80211(mvm, skb, hdr, len, ampdu_status, in iwl_mvm_rx_rx_mpdu()
437 static void iwl_mvm_update_rx_statistics(struct iwl_mvm *mvm, in iwl_mvm_update_rx_statistics() argument
440 lockdep_assert_held(&mvm->mutex); in iwl_mvm_update_rx_statistics()
442 mvm->rx_stats = *rx_stats; in iwl_mvm_update_rx_statistics()
446 struct iwl_mvm *mvm; member
456 struct iwl_mvm *mvm = data->mvm; in iwl_mvm_stat_iterator() local
482 IWL_DEBUG_RX(mvm, "RSSI is 0 - skip signal based decision\n"); in iwl_mvm_stat_iterator()
496 IWL_DEBUG_RX(mvm, "cqm_iterator bt coex high %d\n", in iwl_mvm_stat_iterator()
498 iwl_mvm_bt_rssi_event(mvm, vif, RSSI_EVENT_HIGH); in iwl_mvm_stat_iterator()
503 IWL_DEBUG_RX(mvm, "cqm_iterator bt coex low %d\n", in iwl_mvm_stat_iterator()
505 iwl_mvm_bt_rssi_event(mvm, vif, RSSI_EVENT_LOW); in iwl_mvm_stat_iterator()
517 IWL_DEBUG_RX(mvm, "cqm_iterator cqm low %d\n", in iwl_mvm_stat_iterator()
526 IWL_DEBUG_RX(mvm, "cqm_iterator cqm high %d\n", in iwl_mvm_stat_iterator()
536 iwl_mvm_rx_stats_check_trigger(struct iwl_mvm *mvm, struct iwl_rx_packet *pkt) in iwl_mvm_rx_stats_check_trigger() argument
542 if (!iwl_fw_dbg_trigger_enabled(mvm->fw, FW_DBG_TRIGGER_STATS)) in iwl_mvm_rx_stats_check_trigger()
545 trig = iwl_fw_dbg_get_trigger(mvm->fw, FW_DBG_TRIGGER_STATS); in iwl_mvm_rx_stats_check_trigger()
548 if (!iwl_fw_dbg_trigger_check_stop(mvm, NULL, trig)) in iwl_mvm_rx_stats_check_trigger()
560 iwl_mvm_fw_dbg_collect_trig(mvm, trig, NULL); in iwl_mvm_rx_stats_check_trigger()
563 void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm, in iwl_mvm_handle_rx_statistics() argument
569 .mvm = mvm, in iwl_mvm_handle_rx_statistics()
573 if (mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_STATS_V10) { in iwl_mvm_handle_rx_statistics()
584 iwl_mvm_update_rx_statistics(mvm, &stats->rx); in iwl_mvm_handle_rx_statistics()
586 mvm->radio_stats.rx_time = le64_to_cpu(stats->general.rx_time); in iwl_mvm_handle_rx_statistics()
587 mvm->radio_stats.tx_time = le64_to_cpu(stats->general.tx_time); in iwl_mvm_handle_rx_statistics()
588 mvm->radio_stats.on_time_rf = in iwl_mvm_handle_rx_statistics()
590 mvm->radio_stats.on_time_scan = in iwl_mvm_handle_rx_statistics()
605 iwl_mvm_update_rx_statistics(mvm, &stats->rx); in iwl_mvm_handle_rx_statistics()
608 iwl_mvm_rx_stats_check_trigger(mvm, pkt); in iwl_mvm_handle_rx_statistics()
613 if (!(mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_ASYNC_DTM)) in iwl_mvm_handle_rx_statistics()
614 iwl_mvm_tt_temp_changed(mvm, temperature); in iwl_mvm_handle_rx_statistics()
616 ieee80211_iterate_active_interfaces(mvm->hw, in iwl_mvm_handle_rx_statistics()
622 IWL_ERR(mvm, "received invalid statistics size (%d)!\n", in iwl_mvm_handle_rx_statistics()
626 int iwl_mvm_rx_statistics(struct iwl_mvm *mvm, in iwl_mvm_rx_statistics() argument
630 iwl_mvm_handle_rx_statistics(mvm, rxb_addr(rxb)); in iwl_mvm_rx_statistics()