Lines Matching refs:mvm

364 	struct iwl_mvm *mvm;  member
867 static inline bool iwl_mvm_is_radio_killed(struct iwl_mvm *mvm) in iwl_mvm_is_radio_killed() argument
869 return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status) || in iwl_mvm_is_radio_killed()
870 test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status); in iwl_mvm_is_radio_killed()
873 static inline bool iwl_mvm_is_radio_hw_killed(struct iwl_mvm *mvm) in iwl_mvm_is_radio_hw_killed() argument
875 return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); in iwl_mvm_is_radio_hw_killed()
882 iwl_mvm_sta_from_staid_rcu(struct iwl_mvm *mvm, u8 sta_id) in iwl_mvm_sta_from_staid_rcu() argument
886 if (sta_id >= ARRAY_SIZE(mvm->fw_id_to_mac_id)) in iwl_mvm_sta_from_staid_rcu()
889 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]); in iwl_mvm_sta_from_staid_rcu()
899 iwl_mvm_sta_from_staid_protected(struct iwl_mvm *mvm, u8 sta_id) in iwl_mvm_sta_from_staid_protected() argument
903 if (sta_id >= ARRAY_SIZE(mvm->fw_id_to_mac_id)) in iwl_mvm_sta_from_staid_protected()
906 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[sta_id], in iwl_mvm_sta_from_staid_protected()
907 lockdep_is_held(&mvm->mutex)); in iwl_mvm_sta_from_staid_protected()
916 static inline bool iwl_mvm_is_d0i3_supported(struct iwl_mvm *mvm) in iwl_mvm_is_d0i3_supported() argument
918 return mvm->trans->cfg->d0i3 && in iwl_mvm_is_d0i3_supported()
919 mvm->trans->d0i3_mode != IWL_D0I3_MODE_OFF && in iwl_mvm_is_d0i3_supported()
921 fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_d0i3_supported()
925 static inline bool iwl_mvm_is_dqa_supported(struct iwl_mvm *mvm) in iwl_mvm_is_dqa_supported() argument
927 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_dqa_supported()
931 static inline bool iwl_mvm_is_lar_supported(struct iwl_mvm *mvm) in iwl_mvm_is_lar_supported() argument
933 bool nvm_lar = mvm->nvm_data->lar_enabled; in iwl_mvm_is_lar_supported()
934 bool tlv_lar = fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_lar_supported()
944 if (mvm->cfg->device_family == IWL_DEVICE_FAMILY_8000) in iwl_mvm_is_lar_supported()
950 static inline bool iwl_mvm_is_wifi_mcc_supported(struct iwl_mvm *mvm) in iwl_mvm_is_wifi_mcc_supported() argument
952 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_wifi_mcc_supported()
954 fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_wifi_mcc_supported()
958 static inline bool iwl_mvm_bt_is_plcr_supported(struct iwl_mvm *mvm) in iwl_mvm_bt_is_plcr_supported() argument
960 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_bt_is_plcr_supported()
965 static inline bool iwl_mvm_bt_is_rrc_supported(struct iwl_mvm *mvm) in iwl_mvm_bt_is_rrc_supported() argument
967 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_bt_is_rrc_supported()
972 static inline bool iwl_mvm_is_csum_supported(struct iwl_mvm *mvm) in iwl_mvm_is_csum_supported() argument
974 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_csum_supported()
978 static inline bool iwl_mvm_has_new_rx_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_rx_api() argument
994 void __iwl_mvm_mac_stop(struct iwl_mvm *mvm);
995 int __iwl_mvm_mac_start(struct iwl_mvm *mvm);
1001 int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm);
1010 void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm);
1012 u8 iwl_mvm_next_antenna(struct iwl_mvm *mvm, u8 valid, u8 last_idx);
1015 int __must_check iwl_mvm_send_cmd(struct iwl_mvm *mvm,
1017 int __must_check iwl_mvm_send_cmd_pdu(struct iwl_mvm *mvm, u32 id,
1019 int __must_check iwl_mvm_send_cmd_status(struct iwl_mvm *mvm,
1022 int __must_check iwl_mvm_send_cmd_pdu_status(struct iwl_mvm *mvm, u32 id,
1025 int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
1027 int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb);
1028 void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
1031 void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd *tx_cmd,
1039 int iwl_mvm_flush_tx_path(struct iwl_mvm *mvm, u32 tfd_msk, u32 flags);
1040 void iwl_mvm_async_handlers_purge(struct iwl_mvm *mvm);
1053 static inline void iwl_mvm_wait_for_async_handlers(struct iwl_mvm *mvm) in iwl_mvm_wait_for_async_handlers() argument
1055 flush_work(&mvm->async_handlers_wk); in iwl_mvm_wait_for_async_handlers()
1059 void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
1061 void iwl_mvm_rx_statistics(struct iwl_mvm *mvm,
1063 int iwl_mvm_request_statistics(struct iwl_mvm *mvm, bool clear);
1064 void iwl_mvm_accu_radio_stats(struct iwl_mvm *mvm);
1067 int iwl_nvm_init(struct iwl_mvm *mvm, bool read_nvm_from_nic);
1068 int iwl_mvm_load_nvm_to_nic(struct iwl_mvm *mvm);
1070 static inline u8 iwl_mvm_get_valid_tx_ant(struct iwl_mvm *mvm) in iwl_mvm_get_valid_tx_ant() argument
1072 return mvm->nvm_data && mvm->nvm_data->valid_tx_ant ? in iwl_mvm_get_valid_tx_ant()
1073 mvm->fw->valid_tx_ant & mvm->nvm_data->valid_tx_ant : in iwl_mvm_get_valid_tx_ant()
1074 mvm->fw->valid_tx_ant; in iwl_mvm_get_valid_tx_ant()
1077 static inline u8 iwl_mvm_get_valid_rx_ant(struct iwl_mvm *mvm) in iwl_mvm_get_valid_rx_ant() argument
1079 return mvm->nvm_data && mvm->nvm_data->valid_rx_ant ? in iwl_mvm_get_valid_rx_ant()
1080 mvm->fw->valid_rx_ant & mvm->nvm_data->valid_rx_ant : in iwl_mvm_get_valid_rx_ant()
1081 mvm->fw->valid_rx_ant; in iwl_mvm_get_valid_rx_ant()
1084 static inline u32 iwl_mvm_get_phy_config(struct iwl_mvm *mvm) in iwl_mvm_get_phy_config() argument
1088 u32 valid_rx_ant = iwl_mvm_get_valid_rx_ant(mvm); in iwl_mvm_get_phy_config()
1089 u32 valid_tx_ant = iwl_mvm_get_valid_tx_ant(mvm); in iwl_mvm_get_phy_config()
1094 return mvm->fw->phy_config & phy_config; in iwl_mvm_get_phy_config()
1097 int iwl_mvm_up(struct iwl_mvm *mvm);
1098 int iwl_mvm_load_d3_fw(struct iwl_mvm *mvm);
1100 int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm);
1101 bool iwl_mvm_bcast_filter_build_cmd(struct iwl_mvm *mvm,
1108 void iwl_mvm_rx_rx_phy_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1109 void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,
1111 void iwl_mvm_rx_tx_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1112 void iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1113 void iwl_mvm_rx_ant_coupling_notif(struct iwl_mvm *mvm,
1115 void iwl_mvm_rx_fw_error(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1116 void iwl_mvm_rx_card_state_notif(struct iwl_mvm *mvm,
1118 void iwl_mvm_rx_mfuart_notif(struct iwl_mvm *mvm,
1120 void iwl_mvm_rx_shared_mem_cfg_notif(struct iwl_mvm *mvm,
1124 int iwl_mvm_phy_ctxt_add(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt,
1127 int iwl_mvm_phy_ctxt_changed(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt,
1130 void iwl_mvm_phy_ctxt_ref(struct iwl_mvm *mvm,
1132 void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm,
1134 int iwl_mvm_phy_ctx_count(struct iwl_mvm *mvm);
1139 int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1140 void iwl_mvm_mac_ctxt_release(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1141 int iwl_mvm_mac_ctxt_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1142 int iwl_mvm_mac_ctxt_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1144 int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1146 int iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm,
1148 void iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm,
1150 void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm,
1152 void iwl_mvm_mac_ctxt_recalc_tsf_id(struct iwl_mvm *mvm,
1154 unsigned long iwl_mvm_get_used_hw_queues(struct iwl_mvm *mvm,
1157 int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1158 int iwl_mvm_binding_remove_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1161 int iwl_mvm_update_quotas(struct iwl_mvm *mvm, bool force_upload,
1165 int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1168 int iwl_mvm_scan_size(struct iwl_mvm *mvm);
1169 int iwl_mvm_scan_stop(struct iwl_mvm *mvm, int type, bool notify);
1170 int iwl_mvm_max_scan_ie_len(struct iwl_mvm *mvm);
1171 void iwl_mvm_report_scan_aborted(struct iwl_mvm *mvm);
1174 void iwl_mvm_rx_lmac_scan_complete_notif(struct iwl_mvm *mvm,
1176 void iwl_mvm_rx_lmac_scan_iter_complete_notif(struct iwl_mvm *mvm,
1178 int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
1183 void iwl_mvm_rx_scan_match_found(struct iwl_mvm *mvm,
1187 int iwl_mvm_config_scan(struct iwl_mvm *mvm);
1188 void iwl_mvm_rx_umac_scan_complete_notif(struct iwl_mvm *mvm,
1190 void iwl_mvm_rx_umac_scan_iter_complete_notif(struct iwl_mvm *mvm,
1194 void iwl_free_fw_paging(struct iwl_mvm *mvm);
1198 int iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir);
1199 void iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1200 void iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1202 static inline int iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, in iwl_mvm_dbgfs_register() argument
1208 iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_dbgfs_register() argument
1212 iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_dbgfs_clean() argument
1218 int iwl_mvm_send_lq_cmd(struct iwl_mvm *mvm, struct iwl_lq_cmd *lq, bool init);
1219 void iwl_mvm_update_frame_stats(struct iwl_mvm *mvm, u32 rate, bool agg);
1221 void rs_update_last_rssi(struct iwl_mvm *mvm,
1226 int iwl_mvm_power_update_device(struct iwl_mvm *mvm);
1227 int iwl_mvm_power_update_mac(struct iwl_mvm *mvm);
1228 int iwl_mvm_power_update_ps(struct iwl_mvm *mvm);
1229 int iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1232 void iwl_mvm_power_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1233 void iwl_mvm_power_uapsd_misbehaving_ap_notif(struct iwl_mvm *mvm,
1237 int iwl_mvm_leds_init(struct iwl_mvm *mvm);
1238 void iwl_mvm_leds_exit(struct iwl_mvm *mvm);
1240 static inline int iwl_mvm_leds_init(struct iwl_mvm *mvm) in iwl_mvm_leds_init() argument
1244 static inline void iwl_mvm_leds_exit(struct iwl_mvm *mvm) in iwl_mvm_leds_exit() argument
1263 void iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm,
1267 iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_set_last_nonqos_seq() argument
1273 int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
1279 void iwl_mvm_ref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type);
1280 void iwl_mvm_unref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type);
1281 int iwl_mvm_ref_sync(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type);
1282 bool iwl_mvm_ref_taken(struct iwl_mvm *mvm);
1283 void iwl_mvm_d0i3_enable_tx(struct iwl_mvm *mvm, __le16 *qos_seq);
1286 int _iwl_mvm_exit_d0i3(struct iwl_mvm *mvm);
1289 int iwl_send_bt_init_conf(struct iwl_mvm *mvm);
1290 void iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm,
1292 void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1294 void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm);
1295 u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm,
1297 bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
1299 bool iwl_mvm_bt_coex_is_ant_avail(struct iwl_mvm *mvm, u8 ant);
1300 bool iwl_mvm_bt_coex_is_shared_ant_avail(struct iwl_mvm *mvm);
1301 bool iwl_mvm_bt_coex_is_tpc_allowed(struct iwl_mvm *mvm,
1303 u8 iwl_mvm_bt_coex_tx_prio(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
1306 bool iwl_mvm_bt_coex_is_shared_ant_avail_old(struct iwl_mvm *mvm);
1307 void iwl_mvm_bt_coex_vif_change_old(struct iwl_mvm *mvm);
1308 int iwl_send_bt_init_conf_old(struct iwl_mvm *mvm);
1309 void iwl_mvm_rx_bt_coex_notif_old(struct iwl_mvm *mvm,
1311 void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1313 u16 iwl_mvm_coex_agg_time_limit_old(struct iwl_mvm *mvm,
1315 bool iwl_mvm_bt_coex_is_mimo_allowed_old(struct iwl_mvm *mvm,
1317 bool iwl_mvm_bt_coex_is_tpc_allowed_old(struct iwl_mvm *mvm,
1319 void iwl_mvm_rx_ant_coupling_notif_old(struct iwl_mvm *mvm,
1333 int iwl_mvm_update_d0i3_power_mode(struct iwl_mvm *mvm,
1336 int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
1339 int iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm,
1343 void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1346 bool iwl_mvm_rx_diversity_allowed(struct iwl_mvm *mvm);
1349 int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1352 bool iwl_mvm_low_latency(struct iwl_mvm *mvm);
1371 void iwl_mvm_enable_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue,
1378 void iwl_mvm_disable_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue,
1380 int iwl_mvm_find_free_queue(struct iwl_mvm *mvm, u8 minq, u8 maxq);
1383 void iwl_mvm_enable_ac_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue, in iwl_mvm_enable_ac_txq() argument
1393 iwl_mvm_enable_txq(mvm, queue, mac80211_queue, ssn, &cfg, wdg_timeout); in iwl_mvm_enable_ac_txq()
1396 static inline void iwl_mvm_enable_agg_txq(struct iwl_mvm *mvm, int queue, in iwl_mvm_enable_agg_txq() argument
1409 iwl_mvm_enable_txq(mvm, queue, mac80211_queue, ssn, &cfg, wdg_timeout); in iwl_mvm_enable_agg_txq()
1413 void iwl_mvm_tt_tx_backoff(struct iwl_mvm *mvm, u32 backoff);
1414 void iwl_mvm_tt_temp_changed(struct iwl_mvm *mvm, u32 temp);
1415 void iwl_mvm_temp_notif(struct iwl_mvm *mvm,
1417 void iwl_mvm_tt_handler(struct iwl_mvm *mvm);
1418 void iwl_mvm_tt_initialize(struct iwl_mvm *mvm, u32 min_backoff);
1419 void iwl_mvm_tt_exit(struct iwl_mvm *mvm);
1420 void iwl_mvm_set_hw_ctkill_state(struct iwl_mvm *mvm, bool state);
1421 int iwl_mvm_get_temp(struct iwl_mvm *mvm);
1425 iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
1427 int iwl_mvm_init_mcc(struct iwl_mvm *mvm);
1428 void iwl_mvm_rx_chub_update_mcc(struct iwl_mvm *mvm,
1434 struct ieee80211_regdomain *iwl_mvm_get_current_regdomain(struct iwl_mvm *mvm,
1436 int iwl_mvm_init_fw_regd(struct iwl_mvm *mvm);
1437 void iwl_mvm_update_changed_regdom(struct iwl_mvm *mvm);
1440 int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1451 int iwl_mvm_tdls_sta_count(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1452 void iwl_mvm_teardown_tdls_peers(struct iwl_mvm *mvm);
1453 void iwl_mvm_recalc_tdls_state(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1468 void iwl_mvm_rx_tdls_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1471 struct ieee80211_vif *iwl_mvm_get_bss_vif(struct iwl_mvm *mvm);
1473 void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error);
1474 void iwl_mvm_fw_error_dump(struct iwl_mvm *mvm);
1476 int iwl_mvm_start_fw_dbg_conf(struct iwl_mvm *mvm, u8 id);
1477 int iwl_mvm_fw_dbg_collect(struct iwl_mvm *mvm, enum iwl_fw_dbg_trigger trig,
1480 int iwl_mvm_fw_dbg_collect_desc(struct iwl_mvm *mvm,
1483 void iwl_mvm_free_fw_dump_desc(struct iwl_mvm *mvm);
1484 int iwl_mvm_fw_dbg_collect_trig(struct iwl_mvm *mvm,
1487 unsigned int iwl_mvm_get_wd_timeout(struct iwl_mvm *mvm,
1490 void iwl_mvm_connection_loss(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1502 iwl_fw_dbg_trigger_stop_conf_match(struct iwl_mvm *mvm, in iwl_fw_dbg_trigger_stop_conf_match() argument
1506 (mvm->fw_dbg_conf == FW_DBG_INVALID || in iwl_fw_dbg_trigger_stop_conf_match()
1507 (BIT(mvm->fw_dbg_conf) & le32_to_cpu(trig->stop_conf_ids)))); in iwl_fw_dbg_trigger_stop_conf_match()
1511 iwl_fw_dbg_trigger_check_stop(struct iwl_mvm *mvm, in iwl_fw_dbg_trigger_check_stop() argument
1518 return iwl_fw_dbg_trigger_stop_conf_match(mvm, trig); in iwl_fw_dbg_trigger_check_stop()
1522 iwl_fw_dbg_trigger_simple_stop(struct iwl_mvm *mvm, in iwl_fw_dbg_trigger_simple_stop() argument
1528 if (!iwl_fw_dbg_trigger_enabled(mvm->fw, trig)) in iwl_fw_dbg_trigger_simple_stop()
1531 trigger = iwl_fw_dbg_get_trigger(mvm->fw, trig); in iwl_fw_dbg_trigger_simple_stop()
1532 if (!iwl_fw_dbg_trigger_check_stop(mvm, vif, trigger)) in iwl_fw_dbg_trigger_simple_stop()
1535 iwl_mvm_fw_dbg_collect_trig(mvm, trigger, NULL); in iwl_fw_dbg_trigger_simple_stop()