Lines Matching refs:mvm
317 struct iwl_mvm *mvm; member
632 struct iwl_mvm *mvm; member
682 struct iwl_mvm *mvm; member
1158 static inline bool iwl_mvm_is_radio_killed(struct iwl_mvm *mvm) in iwl_mvm_is_radio_killed() argument
1160 return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status) || in iwl_mvm_is_radio_killed()
1161 test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status); in iwl_mvm_is_radio_killed()
1164 static inline bool iwl_mvm_is_radio_hw_killed(struct iwl_mvm *mvm) in iwl_mvm_is_radio_hw_killed() argument
1166 return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); in iwl_mvm_is_radio_hw_killed()
1169 static inline bool iwl_mvm_firmware_running(struct iwl_mvm *mvm) in iwl_mvm_firmware_running() argument
1171 return test_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status); in iwl_mvm_firmware_running()
1178 iwl_mvm_sta_from_staid_rcu(struct iwl_mvm *mvm, u8 sta_id) in iwl_mvm_sta_from_staid_rcu() argument
1182 if (sta_id >= mvm->fw->ucode_capa.num_stations) in iwl_mvm_sta_from_staid_rcu()
1185 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]); in iwl_mvm_sta_from_staid_rcu()
1195 iwl_mvm_sta_from_staid_protected(struct iwl_mvm *mvm, u8 sta_id) in iwl_mvm_sta_from_staid_protected() argument
1199 if (sta_id >= mvm->fw->ucode_capa.num_stations) in iwl_mvm_sta_from_staid_protected()
1202 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[sta_id], in iwl_mvm_sta_from_staid_protected()
1203 lockdep_is_held(&mvm->mutex)); in iwl_mvm_sta_from_staid_protected()
1213 iwl_mvm_rcu_dereference_vif_id(struct iwl_mvm *mvm, u8 vif_id, bool rcu) in iwl_mvm_rcu_dereference_vif_id() argument
1215 if (WARN_ON(vif_id >= ARRAY_SIZE(mvm->vif_id_to_mac))) in iwl_mvm_rcu_dereference_vif_id()
1219 return rcu_dereference(mvm->vif_id_to_mac[vif_id]); in iwl_mvm_rcu_dereference_vif_id()
1221 return rcu_dereference_protected(mvm->vif_id_to_mac[vif_id], in iwl_mvm_rcu_dereference_vif_id()
1222 lockdep_is_held(&mvm->mutex)); in iwl_mvm_rcu_dereference_vif_id()
1225 static inline bool iwl_mvm_is_adaptive_dwell_supported(struct iwl_mvm *mvm) in iwl_mvm_is_adaptive_dwell_supported() argument
1227 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_adaptive_dwell_supported()
1231 static inline bool iwl_mvm_is_adaptive_dwell_v2_supported(struct iwl_mvm *mvm) in iwl_mvm_is_adaptive_dwell_v2_supported() argument
1233 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_adaptive_dwell_v2_supported()
1237 static inline bool iwl_mvm_is_adwell_hb_ap_num_supported(struct iwl_mvm *mvm) in iwl_mvm_is_adwell_hb_ap_num_supported() argument
1239 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_adwell_hb_ap_num_supported()
1243 static inline bool iwl_mvm_is_oce_supported(struct iwl_mvm *mvm) in iwl_mvm_is_oce_supported() argument
1246 return fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_OCE); in iwl_mvm_is_oce_supported()
1249 static inline bool iwl_mvm_is_frag_ebs_supported(struct iwl_mvm *mvm) in iwl_mvm_is_frag_ebs_supported() argument
1251 return fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_FRAG_EBS); in iwl_mvm_is_frag_ebs_supported()
1254 static inline bool iwl_mvm_is_short_beacon_notif_supported(struct iwl_mvm *mvm) in iwl_mvm_is_short_beacon_notif_supported() argument
1256 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_short_beacon_notif_supported()
1260 static inline bool iwl_mvm_is_dqa_data_queue(struct iwl_mvm *mvm, u8 queue) in iwl_mvm_is_dqa_data_queue() argument
1266 static inline bool iwl_mvm_is_dqa_mgmt_queue(struct iwl_mvm *mvm, u8 queue) in iwl_mvm_is_dqa_mgmt_queue() argument
1272 static inline bool iwl_mvm_is_lar_supported(struct iwl_mvm *mvm) in iwl_mvm_is_lar_supported() argument
1274 bool nvm_lar = mvm->nvm_data->lar_enabled; in iwl_mvm_is_lar_supported()
1275 bool tlv_lar = fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_lar_supported()
1282 if (mvm->cfg->nvm_type == IWL_NVM_EXT) in iwl_mvm_is_lar_supported()
1288 static inline bool iwl_mvm_is_wifi_mcc_supported(struct iwl_mvm *mvm) in iwl_mvm_is_wifi_mcc_supported() argument
1290 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_wifi_mcc_supported()
1292 fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_wifi_mcc_supported()
1296 static inline bool iwl_mvm_bt_is_rrc_supported(struct iwl_mvm *mvm) in iwl_mvm_bt_is_rrc_supported() argument
1298 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_bt_is_rrc_supported()
1303 static inline bool iwl_mvm_is_csum_supported(struct iwl_mvm *mvm) in iwl_mvm_is_csum_supported() argument
1305 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_csum_supported()
1310 static inline bool iwl_mvm_is_mplut_supported(struct iwl_mvm *mvm) in iwl_mvm_is_mplut_supported() argument
1312 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_mplut_supported()
1318 bool iwl_mvm_is_p2p_scm_uapsd_supported(struct iwl_mvm *mvm) in iwl_mvm_is_p2p_scm_uapsd_supported() argument
1320 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_p2p_scm_uapsd_supported()
1326 static inline bool iwl_mvm_has_new_rx_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_rx_api() argument
1328 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_has_new_rx_api()
1332 static inline bool iwl_mvm_has_new_tx_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_tx_api() argument
1335 return mvm->trans->trans_cfg->use_tfh; in iwl_mvm_has_new_tx_api()
1338 static inline bool iwl_mvm_has_unified_ucode(struct iwl_mvm *mvm) in iwl_mvm_has_unified_ucode() argument
1341 return mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000; in iwl_mvm_has_unified_ucode()
1344 static inline bool iwl_mvm_is_cdb_supported(struct iwl_mvm *mvm) in iwl_mvm_is_cdb_supported() argument
1355 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_cdb_supported()
1359 static inline bool iwl_mvm_cdb_scan_api(struct iwl_mvm *mvm) in iwl_mvm_cdb_scan_api() argument
1366 return mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000; in iwl_mvm_cdb_scan_api()
1369 static inline bool iwl_mvm_is_scan_ext_chan_supported(struct iwl_mvm *mvm) in iwl_mvm_is_scan_ext_chan_supported() argument
1371 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_scan_ext_chan_supported()
1376 static inline bool iwl_mvm_is_reduced_config_scan_supported(struct iwl_mvm *mvm) in iwl_mvm_is_reduced_config_scan_supported() argument
1378 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_reduced_config_scan_supported()
1382 static inline bool iwl_mvm_is_band_in_rx_supported(struct iwl_mvm *mvm) in iwl_mvm_is_band_in_rx_supported() argument
1384 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_band_in_rx_supported()
1388 static inline bool iwl_mvm_has_new_rx_stats_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_rx_stats_api() argument
1390 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_has_new_rx_stats_api()
1394 static inline bool iwl_mvm_has_quota_low_latency(struct iwl_mvm *mvm) in iwl_mvm_has_quota_low_latency() argument
1396 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_has_quota_low_latency()
1400 static inline bool iwl_mvm_has_tlc_offload(const struct iwl_mvm *mvm) in iwl_mvm_has_tlc_offload() argument
1402 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_has_tlc_offload()
1407 iwl_mvm_get_agg_status(struct iwl_mvm *mvm, void *tx_resp) in iwl_mvm_get_agg_status() argument
1409 if (iwl_mvm_has_new_tx_api(mvm)) in iwl_mvm_get_agg_status()
1415 static inline bool iwl_mvm_is_tt_in_fw(struct iwl_mvm *mvm) in iwl_mvm_is_tt_in_fw() argument
1421 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_tt_in_fw()
1423 fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_tt_in_fw()
1427 static inline bool iwl_mvm_is_ctdp_supported(struct iwl_mvm *mvm) in iwl_mvm_is_ctdp_supported() argument
1429 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_ctdp_supported()
1436 static inline u8 iwl_mvm_mac_ac_to_tx_fifo(struct iwl_mvm *mvm, in iwl_mvm_mac_ac_to_tx_fifo() argument
1439 return iwl_mvm_has_new_tx_api(mvm) ? in iwl_mvm_mac_ac_to_tx_fifo()
1451 void __iwl_mvm_mac_stop(struct iwl_mvm *mvm);
1452 int __iwl_mvm_mac_start(struct iwl_mvm *mvm);
1458 int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm);
1474 static inline void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm) in iwl_mvm_dump_nic_error_log() argument
1476 iwl_fwrt_dump_error_logs(&mvm->fwrt); in iwl_mvm_dump_nic_error_log()
1480 u8 iwl_mvm_next_antenna(struct iwl_mvm *mvm, u8 valid, u8 last_idx);
1481 void iwl_mvm_get_sync_time(struct iwl_mvm *mvm, int clock_type, u32 *gp2,
1483 u32 iwl_mvm_get_systime(struct iwl_mvm *mvm);
1486 int __must_check iwl_mvm_send_cmd(struct iwl_mvm *mvm,
1488 int __must_check iwl_mvm_send_cmd_pdu(struct iwl_mvm *mvm, u32 id,
1490 int __must_check iwl_mvm_send_cmd_status(struct iwl_mvm *mvm,
1493 int __must_check iwl_mvm_send_cmd_pdu_status(struct iwl_mvm *mvm, u32 id,
1496 int iwl_mvm_tx_skb_sta(struct iwl_mvm *mvm, struct sk_buff *skb,
1498 int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb);
1499 void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
1502 void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd *tx_cmd,
1506 unsigned int iwl_mvm_max_amsdu_size(struct iwl_mvm *mvm,
1509 u32 iwl_mvm_tx_csum_bz(struct iwl_mvm *mvm, struct sk_buff *skb, bool amsdu);
1516 int iwl_mvm_flush_tx_path(struct iwl_mvm *mvm, u32 tfd_msk);
1517 int iwl_mvm_flush_sta(struct iwl_mvm *mvm, void *sta, bool internal);
1518 int iwl_mvm_flush_sta_tids(struct iwl_mvm *mvm, u32 sta_id, u16 tids);
1520 void iwl_mvm_async_handlers_purge(struct iwl_mvm *mvm);
1531 static inline void iwl_mvm_wait_for_async_handlers(struct iwl_mvm *mvm) in iwl_mvm_wait_for_async_handlers() argument
1533 flush_work(&mvm->async_handlers_wk); in iwl_mvm_wait_for_async_handlers()
1537 void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
1539 void iwl_mvm_rx_statistics(struct iwl_mvm *mvm,
1541 int iwl_mvm_request_statistics(struct iwl_mvm *mvm, bool clear);
1542 void iwl_mvm_accu_radio_stats(struct iwl_mvm *mvm);
1545 int iwl_nvm_init(struct iwl_mvm *mvm);
1546 int iwl_mvm_load_nvm_to_nic(struct iwl_mvm *mvm);
1548 static inline u8 iwl_mvm_get_valid_tx_ant(struct iwl_mvm *mvm) in iwl_mvm_get_valid_tx_ant() argument
1550 return mvm->nvm_data && mvm->nvm_data->valid_tx_ant ? in iwl_mvm_get_valid_tx_ant()
1551 mvm->fw->valid_tx_ant & mvm->nvm_data->valid_tx_ant : in iwl_mvm_get_valid_tx_ant()
1552 mvm->fw->valid_tx_ant; in iwl_mvm_get_valid_tx_ant()
1555 static inline u8 iwl_mvm_get_valid_rx_ant(struct iwl_mvm *mvm) in iwl_mvm_get_valid_rx_ant() argument
1557 return mvm->nvm_data && mvm->nvm_data->valid_rx_ant ? in iwl_mvm_get_valid_rx_ant()
1558 mvm->fw->valid_rx_ant & mvm->nvm_data->valid_rx_ant : in iwl_mvm_get_valid_rx_ant()
1559 mvm->fw->valid_rx_ant; in iwl_mvm_get_valid_rx_ant()
1562 static inline void iwl_mvm_toggle_tx_ant(struct iwl_mvm *mvm, u8 *ant) in iwl_mvm_toggle_tx_ant() argument
1564 *ant = iwl_mvm_next_antenna(mvm, iwl_mvm_get_valid_tx_ant(mvm), *ant); in iwl_mvm_toggle_tx_ant()
1567 static inline u32 iwl_mvm_get_phy_config(struct iwl_mvm *mvm) in iwl_mvm_get_phy_config() argument
1571 u32 valid_rx_ant = iwl_mvm_get_valid_rx_ant(mvm); in iwl_mvm_get_phy_config()
1572 u32 valid_tx_ant = iwl_mvm_get_valid_tx_ant(mvm); in iwl_mvm_get_phy_config()
1577 return mvm->fw->phy_config & phy_config; in iwl_mvm_get_phy_config()
1580 int iwl_mvm_up(struct iwl_mvm *mvm);
1581 int iwl_mvm_load_d3_fw(struct iwl_mvm *mvm);
1583 int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm);
1592 void iwl_mvm_rx_rx_phy_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1593 void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,
1595 void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,
1597 void iwl_mvm_rx_monitor_no_data(struct iwl_mvm *mvm, struct napi_struct *napi,
1599 void iwl_mvm_rx_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
1601 void iwl_mvm_rx_bar_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
1603 void iwl_mvm_rx_queue_notif(struct iwl_mvm *mvm, struct napi_struct *napi,
1605 void iwl_mvm_rx_tx_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1606 void iwl_mvm_mfu_assert_dump_notif(struct iwl_mvm *mvm,
1608 void iwl_mvm_send_recovery_cmd(struct iwl_mvm *mvm, u32 flags);
1609 void iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1610 void iwl_mvm_rx_ant_coupling_notif(struct iwl_mvm *mvm,
1612 void iwl_mvm_rx_fw_error(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1613 void iwl_mvm_rx_mfuart_notif(struct iwl_mvm *mvm,
1615 void iwl_mvm_rx_shared_mem_cfg_notif(struct iwl_mvm *mvm,
1619 int iwl_mvm_phy_ctxt_add(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt,
1622 int iwl_mvm_phy_ctxt_changed(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt,
1625 void iwl_mvm_phy_ctxt_ref(struct iwl_mvm *mvm,
1627 void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm,
1629 int iwl_mvm_phy_ctx_count(struct iwl_mvm *mvm);
1634 int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1635 int iwl_mvm_mac_ctxt_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1636 int iwl_mvm_mac_ctxt_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1638 int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1639 int iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm,
1641 int iwl_mvm_mac_ctxt_send_beacon(struct iwl_mvm *mvm,
1644 int iwl_mvm_mac_ctxt_send_beacon_cmd(struct iwl_mvm *mvm,
1651 void iwl_mvm_mac_ctxt_set_tim(struct iwl_mvm *mvm,
1654 void iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm,
1656 void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm,
1658 void iwl_mvm_rx_stored_beacon_notif(struct iwl_mvm *mvm,
1660 void iwl_mvm_mu_mimo_grp_notif(struct iwl_mvm *mvm,
1662 void iwl_mvm_sta_pm_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1663 void iwl_mvm_window_status_notif(struct iwl_mvm *mvm,
1665 void iwl_mvm_mac_ctxt_recalc_tsf_id(struct iwl_mvm *mvm,
1667 void iwl_mvm_probe_resp_data_notif(struct iwl_mvm *mvm,
1669 void iwl_mvm_rx_missed_vap_notif(struct iwl_mvm *mvm,
1671 void iwl_mvm_channel_switch_start_notif(struct iwl_mvm *mvm,
1673 void iwl_mvm_channel_switch_error_notif(struct iwl_mvm *mvm,
1676 int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1677 int iwl_mvm_binding_remove_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1680 static inline size_t iwl_mvm_quota_cmd_size(struct iwl_mvm *mvm) in iwl_mvm_quota_cmd_size() argument
1682 return iwl_mvm_has_quota_low_latency(mvm) ? in iwl_mvm_quota_cmd_size()
1688 *iwl_mvm_quota_cmd_get_quota(struct iwl_mvm *mvm, in iwl_mvm_quota_cmd_get_quota() argument
1694 if (iwl_mvm_has_quota_low_latency(mvm)) in iwl_mvm_quota_cmd_get_quota()
1701 int iwl_mvm_update_quotas(struct iwl_mvm *mvm, bool force_upload,
1705 int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1708 size_t iwl_mvm_scan_size(struct iwl_mvm *mvm);
1709 int iwl_mvm_scan_stop(struct iwl_mvm *mvm, int type, bool notify);
1710 int iwl_mvm_max_scan_ie_len(struct iwl_mvm *mvm);
1711 void iwl_mvm_report_scan_aborted(struct iwl_mvm *mvm);
1715 void iwl_mvm_rx_lmac_scan_complete_notif(struct iwl_mvm *mvm,
1717 void iwl_mvm_rx_lmac_scan_iter_complete_notif(struct iwl_mvm *mvm,
1719 int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
1724 void iwl_mvm_rx_scan_match_found(struct iwl_mvm *mvm,
1728 int iwl_mvm_config_scan(struct iwl_mvm *mvm);
1729 void iwl_mvm_rx_umac_scan_complete_notif(struct iwl_mvm *mvm,
1731 void iwl_mvm_rx_umac_scan_iter_complete_notif(struct iwl_mvm *mvm,
1736 void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm);
1737 void iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1738 void iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1740 static inline void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm) in iwl_mvm_dbgfs_register() argument
1744 iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_dbgfs_register() argument
1748 iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_dbgfs_clean() argument
1754 int iwl_mvm_send_lq_cmd(struct iwl_mvm *mvm, struct iwl_lq_cmd *lq);
1755 void iwl_mvm_update_frame_stats(struct iwl_mvm *mvm, u32 rate, bool agg);
1757 void rs_update_last_rssi(struct iwl_mvm *mvm,
1762 int iwl_mvm_power_update_device(struct iwl_mvm *mvm);
1763 int iwl_mvm_power_update_mac(struct iwl_mvm *mvm);
1764 int iwl_mvm_power_update_ps(struct iwl_mvm *mvm);
1765 int iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1768 void iwl_mvm_power_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1769 void iwl_mvm_power_uapsd_misbehaving_ap_notif(struct iwl_mvm *mvm,
1773 int iwl_mvm_leds_init(struct iwl_mvm *mvm);
1774 void iwl_mvm_leds_exit(struct iwl_mvm *mvm);
1775 void iwl_mvm_leds_sync(struct iwl_mvm *mvm);
1777 static inline int iwl_mvm_leds_init(struct iwl_mvm *mvm) in iwl_mvm_leds_init() argument
1781 static inline void iwl_mvm_leds_exit(struct iwl_mvm *mvm) in iwl_mvm_leds_exit() argument
1784 static inline void iwl_mvm_leds_sync(struct iwl_mvm *mvm) in iwl_mvm_leds_sync() argument
1803 void iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm,
1807 iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_set_last_nonqos_seq() argument
1813 int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
1820 int iwl_mvm_send_bt_init_conf(struct iwl_mvm *mvm);
1821 void iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm,
1823 void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1825 void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm);
1826 u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm,
1828 bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
1830 bool iwl_mvm_bt_coex_is_ant_avail(struct iwl_mvm *mvm, u8 ant);
1831 bool iwl_mvm_bt_coex_is_shared_ant_avail(struct iwl_mvm *mvm);
1832 bool iwl_mvm_bt_coex_is_tpc_allowed(struct iwl_mvm *mvm,
1834 u8 iwl_mvm_bt_coex_get_single_ant_msk(struct iwl_mvm *mvm, u8 enabled_ants);
1835 u8 iwl_mvm_bt_coex_tx_prio(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
1849 int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
1852 int iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm,
1856 void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1859 bool iwl_mvm_rx_diversity_allowed(struct iwl_mvm *mvm,
1864 int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1868 bool iwl_mvm_low_latency(struct iwl_mvm *mvm);
1869 bool iwl_mvm_low_latency_band(struct iwl_mvm *mvm, enum nl80211_band band);
1870 void iwl_mvm_send_low_latency_cmd(struct iwl_mvm *mvm, bool low_latency,
1928 static inline u32 iwl_mvm_flushable_queues(struct iwl_mvm *mvm) in iwl_mvm_flushable_queues() argument
1930 return ((BIT(mvm->trans->trans_cfg->base_params->num_of_queues) - 1) & in iwl_mvm_flushable_queues()
1934 void iwl_mvm_stop_device(struct iwl_mvm *mvm);
1937 void iwl_mvm_tt_tx_backoff(struct iwl_mvm *mvm, u32 backoff);
1938 void iwl_mvm_temp_notif(struct iwl_mvm *mvm,
1940 void iwl_mvm_tt_handler(struct iwl_mvm *mvm);
1941 void iwl_mvm_thermal_initialize(struct iwl_mvm *mvm, u32 min_backoff);
1942 void iwl_mvm_thermal_exit(struct iwl_mvm *mvm);
1943 void iwl_mvm_set_hw_ctkill_state(struct iwl_mvm *mvm, bool state);
1944 int iwl_mvm_get_temp(struct iwl_mvm *mvm, s32 *temp);
1945 void iwl_mvm_ct_kill_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1946 void iwl_mvm_enter_ctkill(struct iwl_mvm *mvm);
1947 int iwl_mvm_send_temp_report_ths_cmd(struct iwl_mvm *mvm);
1948 int iwl_mvm_ctdp_command(struct iwl_mvm *mvm, u32 op, u32 budget);
1953 void iwl_mvm_vendor_cmds_register(struct iwl_mvm *mvm);
1957 static inline void iwl_mvm_vendor_cmds_register(struct iwl_mvm *mvm) {} in iwl_mvm_vendor_cmds_register() argument
1963 iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
1965 int iwl_mvm_init_mcc(struct iwl_mvm *mvm);
1966 void iwl_mvm_rx_chub_update_mcc(struct iwl_mvm *mvm,
1972 struct ieee80211_regdomain *iwl_mvm_get_current_regdomain(struct iwl_mvm *mvm,
1974 int iwl_mvm_init_fw_regd(struct iwl_mvm *mvm);
1975 void iwl_mvm_update_changed_regdom(struct iwl_mvm *mvm);
1978 int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1982 int iwl_mvm_ftm_start_responder(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1983 void iwl_mvm_ftm_restart_responder(struct iwl_mvm *mvm,
1985 void iwl_mvm_ftm_responder_stats(struct iwl_mvm *mvm,
1987 int iwl_mvm_ftm_resp_remove_pasn_sta(struct iwl_mvm *mvm,
1989 int iwl_mvm_ftm_respoder_add_pasn_sta(struct iwl_mvm *mvm,
1993 void iwl_mvm_ftm_responder_clear(struct iwl_mvm *mvm,
1997 void iwl_mvm_ftm_restart(struct iwl_mvm *mvm);
1998 void iwl_mvm_ftm_range_resp(struct iwl_mvm *mvm,
2000 void iwl_mvm_ftm_lc_notif(struct iwl_mvm *mvm,
2002 int iwl_mvm_ftm_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2004 void iwl_mvm_ftm_abort(struct iwl_mvm *mvm, struct cfg80211_pmsr_request *req);
2005 void iwl_mvm_ftm_initiator_smooth_config(struct iwl_mvm *mvm);
2006 void iwl_mvm_ftm_initiator_smooth_stop(struct iwl_mvm *mvm);
2007 int iwl_mvm_ftm_add_pasn_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2010 void iwl_mvm_ftm_remove_pasn_sta(struct iwl_mvm *mvm, u8 *addr);
2020 int iwl_mvm_tdls_sta_count(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
2021 void iwl_mvm_teardown_tdls_peers(struct iwl_mvm *mvm);
2022 void iwl_mvm_recalc_tdls_state(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2037 void iwl_mvm_rx_tdls_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
2040 void iwl_mvm_sync_rx_queues_internal(struct iwl_mvm *mvm,
2045 struct ieee80211_vif *iwl_mvm_get_bss_vif(struct iwl_mvm *mvm);
2046 struct ieee80211_vif *iwl_mvm_get_vif_by_macid(struct iwl_mvm *mvm, u32 macid);
2047 bool iwl_mvm_is_vif_assoc(struct iwl_mvm *mvm);
2053 void iwl_mvm_recalc_tcm(struct iwl_mvm *mvm);
2054 void iwl_mvm_pause_tcm(struct iwl_mvm *mvm, bool with_cancel);
2055 void iwl_mvm_resume_tcm(struct iwl_mvm *mvm);
2056 void iwl_mvm_tcm_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
2057 void iwl_mvm_tcm_rm_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
2060 void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error);
2061 unsigned int iwl_mvm_get_wd_timeout(struct iwl_mvm *mvm,
2064 void iwl_mvm_connection_loss(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2066 void iwl_mvm_event_frame_timeout_callback(struct iwl_mvm *mvm,
2071 int iwl_mvm_sar_select_profile(struct iwl_mvm *mvm, int prof_a, int prof_b);
2072 int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm);
2073 int iwl_mvm_ppag_send_cmd(struct iwl_mvm *mvm);
2074 void iwl_mvm_get_acpi_tables(struct iwl_mvm *mvm);
2082 int iwl_rfi_send_config_cmd(struct iwl_mvm *mvm,
2084 struct iwl_rfi_freq_table_resp_cmd *iwl_rfi_get_freq_table(struct iwl_mvm *mvm);
2085 void iwl_rfi_deactivate_notif_handler(struct iwl_mvm *mvm,
2104 static inline bool iwl_mvm_has_ultra_hb_channel(struct iwl_mvm *mvm) in iwl_mvm_has_ultra_hb_channel() argument
2106 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_has_ultra_hb_channel()
2110 static inline void *iwl_mvm_chan_info_cmd_tail(struct iwl_mvm *mvm, in iwl_mvm_chan_info_cmd_tail() argument
2113 return (u8 *)ci + (iwl_mvm_has_ultra_hb_channel(mvm) ? in iwl_mvm_chan_info_cmd_tail()
2118 static inline size_t iwl_mvm_chan_info_padding(struct iwl_mvm *mvm) in iwl_mvm_chan_info_padding() argument
2120 return iwl_mvm_has_ultra_hb_channel(mvm) ? 0 : in iwl_mvm_chan_info_padding()
2125 static inline void iwl_mvm_set_chan_info(struct iwl_mvm *mvm, in iwl_mvm_set_chan_info() argument
2130 if (iwl_mvm_has_ultra_hb_channel(mvm)) { in iwl_mvm_set_chan_info()
2147 iwl_mvm_set_chan_info_chandef(struct iwl_mvm *mvm, in iwl_mvm_set_chan_info_chandef() argument
2153 iwl_mvm_set_chan_info(mvm, ci, chandef->chan->hw_value, in iwl_mvm_set_chan_info_chandef()
2182 struct iwl_mvm_csme_conn_info *iwl_mvm_get_csme_conn_info(struct iwl_mvm *mvm);
2183 static inline int iwl_mvm_mei_get_ownership(struct iwl_mvm *mvm) in iwl_mvm_mei_get_ownership() argument
2185 if (mvm->mei_registered) in iwl_mvm_mei_get_ownership()
2190 static inline void iwl_mvm_mei_tx_copy_to_csme(struct iwl_mvm *mvm, in iwl_mvm_mei_tx_copy_to_csme() argument
2194 if (mvm->mei_registered) in iwl_mvm_mei_tx_copy_to_csme()
2198 static inline void iwl_mvm_mei_host_disassociated(struct iwl_mvm *mvm) in iwl_mvm_mei_host_disassociated() argument
2200 if (mvm->mei_registered) in iwl_mvm_mei_host_disassociated()
2204 static inline void iwl_mvm_mei_device_state(struct iwl_mvm *mvm, bool up) in iwl_mvm_mei_device_state() argument
2206 if (mvm->mei_registered) in iwl_mvm_mei_device_state()
2210 static inline void iwl_mvm_mei_set_sw_rfkill_state(struct iwl_mvm *mvm) in iwl_mvm_mei_set_sw_rfkill_state() argument
2213 mvm->hw_registered ? rfkill_soft_blocked(mvm->hw->wiphy->rfkill) : false; in iwl_mvm_mei_set_sw_rfkill_state()
2215 if (mvm->mei_registered) in iwl_mvm_mei_set_sw_rfkill_state()
2216 iwl_mei_set_rfkill_state(iwl_mvm_is_radio_killed(mvm), in iwl_mvm_mei_set_sw_rfkill_state()
2220 void iwl_mvm_send_roaming_forbidden_event(struct iwl_mvm *mvm,