Lines Matching refs:mvm
373 struct iwl_mvm *mvm; member
682 struct iwl_mvm *mvm; member
732 struct iwl_mvm *mvm; member
1188 static inline bool iwl_mvm_is_radio_killed(struct iwl_mvm *mvm) in iwl_mvm_is_radio_killed() argument
1190 return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status) || in iwl_mvm_is_radio_killed()
1191 test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status); in iwl_mvm_is_radio_killed()
1194 static inline bool iwl_mvm_is_radio_hw_killed(struct iwl_mvm *mvm) in iwl_mvm_is_radio_hw_killed() argument
1196 return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); in iwl_mvm_is_radio_hw_killed()
1199 static inline bool iwl_mvm_firmware_running(struct iwl_mvm *mvm) in iwl_mvm_firmware_running() argument
1201 return test_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status); in iwl_mvm_firmware_running()
1208 iwl_mvm_sta_from_staid_rcu(struct iwl_mvm *mvm, u8 sta_id) in iwl_mvm_sta_from_staid_rcu() argument
1212 if (sta_id >= ARRAY_SIZE(mvm->fw_id_to_mac_id)) in iwl_mvm_sta_from_staid_rcu()
1215 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]); in iwl_mvm_sta_from_staid_rcu()
1225 iwl_mvm_sta_from_staid_protected(struct iwl_mvm *mvm, u8 sta_id) in iwl_mvm_sta_from_staid_protected() argument
1229 if (sta_id >= ARRAY_SIZE(mvm->fw_id_to_mac_id)) in iwl_mvm_sta_from_staid_protected()
1232 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[sta_id], in iwl_mvm_sta_from_staid_protected()
1233 lockdep_is_held(&mvm->mutex)); in iwl_mvm_sta_from_staid_protected()
1243 iwl_mvm_rcu_dereference_vif_id(struct iwl_mvm *mvm, u8 vif_id, bool rcu) in iwl_mvm_rcu_dereference_vif_id() argument
1245 if (WARN_ON(vif_id >= ARRAY_SIZE(mvm->vif_id_to_mac))) in iwl_mvm_rcu_dereference_vif_id()
1249 return rcu_dereference(mvm->vif_id_to_mac[vif_id]); in iwl_mvm_rcu_dereference_vif_id()
1251 return rcu_dereference_protected(mvm->vif_id_to_mac[vif_id], in iwl_mvm_rcu_dereference_vif_id()
1252 lockdep_is_held(&mvm->mutex)); in iwl_mvm_rcu_dereference_vif_id()
1255 static inline bool iwl_mvm_is_adaptive_dwell_supported(struct iwl_mvm *mvm) in iwl_mvm_is_adaptive_dwell_supported() argument
1257 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_adaptive_dwell_supported()
1261 static inline bool iwl_mvm_is_adaptive_dwell_v2_supported(struct iwl_mvm *mvm) in iwl_mvm_is_adaptive_dwell_v2_supported() argument
1263 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_adaptive_dwell_v2_supported()
1267 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
1269 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_adwell_hb_ap_num_supported()
1273 static inline bool iwl_mvm_is_oce_supported(struct iwl_mvm *mvm) in iwl_mvm_is_oce_supported() argument
1276 return fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_OCE); in iwl_mvm_is_oce_supported()
1279 static inline bool iwl_mvm_is_frag_ebs_supported(struct iwl_mvm *mvm) in iwl_mvm_is_frag_ebs_supported() argument
1281 return fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_FRAG_EBS); in iwl_mvm_is_frag_ebs_supported()
1284 static inline bool iwl_mvm_is_short_beacon_notif_supported(struct iwl_mvm *mvm) in iwl_mvm_is_short_beacon_notif_supported() argument
1286 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_short_beacon_notif_supported()
1290 static inline bool iwl_mvm_is_dqa_data_queue(struct iwl_mvm *mvm, u8 queue) in iwl_mvm_is_dqa_data_queue() argument
1296 static inline bool iwl_mvm_is_dqa_mgmt_queue(struct iwl_mvm *mvm, u8 queue) in iwl_mvm_is_dqa_mgmt_queue() argument
1302 static inline bool iwl_mvm_is_lar_supported(struct iwl_mvm *mvm) in iwl_mvm_is_lar_supported() argument
1304 bool nvm_lar = mvm->nvm_data->lar_enabled; in iwl_mvm_is_lar_supported()
1305 bool tlv_lar = fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_lar_supported()
1315 if (mvm->cfg->nvm_type == IWL_NVM_EXT) in iwl_mvm_is_lar_supported()
1321 static inline bool iwl_mvm_is_wifi_mcc_supported(struct iwl_mvm *mvm) in iwl_mvm_is_wifi_mcc_supported() argument
1323 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_wifi_mcc_supported()
1325 fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_wifi_mcc_supported()
1329 static inline bool iwl_mvm_bt_is_rrc_supported(struct iwl_mvm *mvm) in iwl_mvm_bt_is_rrc_supported() argument
1331 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_bt_is_rrc_supported()
1336 static inline bool iwl_mvm_is_csum_supported(struct iwl_mvm *mvm) in iwl_mvm_is_csum_supported() argument
1338 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_csum_supported()
1343 static inline bool iwl_mvm_is_mplut_supported(struct iwl_mvm *mvm) in iwl_mvm_is_mplut_supported() argument
1345 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_mplut_supported()
1351 bool iwl_mvm_is_p2p_scm_uapsd_supported(struct iwl_mvm *mvm) in iwl_mvm_is_p2p_scm_uapsd_supported() argument
1353 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_p2p_scm_uapsd_supported()
1359 static inline bool iwl_mvm_has_new_rx_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_rx_api() argument
1361 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_has_new_rx_api()
1365 static inline bool iwl_mvm_has_new_tx_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_tx_api() argument
1368 return mvm->trans->trans_cfg->use_tfh; in iwl_mvm_has_new_tx_api()
1371 static inline bool iwl_mvm_has_unified_ucode(struct iwl_mvm *mvm) in iwl_mvm_has_unified_ucode() argument
1374 return mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000; in iwl_mvm_has_unified_ucode()
1377 static inline bool iwl_mvm_is_cdb_supported(struct iwl_mvm *mvm) in iwl_mvm_is_cdb_supported() argument
1388 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_cdb_supported()
1392 static inline bool iwl_mvm_cdb_scan_api(struct iwl_mvm *mvm) in iwl_mvm_cdb_scan_api() argument
1399 return mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000; in iwl_mvm_cdb_scan_api()
1402 static inline bool iwl_mvm_is_scan_ext_chan_supported(struct iwl_mvm *mvm) in iwl_mvm_is_scan_ext_chan_supported() argument
1404 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_scan_ext_chan_supported()
1408 static inline bool iwl_mvm_is_reduced_config_scan_supported(struct iwl_mvm *mvm) in iwl_mvm_is_reduced_config_scan_supported() argument
1410 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_is_reduced_config_scan_supported()
1414 static inline bool iwl_mvm_has_new_rx_stats_api(struct iwl_mvm *mvm) in iwl_mvm_has_new_rx_stats_api() argument
1416 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_has_new_rx_stats_api()
1420 static inline bool iwl_mvm_has_quota_low_latency(struct iwl_mvm *mvm) in iwl_mvm_has_quota_low_latency() argument
1422 return fw_has_api(&mvm->fw->ucode_capa, in iwl_mvm_has_quota_low_latency()
1426 static inline bool iwl_mvm_has_tlc_offload(const struct iwl_mvm *mvm) in iwl_mvm_has_tlc_offload() argument
1428 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_has_tlc_offload()
1433 iwl_mvm_get_agg_status(struct iwl_mvm *mvm, void *tx_resp) in iwl_mvm_get_agg_status() argument
1435 if (iwl_mvm_has_new_tx_api(mvm)) in iwl_mvm_get_agg_status()
1441 static inline bool iwl_mvm_is_tt_in_fw(struct iwl_mvm *mvm) in iwl_mvm_is_tt_in_fw() argument
1447 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_tt_in_fw()
1449 fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_tt_in_fw()
1453 static inline bool iwl_mvm_is_ctdp_supported(struct iwl_mvm *mvm) in iwl_mvm_is_ctdp_supported() argument
1455 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_is_ctdp_supported()
1462 static inline u8 iwl_mvm_mac_ac_to_tx_fifo(struct iwl_mvm *mvm, in iwl_mvm_mac_ac_to_tx_fifo() argument
1465 return iwl_mvm_has_new_tx_api(mvm) ? in iwl_mvm_mac_ac_to_tx_fifo()
1477 void __iwl_mvm_mac_stop(struct iwl_mvm *mvm);
1478 int __iwl_mvm_mac_start(struct iwl_mvm *mvm);
1484 int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm);
1494 void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm);
1496 u8 iwl_mvm_next_antenna(struct iwl_mvm *mvm, u8 valid, u8 last_idx);
1497 void iwl_mvm_get_sync_time(struct iwl_mvm *mvm, u32 *gp2, u64 *boottime);
1498 u32 iwl_mvm_get_systime(struct iwl_mvm *mvm);
1501 int __must_check iwl_mvm_send_cmd(struct iwl_mvm *mvm,
1503 int __must_check iwl_mvm_send_cmd_pdu(struct iwl_mvm *mvm, u32 id,
1505 int __must_check iwl_mvm_send_cmd_status(struct iwl_mvm *mvm,
1508 int __must_check iwl_mvm_send_cmd_pdu_status(struct iwl_mvm *mvm, u32 id,
1511 int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
1513 int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb);
1514 void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
1517 void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd *tx_cmd,
1521 unsigned int iwl_mvm_max_amsdu_size(struct iwl_mvm *mvm,
1530 int iwl_mvm_flush_tx_path(struct iwl_mvm *mvm, u32 tfd_msk, u32 flags);
1531 int iwl_mvm_flush_sta(struct iwl_mvm *mvm, void *sta, bool internal, u32 flags);
1532 int iwl_mvm_flush_sta_tids(struct iwl_mvm *mvm, u32 sta_id,
1535 void iwl_mvm_async_handlers_purge(struct iwl_mvm *mvm);
1546 static inline void iwl_mvm_wait_for_async_handlers(struct iwl_mvm *mvm) in iwl_mvm_wait_for_async_handlers() argument
1548 flush_work(&mvm->async_handlers_wk); in iwl_mvm_wait_for_async_handlers()
1552 void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
1554 void iwl_mvm_rx_statistics(struct iwl_mvm *mvm,
1556 int iwl_mvm_request_statistics(struct iwl_mvm *mvm, bool clear);
1557 void iwl_mvm_accu_radio_stats(struct iwl_mvm *mvm);
1560 int iwl_nvm_init(struct iwl_mvm *mvm);
1561 int iwl_mvm_load_nvm_to_nic(struct iwl_mvm *mvm);
1563 static inline u8 iwl_mvm_get_valid_tx_ant(struct iwl_mvm *mvm) in iwl_mvm_get_valid_tx_ant() argument
1565 return mvm->nvm_data && mvm->nvm_data->valid_tx_ant ? in iwl_mvm_get_valid_tx_ant()
1566 mvm->fw->valid_tx_ant & mvm->nvm_data->valid_tx_ant : in iwl_mvm_get_valid_tx_ant()
1567 mvm->fw->valid_tx_ant; in iwl_mvm_get_valid_tx_ant()
1570 static inline u8 iwl_mvm_get_valid_rx_ant(struct iwl_mvm *mvm) in iwl_mvm_get_valid_rx_ant() argument
1572 return mvm->nvm_data && mvm->nvm_data->valid_rx_ant ? in iwl_mvm_get_valid_rx_ant()
1573 mvm->fw->valid_rx_ant & mvm->nvm_data->valid_rx_ant : in iwl_mvm_get_valid_rx_ant()
1574 mvm->fw->valid_rx_ant; in iwl_mvm_get_valid_rx_ant()
1577 static inline void iwl_mvm_toggle_tx_ant(struct iwl_mvm *mvm, u8 *ant) in iwl_mvm_toggle_tx_ant() argument
1579 *ant = iwl_mvm_next_antenna(mvm, iwl_mvm_get_valid_tx_ant(mvm), *ant); in iwl_mvm_toggle_tx_ant()
1582 static inline u32 iwl_mvm_get_phy_config(struct iwl_mvm *mvm) in iwl_mvm_get_phy_config() argument
1586 u32 valid_rx_ant = iwl_mvm_get_valid_rx_ant(mvm); in iwl_mvm_get_phy_config()
1587 u32 valid_tx_ant = iwl_mvm_get_valid_tx_ant(mvm); in iwl_mvm_get_phy_config()
1592 return mvm->fw->phy_config & phy_config; in iwl_mvm_get_phy_config()
1595 int iwl_mvm_up(struct iwl_mvm *mvm);
1596 int iwl_mvm_load_d3_fw(struct iwl_mvm *mvm);
1598 int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm);
1599 bool iwl_mvm_bcast_filter_build_cmd(struct iwl_mvm *mvm,
1606 void iwl_mvm_rx_rx_phy_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1607 void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,
1609 void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,
1611 void iwl_mvm_rx_monitor_no_data(struct iwl_mvm *mvm, struct napi_struct *napi,
1613 void iwl_mvm_rx_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
1615 void iwl_mvm_rx_bar_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
1617 int iwl_mvm_notify_rx_queue(struct iwl_mvm *mvm, u32 rxq_mask,
1619 void iwl_mvm_rx_queue_notif(struct iwl_mvm *mvm, struct napi_struct *napi,
1621 void iwl_mvm_rx_tx_cmd(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1622 void iwl_mvm_mfu_assert_dump_notif(struct iwl_mvm *mvm,
1624 void iwl_mvm_send_recovery_cmd(struct iwl_mvm *mvm, u32 flags);
1625 void iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1626 void iwl_mvm_rx_ant_coupling_notif(struct iwl_mvm *mvm,
1628 void iwl_mvm_rx_fw_error(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1629 void iwl_mvm_rx_card_state_notif(struct iwl_mvm *mvm,
1631 void iwl_mvm_rx_mfuart_notif(struct iwl_mvm *mvm,
1633 void iwl_mvm_rx_shared_mem_cfg_notif(struct iwl_mvm *mvm,
1637 int iwl_mvm_phy_ctxt_add(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt,
1640 int iwl_mvm_phy_ctxt_changed(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt,
1643 void iwl_mvm_phy_ctxt_ref(struct iwl_mvm *mvm,
1645 void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm,
1647 int iwl_mvm_phy_ctx_count(struct iwl_mvm *mvm);
1652 int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1653 int iwl_mvm_mac_ctxt_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1654 int iwl_mvm_mac_ctxt_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1656 int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1657 int iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm,
1659 int iwl_mvm_mac_ctxt_send_beacon(struct iwl_mvm *mvm,
1662 int iwl_mvm_mac_ctxt_send_beacon_cmd(struct iwl_mvm *mvm,
1667 void iwl_mvm_mac_ctxt_set_tim(struct iwl_mvm *mvm,
1670 void iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm,
1672 void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm,
1674 void iwl_mvm_rx_stored_beacon_notif(struct iwl_mvm *mvm,
1676 void iwl_mvm_mu_mimo_grp_notif(struct iwl_mvm *mvm,
1678 void iwl_mvm_sta_pm_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1679 void iwl_mvm_window_status_notif(struct iwl_mvm *mvm,
1681 void iwl_mvm_mac_ctxt_recalc_tsf_id(struct iwl_mvm *mvm,
1683 void iwl_mvm_probe_resp_data_notif(struct iwl_mvm *mvm,
1685 void iwl_mvm_channel_switch_noa_notif(struct iwl_mvm *mvm,
1688 int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1689 int iwl_mvm_binding_remove_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1692 static inline size_t iwl_mvm_quota_cmd_size(struct iwl_mvm *mvm) in iwl_mvm_quota_cmd_size() argument
1694 return iwl_mvm_has_quota_low_latency(mvm) ? in iwl_mvm_quota_cmd_size()
1700 *iwl_mvm_quota_cmd_get_quota(struct iwl_mvm *mvm, in iwl_mvm_quota_cmd_get_quota() argument
1706 if (iwl_mvm_has_quota_low_latency(mvm)) in iwl_mvm_quota_cmd_get_quota()
1713 int iwl_mvm_update_quotas(struct iwl_mvm *mvm, bool force_upload,
1717 int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1720 int iwl_mvm_scan_size(struct iwl_mvm *mvm);
1721 int iwl_mvm_scan_stop(struct iwl_mvm *mvm, int type, bool notify);
1722 int iwl_mvm_max_scan_ie_len(struct iwl_mvm *mvm);
1723 void iwl_mvm_report_scan_aborted(struct iwl_mvm *mvm);
1727 void iwl_mvm_rx_lmac_scan_complete_notif(struct iwl_mvm *mvm,
1729 void iwl_mvm_rx_lmac_scan_iter_complete_notif(struct iwl_mvm *mvm,
1731 int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
1736 void iwl_mvm_rx_scan_match_found(struct iwl_mvm *mvm,
1740 int iwl_mvm_config_scan(struct iwl_mvm *mvm);
1741 void iwl_mvm_rx_umac_scan_complete_notif(struct iwl_mvm *mvm,
1743 void iwl_mvm_rx_umac_scan_iter_complete_notif(struct iwl_mvm *mvm,
1748 void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir);
1749 void iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1750 void iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1752 static inline void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, in iwl_mvm_dbgfs_register() argument
1757 iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_dbgfs_register() argument
1761 iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_dbgfs_clean() argument
1767 int iwl_mvm_send_lq_cmd(struct iwl_mvm *mvm, struct iwl_lq_cmd *lq);
1768 void iwl_mvm_update_frame_stats(struct iwl_mvm *mvm, u32 rate, bool agg);
1770 void rs_update_last_rssi(struct iwl_mvm *mvm,
1775 int iwl_mvm_power_update_device(struct iwl_mvm *mvm);
1776 int iwl_mvm_power_update_mac(struct iwl_mvm *mvm);
1777 int iwl_mvm_power_update_ps(struct iwl_mvm *mvm);
1778 int iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1781 void iwl_mvm_power_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1782 void iwl_mvm_power_uapsd_misbehaving_ap_notif(struct iwl_mvm *mvm,
1786 int iwl_mvm_leds_init(struct iwl_mvm *mvm);
1787 void iwl_mvm_leds_exit(struct iwl_mvm *mvm);
1788 void iwl_mvm_leds_sync(struct iwl_mvm *mvm);
1790 static inline int iwl_mvm_leds_init(struct iwl_mvm *mvm) in iwl_mvm_leds_init() argument
1794 static inline void iwl_mvm_leds_exit(struct iwl_mvm *mvm) in iwl_mvm_leds_exit() argument
1797 static inline void iwl_mvm_leds_sync(struct iwl_mvm *mvm) in iwl_mvm_leds_sync() argument
1815 struct iwl_wowlan_status *iwl_mvm_send_wowlan_get_status(struct iwl_mvm *mvm);
1817 void iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm,
1821 iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_set_last_nonqos_seq() argument
1827 int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
1834 int iwl_mvm_send_bt_init_conf(struct iwl_mvm *mvm);
1835 void iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm,
1837 void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1839 void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm);
1840 u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm,
1842 bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
1844 bool iwl_mvm_bt_coex_is_ant_avail(struct iwl_mvm *mvm, u8 ant);
1845 bool iwl_mvm_bt_coex_is_shared_ant_avail(struct iwl_mvm *mvm);
1846 bool iwl_mvm_bt_coex_is_tpc_allowed(struct iwl_mvm *mvm,
1848 u8 iwl_mvm_bt_coex_get_single_ant_msk(struct iwl_mvm *mvm, u8 enabled_ants);
1849 u8 iwl_mvm_bt_coex_tx_prio(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
1863 int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
1866 int iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm,
1870 void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1873 bool iwl_mvm_rx_diversity_allowed(struct iwl_mvm *mvm);
1876 int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1880 bool iwl_mvm_low_latency(struct iwl_mvm *mvm);
1881 bool iwl_mvm_low_latency_band(struct iwl_mvm *mvm, enum nl80211_band band);
1882 void iwl_mvm_send_low_latency_cmd(struct iwl_mvm *mvm, bool low_latency,
1940 static inline u32 iwl_mvm_flushable_queues(struct iwl_mvm *mvm) in iwl_mvm_flushable_queues() argument
1942 return ((BIT(mvm->trans->trans_cfg->base_params->num_of_queues) - 1) & in iwl_mvm_flushable_queues()
1946 static inline void iwl_mvm_stop_device(struct iwl_mvm *mvm) in iwl_mvm_stop_device() argument
1948 lockdep_assert_held(&mvm->mutex); in iwl_mvm_stop_device()
1949 iwl_fw_cancel_timestamp(&mvm->fwrt); in iwl_mvm_stop_device()
1950 clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status); in iwl_mvm_stop_device()
1951 iwl_fw_dbg_stop_sync(&mvm->fwrt); in iwl_mvm_stop_device()
1952 iwl_trans_stop_device(mvm->trans); in iwl_mvm_stop_device()
1953 iwl_free_fw_paging(&mvm->fwrt); in iwl_mvm_stop_device()
1954 iwl_fw_dump_conf_clear(&mvm->fwrt); in iwl_mvm_stop_device()
1958 int iwl_mvm_reconfig_scd(struct iwl_mvm *mvm, int queue, int fifo, int sta_id,
1962 void iwl_mvm_tt_tx_backoff(struct iwl_mvm *mvm, u32 backoff);
1963 void iwl_mvm_tt_temp_changed(struct iwl_mvm *mvm, u32 temp);
1964 void iwl_mvm_temp_notif(struct iwl_mvm *mvm,
1966 void iwl_mvm_tt_handler(struct iwl_mvm *mvm);
1967 void iwl_mvm_thermal_initialize(struct iwl_mvm *mvm, u32 min_backoff);
1968 void iwl_mvm_thermal_exit(struct iwl_mvm *mvm);
1969 void iwl_mvm_set_hw_ctkill_state(struct iwl_mvm *mvm, bool state);
1970 int iwl_mvm_get_temp(struct iwl_mvm *mvm, s32 *temp);
1971 void iwl_mvm_ct_kill_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
1972 void iwl_mvm_enter_ctkill(struct iwl_mvm *mvm);
1973 int iwl_mvm_send_temp_report_ths_cmd(struct iwl_mvm *mvm);
1974 int iwl_mvm_ctdp_command(struct iwl_mvm *mvm, u32 op, u32 budget);
1978 iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
1980 int iwl_mvm_init_mcc(struct iwl_mvm *mvm);
1981 void iwl_mvm_rx_chub_update_mcc(struct iwl_mvm *mvm,
1987 struct ieee80211_regdomain *iwl_mvm_get_current_regdomain(struct iwl_mvm *mvm,
1989 int iwl_mvm_init_fw_regd(struct iwl_mvm *mvm);
1990 void iwl_mvm_update_changed_regdom(struct iwl_mvm *mvm);
1993 int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1997 int iwl_mvm_ftm_start_responder(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1998 void iwl_mvm_ftm_restart_responder(struct iwl_mvm *mvm,
2000 void iwl_mvm_ftm_responder_stats(struct iwl_mvm *mvm,
2004 void iwl_mvm_ftm_restart(struct iwl_mvm *mvm);
2005 void iwl_mvm_ftm_range_resp(struct iwl_mvm *mvm,
2007 void iwl_mvm_ftm_lc_notif(struct iwl_mvm *mvm,
2009 int iwl_mvm_ftm_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2011 void iwl_mvm_ftm_abort(struct iwl_mvm *mvm, struct cfg80211_pmsr_request *req);
2021 int iwl_mvm_tdls_sta_count(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
2022 void iwl_mvm_teardown_tdls_peers(struct iwl_mvm *mvm);
2023 void iwl_mvm_recalc_tdls_state(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2038 void iwl_mvm_rx_tdls_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
2041 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 bool iwl_mvm_is_vif_assoc(struct iwl_mvm *mvm);
2052 void iwl_mvm_recalc_tcm(struct iwl_mvm *mvm);
2053 void iwl_mvm_pause_tcm(struct iwl_mvm *mvm, bool with_cancel);
2054 void iwl_mvm_resume_tcm(struct iwl_mvm *mvm);
2055 void iwl_mvm_tcm_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
2056 void iwl_mvm_tcm_rm_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
2059 void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error);
2060 unsigned int iwl_mvm_get_wd_timeout(struct iwl_mvm *mvm,
2063 void iwl_mvm_connection_loss(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
2065 void iwl_mvm_event_frame_timeout_callback(struct iwl_mvm *mvm,
2070 int iwl_mvm_sar_select_profile(struct iwl_mvm *mvm, int prof_a, int prof_b);
2071 int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm);
2072 int iwl_mvm_ppag_send_cmd(struct iwl_mvm *mvm);
2081 static inline bool iwl_mvm_has_ultra_hb_channel(struct iwl_mvm *mvm) in iwl_mvm_has_ultra_hb_channel() argument
2083 return fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_has_ultra_hb_channel()
2087 static inline void *iwl_mvm_chan_info_cmd_tail(struct iwl_mvm *mvm, in iwl_mvm_chan_info_cmd_tail() argument
2090 return (u8 *)ci + (iwl_mvm_has_ultra_hb_channel(mvm) ? in iwl_mvm_chan_info_cmd_tail()
2095 static inline size_t iwl_mvm_chan_info_padding(struct iwl_mvm *mvm) in iwl_mvm_chan_info_padding() argument
2097 return iwl_mvm_has_ultra_hb_channel(mvm) ? 0 : in iwl_mvm_chan_info_padding()
2102 static inline void iwl_mvm_set_chan_info(struct iwl_mvm *mvm, in iwl_mvm_set_chan_info() argument
2107 if (iwl_mvm_has_ultra_hb_channel(mvm)) { in iwl_mvm_set_chan_info()
2124 iwl_mvm_set_chan_info_chandef(struct iwl_mvm *mvm, in iwl_mvm_set_chan_info_chandef() argument
2128 iwl_mvm_set_chan_info(mvm, ci, chandef->chan->hw_value, in iwl_mvm_set_chan_info_chandef()