Lines Matching refs:mvm

27 	struct iwl_mvm *mvm = file->private_data;  in iwl_dbgfs_ctdp_budget_read()  local
31 if (!iwl_mvm_is_ctdp_supported(mvm)) in iwl_dbgfs_ctdp_budget_read()
34 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_ctdp_budget_read()
35 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_ctdp_budget_read()
38 mutex_lock(&mvm->mutex); in iwl_dbgfs_ctdp_budget_read()
39 budget = iwl_mvm_ctdp_command(mvm, CTDP_CMD_OPERATION_REPORT, 0); in iwl_dbgfs_ctdp_budget_read()
40 mutex_unlock(&mvm->mutex); in iwl_dbgfs_ctdp_budget_read()
50 static ssize_t iwl_dbgfs_stop_ctdp_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_stop_ctdp_write() argument
57 IWL_DEBUG_INFO(mvm, in iwl_dbgfs_stop_ctdp_write()
65 if (!force && !iwl_mvm_is_ctdp_supported(mvm)) in iwl_dbgfs_stop_ctdp_write()
68 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_stop_ctdp_write()
69 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_stop_ctdp_write()
72 mutex_lock(&mvm->mutex); in iwl_dbgfs_stop_ctdp_write()
73 ret = iwl_mvm_ctdp_command(mvm, CTDP_CMD_OPERATION_STOP, 0); in iwl_dbgfs_stop_ctdp_write()
74 mutex_unlock(&mvm->mutex); in iwl_dbgfs_stop_ctdp_write()
79 static ssize_t iwl_dbgfs_start_ctdp_write(struct iwl_mvm *mvm, in iwl_dbgfs_start_ctdp_write() argument
87 IWL_DEBUG_INFO(mvm, in iwl_dbgfs_start_ctdp_write()
95 if (!force && !iwl_mvm_is_ctdp_supported(mvm)) in iwl_dbgfs_start_ctdp_write()
98 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_start_ctdp_write()
99 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_start_ctdp_write()
102 mutex_lock(&mvm->mutex); in iwl_dbgfs_start_ctdp_write()
103 ret = iwl_mvm_ctdp_command(mvm, CTDP_CMD_OPERATION_START, 0); in iwl_dbgfs_start_ctdp_write()
104 mutex_unlock(&mvm->mutex); in iwl_dbgfs_start_ctdp_write()
109 static ssize_t iwl_dbgfs_force_ctkill_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_force_ctkill_write() argument
112 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_force_ctkill_write()
113 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_force_ctkill_write()
116 iwl_mvm_enter_ctkill(mvm); in iwl_dbgfs_force_ctkill_write()
121 static ssize_t iwl_dbgfs_tx_flush_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_tx_flush_write() argument
127 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_tx_flush_write()
128 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_tx_flush_write()
134 if (iwl_mvm_has_new_tx_api(mvm)) { in iwl_dbgfs_tx_flush_write()
135 IWL_DEBUG_TX_QUEUES(mvm, in iwl_dbgfs_tx_flush_write()
138 mutex_lock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
139 ret = iwl_mvm_flush_sta_tids(mvm, flush_arg, 0xFFFF) in iwl_dbgfs_tx_flush_write()
141 mutex_unlock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
145 IWL_DEBUG_TX_QUEUES(mvm, "FLUSHING queues mask to flush = 0x%x\n", in iwl_dbgfs_tx_flush_write()
148 mutex_lock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
149 ret = iwl_mvm_flush_tx_path(mvm, flush_arg) ? : count; in iwl_dbgfs_tx_flush_write()
150 mutex_unlock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
158 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_sram_read() local
164 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_sram_read()
168 img = &mvm->fw->img[mvm->fwrt.cur_fw_img]; in iwl_dbgfs_sram_read()
172 if (mvm->dbgfs_sram_len) { in iwl_dbgfs_sram_read()
173 ofs = mvm->dbgfs_sram_offset; in iwl_dbgfs_sram_read()
174 len = mvm->dbgfs_sram_len; in iwl_dbgfs_sram_read()
181 iwl_trans_read_mem_bytes(mvm->trans, ofs, ptr, len); in iwl_dbgfs_sram_read()
190 static ssize_t iwl_dbgfs_sram_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_sram_write() argument
197 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_sram_write()
200 img = &mvm->fw->img[mvm->fwrt.cur_fw_img]; in iwl_dbgfs_sram_write()
211 mvm->dbgfs_sram_offset = offset; in iwl_dbgfs_sram_write()
212 mvm->dbgfs_sram_len = len; in iwl_dbgfs_sram_write()
214 mvm->dbgfs_sram_offset = 0; in iwl_dbgfs_sram_write()
215 mvm->dbgfs_sram_len = 0; in iwl_dbgfs_sram_write()
225 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_set_nic_temperature_read() local
229 if (!mvm->temperature_test) in iwl_dbgfs_set_nic_temperature_read()
232 pos = scnprintf(buf, sizeof(buf), "%d\n", mvm->temperature); in iwl_dbgfs_set_nic_temperature_read()
244 static ssize_t iwl_dbgfs_set_nic_temperature_write(struct iwl_mvm *mvm, in iwl_dbgfs_set_nic_temperature_write() argument
250 if (!iwl_mvm_firmware_running(mvm) && !mvm->temperature_test) in iwl_dbgfs_set_nic_temperature_write()
261 mutex_lock(&mvm->mutex); in iwl_dbgfs_set_nic_temperature_write()
263 if (!mvm->temperature_test) in iwl_dbgfs_set_nic_temperature_write()
266 mvm->temperature_test = false; in iwl_dbgfs_set_nic_temperature_write()
271 mvm->temperature = 0; in iwl_dbgfs_set_nic_temperature_write()
273 mvm->temperature_test = true; in iwl_dbgfs_set_nic_temperature_write()
274 mvm->temperature = temperature; in iwl_dbgfs_set_nic_temperature_write()
276 IWL_DEBUG_TEMP(mvm, "%sabling debug set temperature (temp = %d)\n", in iwl_dbgfs_set_nic_temperature_write()
277 mvm->temperature_test ? "En" : "Dis", in iwl_dbgfs_set_nic_temperature_write()
278 mvm->temperature); in iwl_dbgfs_set_nic_temperature_write()
280 iwl_mvm_tt_handler(mvm); in iwl_dbgfs_set_nic_temperature_write()
283 mutex_unlock(&mvm->mutex); in iwl_dbgfs_set_nic_temperature_write()
292 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_nic_temp_read() local
297 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_nic_temp_read()
300 mutex_lock(&mvm->mutex); in iwl_dbgfs_nic_temp_read()
301 ret = iwl_mvm_get_temp(mvm, &temp); in iwl_dbgfs_nic_temp_read()
302 mutex_unlock(&mvm->mutex); in iwl_dbgfs_nic_temp_read()
317 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_sar_geo_profile_read() local
323 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_sar_geo_profile_read()
326 mutex_lock(&mvm->mutex); in iwl_dbgfs_sar_geo_profile_read()
327 tbl_idx = iwl_mvm_get_sar_geo_profile(mvm); in iwl_dbgfs_sar_geo_profile_read()
329 mutex_unlock(&mvm->mutex); in iwl_dbgfs_sar_geo_profile_read()
341 mvm->fwrt.geo_profiles[tbl_idx - 1].bands[0].chains[0], in iwl_dbgfs_sar_geo_profile_read()
342 mvm->fwrt.geo_profiles[tbl_idx - 1].bands[0].chains[1], in iwl_dbgfs_sar_geo_profile_read()
343 mvm->fwrt.geo_profiles[tbl_idx - 1].bands[0].max); in iwl_dbgfs_sar_geo_profile_read()
346 mvm->fwrt.geo_profiles[tbl_idx - 1].bands[1].chains[0], in iwl_dbgfs_sar_geo_profile_read()
347 mvm->fwrt.geo_profiles[tbl_idx - 1].bands[1].chains[1], in iwl_dbgfs_sar_geo_profile_read()
348 mvm->fwrt.geo_profiles[tbl_idx - 1].bands[1].max); in iwl_dbgfs_sar_geo_profile_read()
350 mutex_unlock(&mvm->mutex); in iwl_dbgfs_sar_geo_profile_read()
359 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_wifi_6e_enable_read() local
364 err = iwl_bios_get_dsm(&mvm->fwrt, DSM_FUNC_ENABLE_6E, &value); in iwl_dbgfs_wifi_6e_enable_read()
377 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_stations_read() local
382 mutex_lock(&mvm->mutex); in iwl_dbgfs_stations_read()
384 for (i = 0; i < mvm->fw->ucode_capa.num_stations; i++) { in iwl_dbgfs_stations_read()
386 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[i], in iwl_dbgfs_stations_read()
387 lockdep_is_held(&mvm->mutex)); in iwl_dbgfs_stations_read()
398 mutex_unlock(&mvm->mutex); in iwl_dbgfs_stations_read()
405 struct iwl_mvm *mvm, in iwl_dbgfs_rs_data_read() argument
430 (iwl_mvm_get_valid_tx_ant(mvm) & ANT_A) ? "ANT_A," : "", in iwl_dbgfs_rs_data_read()
431 (iwl_mvm_get_valid_tx_ant(mvm) & ANT_B) ? "ANT_B," : ""); in iwl_dbgfs_rs_data_read()
448 struct iwl_mvm *mvm, in iwl_dbgfs_amsdu_len_write() argument
480 struct iwl_mvm *mvm, in iwl_dbgfs_amsdu_len_read() argument
500 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_disable_power_off_read() local
506 mvm->disable_power_off); in iwl_dbgfs_disable_power_off_read()
508 mvm->disable_power_off_d3); in iwl_dbgfs_disable_power_off_read()
513 static ssize_t iwl_dbgfs_disable_power_off_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_disable_power_off_write() argument
518 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_disable_power_off_write()
524 mvm->disable_power_off = val; in iwl_dbgfs_disable_power_off_write()
528 mvm->disable_power_off_d3 = val; in iwl_dbgfs_disable_power_off_write()
533 mutex_lock(&mvm->mutex); in iwl_dbgfs_disable_power_off_write()
534 ret = iwl_mvm_power_update_device(mvm); in iwl_dbgfs_disable_power_off_write()
535 mutex_unlock(&mvm->mutex); in iwl_dbgfs_disable_power_off_write()
544 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_tas_get_status_read() local
580 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_tas_get_status_read()
583 if (iwl_fw_lookup_notif_ver(mvm->fw, DEBUG_GROUP, GET_TAS_STATUS, in iwl_dbgfs_tas_get_status_read()
587 mutex_lock(&mvm->mutex); in iwl_dbgfs_tas_get_status_read()
588 ret = iwl_mvm_send_cmd(mvm, &hcmd); in iwl_dbgfs_tas_get_status_read()
589 mutex_unlock(&mvm->mutex); in iwl_dbgfs_tas_get_status_read()
634 if (fw_has_capa(&mvm->fw->ucode_capa, in iwl_dbgfs_tas_get_status_read()
731 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_phy_integration_ver_read() local
737 bufsz = mvm->fw->phy_integration_ver_len + 2; in iwl_dbgfs_phy_integration_ver_read()
742 pos = scnprintf(buf, bufsz, "%.*s\n", mvm->fw->phy_integration_ver_len, in iwl_dbgfs_phy_integration_ver_read()
743 mvm->fw->phy_integration_ver); in iwl_dbgfs_phy_integration_ver_read()
760 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_fw_rx_stats_read() local
767 u8 cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw, in iwl_dbgfs_fw_rx_stats_read()
775 if (iwl_mvm_has_new_rx_stats_api(mvm)) in iwl_dbgfs_fw_rx_stats_read()
787 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_rx_stats_read()
789 if (iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_rx_stats_read()
790 iwl_mvm_request_statistics(mvm, false); in iwl_dbgfs_fw_rx_stats_read()
794 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
795 struct mvm_statistics_rx_phy_v2 *ofdm = &mvm->rx_stats_v3.ofdm; in iwl_dbgfs_fw_rx_stats_read()
818 struct mvm_statistics_rx_phy *ofdm = &mvm->rx_stats.ofdm; in iwl_dbgfs_fw_rx_stats_read()
829 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
830 struct mvm_statistics_rx_phy_v2 *cck = &mvm->rx_stats_v3.cck; in iwl_dbgfs_fw_rx_stats_read()
853 struct mvm_statistics_rx_phy *cck = &mvm->rx_stats.cck; in iwl_dbgfs_fw_rx_stats_read()
864 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
866 &mvm->rx_stats_v3.general; in iwl_dbgfs_fw_rx_stats_read()
894 &mvm->rx_stats.general; in iwl_dbgfs_fw_rx_stats_read()
920 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
922 &mvm->rx_stats_v3.ofdm_ht; in iwl_dbgfs_fw_rx_stats_read()
936 &mvm->rx_stats.ofdm_ht; in iwl_dbgfs_fw_rx_stats_read()
944 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_rx_stats_read()
963 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_fw_system_stats_read() local
964 u8 cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw, in iwl_dbgfs_fw_system_stats_read()
985 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_system_stats_read()
986 if (iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_system_stats_read()
987 iwl_mvm_request_statistics(mvm, false); in iwl_dbgfs_fw_system_stats_read()
990 vif = iwl_mvm_rcu_dereference_vif_id(mvm, i, false); in iwl_dbgfs_fw_system_stats_read()
1027 mvm->radio_stats.rx_time); in iwl_dbgfs_fw_system_stats_read()
1030 mvm->radio_stats.tx_time); in iwl_dbgfs_fw_system_stats_read()
1033 mvm->accu_radio_stats.rx_time); in iwl_dbgfs_fw_system_stats_read()
1036 mvm->accu_radio_stats.tx_time); in iwl_dbgfs_fw_system_stats_read()
1039 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_system_stats_read()
1048 static ssize_t iwl_dbgfs_frame_stats_read(struct iwl_mvm *mvm, in iwl_dbgfs_frame_stats_read() argument
1062 spin_lock_bh(&mvm->drv_stats_lock); in iwl_dbgfs_frame_stats_read()
1107 spin_unlock_bh(&mvm->drv_stats_lock); in iwl_dbgfs_frame_stats_read()
1119 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_drv_rx_stats_read() local
1121 return iwl_dbgfs_frame_stats_read(mvm, user_buf, count, ppos, in iwl_dbgfs_drv_rx_stats_read()
1122 &mvm->drv_rx_stats); in iwl_dbgfs_drv_rx_stats_read()
1125 static ssize_t iwl_dbgfs_fw_restart_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_fw_restart_write() argument
1130 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_restart_write()
1133 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_restart_write()
1136 set_bit(IWL_MVM_STATUS_SUPPRESS_ERROR_LOG_ONCE, &mvm->status); in iwl_dbgfs_fw_restart_write()
1137 iwl_trans_suppress_cmd_error_once(mvm->trans); in iwl_dbgfs_fw_restart_write()
1141 ret = iwl_mvm_send_cmd_pdu(mvm, in iwl_dbgfs_fw_restart_write()
1145 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_restart_write()
1150 static ssize_t iwl_dbgfs_fw_nmi_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_fw_nmi_write() argument
1153 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_nmi_write()
1156 IWL_ERR(mvm, "Triggering an NMI from debugfs\n"); in iwl_dbgfs_fw_nmi_write()
1159 set_bit(IWL_MVM_STATUS_SUPPRESS_ERROR_LOG_ONCE, &mvm->status); in iwl_dbgfs_fw_nmi_write()
1161 iwl_force_nmi(mvm->trans); in iwl_dbgfs_fw_nmi_write()
1171 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_scan_ant_rxchain_read() local
1178 if (mvm->scan_rx_ant & ANT_A) in iwl_dbgfs_scan_ant_rxchain_read()
1180 if (mvm->scan_rx_ant & ANT_B) in iwl_dbgfs_scan_ant_rxchain_read()
1182 pos += scnprintf(buf + pos, bufsz - pos, " (%x)\n", mvm->scan_rx_ant); in iwl_dbgfs_scan_ant_rxchain_read()
1188 iwl_dbgfs_scan_ant_rxchain_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_scan_ant_rxchain_write() argument
1193 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_scan_ant_rxchain_write()
1200 if (scan_rx_ant & ~(iwl_mvm_get_valid_rx_ant(mvm))) in iwl_dbgfs_scan_ant_rxchain_write()
1203 if (mvm->scan_rx_ant != scan_rx_ant) { in iwl_dbgfs_scan_ant_rxchain_write()
1204 mvm->scan_rx_ant = scan_rx_ant; in iwl_dbgfs_scan_ant_rxchain_write()
1205 if (fw_has_capa(&mvm->fw->ucode_capa, in iwl_dbgfs_scan_ant_rxchain_write()
1207 iwl_mvm_config_scan(mvm); in iwl_dbgfs_scan_ant_rxchain_write()
1213 static ssize_t iwl_dbgfs_indirection_tbl_write(struct iwl_mvm *mvm, in iwl_dbgfs_indirection_tbl_write() argument
1249 mutex_lock(&mvm->mutex); in iwl_dbgfs_indirection_tbl_write()
1250 if (iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_indirection_tbl_write()
1251 ret = iwl_mvm_send_cmd_pdu(mvm, RSS_CONFIG_CMD, 0, in iwl_dbgfs_indirection_tbl_write()
1255 mutex_unlock(&mvm->mutex); in iwl_dbgfs_indirection_tbl_write()
1260 static ssize_t iwl_dbgfs_inject_packet_write(struct iwl_mvm *mvm, in iwl_dbgfs_inject_packet_write() argument
1264 struct iwl_op_mode *opmode = container_of((void *)mvm, in iwl_dbgfs_inject_packet_write()
1276 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_inject_packet_write()
1280 if (!mvm->trans->mac_cfg->mq_rx_supported) in iwl_dbgfs_inject_packet_write()
1308 static int _iwl_dbgfs_inject_beacon_ie(struct iwl_mvm *mvm, char *bin, int len) in _iwl_dbgfs_inject_beacon_ie() argument
1325 if (!iwl_mvm_firmware_running(mvm)) in _iwl_dbgfs_inject_beacon_ie()
1328 if (!iwl_mvm_has_new_tx_api(mvm) && in _iwl_dbgfs_inject_beacon_ie()
1329 !fw_has_api(&mvm->fw->ucode_capa, in _iwl_dbgfs_inject_beacon_ie()
1333 mutex_lock(&mvm->mutex); in _iwl_dbgfs_inject_beacon_ie()
1336 vif = iwl_mvm_rcu_dereference_vif_id(mvm, i, false); in _iwl_dbgfs_inject_beacon_ie()
1347 mvm->hw->extra_beacon_tailroom = len; in _iwl_dbgfs_inject_beacon_ie()
1349 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL, 0); in _iwl_dbgfs_inject_beacon_ie()
1358 mvm->beacon_inject_active = true; in _iwl_dbgfs_inject_beacon_ie()
1362 rate = iwl_mvm_mac_ctxt_get_beacon_rate(mvm, info, vif); in _iwl_dbgfs_inject_beacon_ie()
1366 cpu_to_le16(iwl_mvm_mac_ctxt_get_beacon_flags(mvm->fw, in _iwl_dbgfs_inject_beacon_ie()
1369 if (iwl_fw_lookup_cmd_ver(mvm->fw, BEACON_TEMPLATE_CMD, 0) > 12) in _iwl_dbgfs_inject_beacon_ie()
1375 iwl_mvm_mac_ctxt_set_tim(mvm, &beacon_cmd.tim_idx, in _iwl_dbgfs_inject_beacon_ie()
1379 if (iwl_fw_lookup_cmd_ver(mvm->fw, in _iwl_dbgfs_inject_beacon_ie()
1388 iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in _iwl_dbgfs_inject_beacon_ie()
1391 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_inject_beacon_ie()
1398 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_inject_beacon_ie()
1402 static ssize_t iwl_dbgfs_inject_beacon_ie_write(struct iwl_mvm *mvm, in iwl_dbgfs_inject_beacon_ie_write() argument
1406 int ret = _iwl_dbgfs_inject_beacon_ie(mvm, buf, count); in iwl_dbgfs_inject_beacon_ie_write()
1408 mvm->hw->extra_beacon_tailroom = 0; in iwl_dbgfs_inject_beacon_ie_write()
1412 static ssize_t iwl_dbgfs_inject_beacon_ie_restore_write(struct iwl_mvm *mvm, in iwl_dbgfs_inject_beacon_ie_restore_write() argument
1417 int ret = _iwl_dbgfs_inject_beacon_ie(mvm, NULL, 0); in iwl_dbgfs_inject_beacon_ie_restore_write()
1419 mvm->hw->extra_beacon_tailroom = 0; in iwl_dbgfs_inject_beacon_ie_restore_write()
1420 mvm->beacon_inject_active = false; in iwl_dbgfs_inject_beacon_ie_restore_write()
1428 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_fw_dbg_conf_read() local
1434 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_read()
1435 conf = mvm->fwrt.dump.conf; in iwl_dbgfs_fw_dbg_conf_read()
1436 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_read()
1443 static ssize_t iwl_dbgfs_fw_dbg_conf_write(struct iwl_mvm *mvm, in iwl_dbgfs_fw_dbg_conf_write() argument
1450 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_dbg_conf_write()
1460 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_write()
1461 ret = iwl_fw_start_dbg_conf(&mvm->fwrt, conf_id); in iwl_dbgfs_fw_dbg_conf_write()
1462 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_write()
1467 static ssize_t iwl_dbgfs_fw_dbg_clear_write(struct iwl_mvm *mvm, in iwl_dbgfs_fw_dbg_clear_write() argument
1471 if (mvm->trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_9000) in iwl_dbgfs_fw_dbg_clear_write()
1478 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_dbg_clear_write()
1481 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_dbg_clear_write()
1482 iwl_fw_dbg_clear_monitor_buf(&mvm->fwrt); in iwl_dbgfs_fw_dbg_clear_write()
1483 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_dbg_clear_write()
1488 static ssize_t iwl_dbgfs_dbg_time_point_write(struct iwl_mvm *mvm, in iwl_dbgfs_dbg_time_point_write() argument
1501 iwl_dbg_tlv_time_point(&mvm->fwrt, timepoint, NULL); in iwl_dbgfs_dbg_time_point_write()
1511 debugfs_create_file(alias, mode, parent, mvm, \
1529 struct iwl_mvm *mvm = iwl_mvm_vif_from_mac80211(mvmsta->vif)->mvm; in _iwl_dbgfs_link_sta_wrap_write() local
1533 mutex_lock(&mvm->mutex); in _iwl_dbgfs_link_sta_wrap_write()
1536 lockdep_is_held(&mvm->mutex)); in _iwl_dbgfs_link_sta_wrap_write()
1538 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_link_sta_wrap_write()
1542 ret = real(link_sta, mvmsta, mvm, mvm_link_sta, buf, buf_size, ppos); in _iwl_dbgfs_link_sta_wrap_write()
1544 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_link_sta_wrap_write()
1561 struct iwl_mvm *mvm = iwl_mvm_vif_from_mac80211(mvmsta->vif)->mvm; in _iwl_dbgfs_link_sta_wrap_read() local
1565 mutex_lock(&mvm->mutex); in _iwl_dbgfs_link_sta_wrap_read()
1568 lockdep_is_held(&mvm->mutex)); in _iwl_dbgfs_link_sta_wrap_read()
1570 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_link_sta_wrap_read()
1574 ret = real(link_sta, mvmsta, mvm, mvm_link_sta, user_buf, count, ppos); in _iwl_dbgfs_link_sta_wrap_read()
1576 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_link_sta_wrap_read()
1644 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_prph_reg_read() local
1649 if (!mvm->dbgfs_prph_reg_addr) in iwl_dbgfs_prph_reg_read()
1653 mvm->dbgfs_prph_reg_addr, in iwl_dbgfs_prph_reg_read()
1654 iwl_read_prph(mvm->trans, mvm->dbgfs_prph_reg_addr)); in iwl_dbgfs_prph_reg_read()
1660 iwl_dbgfs_prph_reg_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_prph_reg_write() argument
1666 args = sscanf(buf, "%i %i", &mvm->dbgfs_prph_reg_addr, &value); in iwl_dbgfs_prph_reg_write()
1675 iwl_write_prph(mvm->trans, mvm->dbgfs_prph_reg_addr, value); in iwl_dbgfs_prph_reg_write()
1682 iwl_dbgfs_send_echo_cmd_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_send_echo_cmd_write() argument
1687 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_send_echo_cmd_write()
1690 mutex_lock(&mvm->mutex); in iwl_dbgfs_send_echo_cmd_write()
1691 ret = iwl_mvm_send_cmd_pdu(mvm, ECHO_CMD, 0, 0, NULL); in iwl_dbgfs_send_echo_cmd_write()
1692 mutex_unlock(&mvm->mutex); in iwl_dbgfs_send_echo_cmd_write()
1698 struct iwl_mvm *mvm; member
1708 apply->mvm->cur_aid = cpu_to_le16(apply->aid); in iwl_mvm_sniffer_apply()
1709 memcpy(apply->mvm->cur_bssid, apply->bssid, in iwl_mvm_sniffer_apply()
1710 sizeof(apply->mvm->cur_bssid)); in iwl_mvm_sniffer_apply()
1716 iwl_dbgfs_he_sniffer_params_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_he_sniffer_params_write() argument
1722 .mvm = mvm, in iwl_dbgfs_he_sniffer_params_write()
1730 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_he_sniffer_params_write()
1745 mutex_lock(&mvm->mutex); in iwl_dbgfs_he_sniffer_params_write()
1756 iwl_init_notification_wait(&mvm->notif_wait, &wait, in iwl_dbgfs_he_sniffer_params_write()
1760 ret = iwl_mvm_send_cmd_pdu(mvm, in iwl_dbgfs_he_sniffer_params_write()
1766 iwl_remove_notification(&mvm->notif_wait, &wait); in iwl_dbgfs_he_sniffer_params_write()
1768 mutex_unlock(&mvm->mutex); in iwl_dbgfs_he_sniffer_params_write()
1777 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_he_sniffer_params_read() local
1783 le16_to_cpu(mvm->cur_aid), mvm->cur_bssid[0], in iwl_dbgfs_he_sniffer_params_read()
1784 mvm->cur_bssid[1], mvm->cur_bssid[2], mvm->cur_bssid[3], in iwl_dbgfs_he_sniffer_params_read()
1785 mvm->cur_bssid[4], mvm->cur_bssid[5]); in iwl_dbgfs_he_sniffer_params_read()
1794 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_uapsd_noagg_bssids_read() local
1800 mutex_lock(&mvm->mutex); in iwl_dbgfs_uapsd_noagg_bssids_read()
1804 mvm->uapsd_noagg_bssids[i].addr); in iwl_dbgfs_uapsd_noagg_bssids_read()
1806 mutex_unlock(&mvm->mutex); in iwl_dbgfs_uapsd_noagg_bssids_read()
1812 iwl_dbgfs_ltr_config_write(struct iwl_mvm *mvm, in iwl_dbgfs_ltr_config_write() argument
1818 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_ltr_config_write()
1832 mutex_lock(&mvm->mutex); in iwl_dbgfs_ltr_config_write()
1833 ret = iwl_mvm_send_cmd_pdu(mvm, LTR_CONFIG, 0, sizeof(ltr_config), in iwl_dbgfs_ltr_config_write()
1835 mutex_unlock(&mvm->mutex); in iwl_dbgfs_ltr_config_write()
1838 IWL_ERR(mvm, "failed to send ltr configuration cmd\n"); in iwl_dbgfs_ltr_config_write()
1843 static ssize_t iwl_dbgfs_rfi_freq_table_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_rfi_freq_table_write() argument
1854 mutex_lock(&mvm->mutex); in iwl_dbgfs_rfi_freq_table_write()
1855 ret = iwl_rfi_send_config_cmd(mvm, NULL); in iwl_dbgfs_rfi_freq_table_write()
1856 mutex_unlock(&mvm->mutex); in iwl_dbgfs_rfi_freq_table_write()
1876 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_rfi_freq_table_read() local
1882 resp = iwl_rfi_get_freq_table(mvm); in iwl_dbgfs_rfi_freq_table_read()
1958 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_mem_read() local
1969 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_mem_read()
1981 mutex_lock(&mvm->mutex); in iwl_dbgfs_mem_read()
1982 ret = iwl_mvm_send_cmd(mvm, &hcmd); in iwl_dbgfs_mem_read()
1983 mutex_unlock(&mvm->mutex); in iwl_dbgfs_mem_read()
2019 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_mem_write() local
2028 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_mem_write()
2060 mutex_lock(&mvm->mutex); in iwl_dbgfs_mem_write()
2061 ret = iwl_mvm_send_cmd(mvm, &hcmd); in iwl_dbgfs_mem_write()
2062 mutex_unlock(&mvm->mutex); in iwl_dbgfs_mem_write()
2100 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_link_sta_add_debugfs() local
2102 if (iwl_mvm_has_tlc_offload(mvm)) { in iwl_mvm_link_sta_add_debugfs()
2109 void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm) in iwl_mvm_dbgfs_register() argument
2113 spin_lock_init(&mvm->drv_stats_lock); in iwl_mvm_dbgfs_register()
2115 MVM_DEBUGFS_ADD_FILE(tx_flush, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2116 MVM_DEBUGFS_ADD_FILE(sram, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2117 MVM_DEBUGFS_ADD_FILE(set_nic_temperature, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2118 MVM_DEBUGFS_ADD_FILE(nic_temp, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2119 MVM_DEBUGFS_ADD_FILE(ctdp_budget, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2120 MVM_DEBUGFS_ADD_FILE(stop_ctdp, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2121 MVM_DEBUGFS_ADD_FILE(start_ctdp, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2122 MVM_DEBUGFS_ADD_FILE(force_ctkill, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2123 MVM_DEBUGFS_ADD_FILE(stations, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2124 MVM_DEBUGFS_ADD_FILE(disable_power_off, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2125 MVM_DEBUGFS_ADD_FILE(fw_rx_stats, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2126 MVM_DEBUGFS_ADD_FILE(drv_rx_stats, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2127 MVM_DEBUGFS_ADD_FILE(fw_system_stats, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2128 MVM_DEBUGFS_ADD_FILE(fw_restart, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2129 MVM_DEBUGFS_ADD_FILE(fw_nmi, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2130 MVM_DEBUGFS_ADD_FILE(scan_ant_rxchain, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2131 MVM_DEBUGFS_ADD_FILE(prph_reg, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2132 MVM_DEBUGFS_ADD_FILE(fw_dbg_conf, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2133 MVM_DEBUGFS_ADD_FILE(fw_dbg_clear, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2134 MVM_DEBUGFS_ADD_FILE(dbg_time_point, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2135 MVM_DEBUGFS_ADD_FILE(send_echo_cmd, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2136 MVM_DEBUGFS_ADD_FILE(indirection_tbl, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2137 MVM_DEBUGFS_ADD_FILE(inject_packet, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2138 MVM_DEBUGFS_ADD_FILE(inject_beacon_ie, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2139 MVM_DEBUGFS_ADD_FILE(inject_beacon_ie_restore, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2140 MVM_DEBUGFS_ADD_FILE(rfi_freq_table, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2142 if (mvm->fw->phy_integration_ver) in iwl_mvm_dbgfs_register()
2143 MVM_DEBUGFS_ADD_FILE(phy_integration_ver, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2144 MVM_DEBUGFS_ADD_FILE(tas_get_status, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2146 MVM_DEBUGFS_ADD_FILE(sar_geo_profile, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2147 MVM_DEBUGFS_ADD_FILE(wifi_6e_enable, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2149 MVM_DEBUGFS_ADD_FILE(he_sniffer_params, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2151 if (fw_has_capa(&mvm->fw->ucode_capa, IWL_UCODE_TLV_CAPA_SET_LTR_GEN2)) in iwl_mvm_dbgfs_register()
2152 MVM_DEBUGFS_ADD_FILE(ltr_config, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2155 mvm->debugfs_dir, &mvm->scan_iter_notif_enabled); in iwl_mvm_dbgfs_register()
2156 debugfs_create_bool("drop_bcn_ap_mode", 0600, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2157 &mvm->drop_bcn_ap_mode); in iwl_mvm_dbgfs_register()
2159 MVM_DEBUGFS_ADD_FILE(uapsd_noagg_bssids, mvm->debugfs_dir, S_IRUSR); in iwl_mvm_dbgfs_register()
2162 MVM_DEBUGFS_ADD_FILE(d3_test, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2163 debugfs_create_bool("d3_wake_sysassert", 0600, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2164 &mvm->d3_wake_sysassert); in iwl_mvm_dbgfs_register()
2165 debugfs_create_u32("last_netdetect_scans", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2166 &mvm->last_netdetect_scans); in iwl_mvm_dbgfs_register()
2169 debugfs_create_u8("ps_disabled", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2170 &mvm->ps_disabled); in iwl_mvm_dbgfs_register()
2171 debugfs_create_blob("nvm_hw", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2172 &mvm->nvm_hw_blob); in iwl_mvm_dbgfs_register()
2173 debugfs_create_blob("nvm_sw", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2174 &mvm->nvm_sw_blob); in iwl_mvm_dbgfs_register()
2175 debugfs_create_blob("nvm_calib", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2176 &mvm->nvm_calib_blob); in iwl_mvm_dbgfs_register()
2177 debugfs_create_blob("nvm_prod", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2178 &mvm->nvm_prod_blob); in iwl_mvm_dbgfs_register()
2179 debugfs_create_blob("nvm_phy_sku", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2180 &mvm->nvm_phy_sku_blob); in iwl_mvm_dbgfs_register()
2182 mvm->debugfs_dir, &mvm->nvm_reg_blob); in iwl_mvm_dbgfs_register()
2184 debugfs_create_file("mem", 0600, mvm->debugfs_dir, mvm, in iwl_mvm_dbgfs_register()
2187 debugfs_create_bool("rx_ts_ptp", 0600, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2188 &mvm->rx_ts_ptp); in iwl_mvm_dbgfs_register()
2194 if (!IS_ERR(mvm->debugfs_dir)) { in iwl_mvm_dbgfs_register()
2197 snprintf(buf, 100, "../../%pd2", mvm->debugfs_dir->d_parent); in iwl_mvm_dbgfs_register()
2198 debugfs_create_symlink("iwlwifi", mvm->hw->wiphy->debugfsdir, in iwl_mvm_dbgfs_register()