Lines Matching refs:mvm
79 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_ctdp_budget_read() local
83 if (!iwl_mvm_is_ctdp_supported(mvm)) in iwl_dbgfs_ctdp_budget_read()
86 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_ctdp_budget_read()
87 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_ctdp_budget_read()
90 mutex_lock(&mvm->mutex); in iwl_dbgfs_ctdp_budget_read()
91 budget = iwl_mvm_ctdp_command(mvm, CTDP_CMD_OPERATION_REPORT, 0); in iwl_dbgfs_ctdp_budget_read()
92 mutex_unlock(&mvm->mutex); in iwl_dbgfs_ctdp_budget_read()
102 static ssize_t iwl_dbgfs_stop_ctdp_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_stop_ctdp_write() argument
107 if (!iwl_mvm_is_ctdp_supported(mvm)) in iwl_dbgfs_stop_ctdp_write()
110 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_stop_ctdp_write()
111 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_stop_ctdp_write()
114 mutex_lock(&mvm->mutex); in iwl_dbgfs_stop_ctdp_write()
115 ret = iwl_mvm_ctdp_command(mvm, CTDP_CMD_OPERATION_STOP, 0); in iwl_dbgfs_stop_ctdp_write()
116 mutex_unlock(&mvm->mutex); in iwl_dbgfs_stop_ctdp_write()
121 static ssize_t iwl_dbgfs_force_ctkill_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_force_ctkill_write() argument
124 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_force_ctkill_write()
125 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_force_ctkill_write()
128 iwl_mvm_enter_ctkill(mvm); in iwl_dbgfs_force_ctkill_write()
133 static ssize_t iwl_dbgfs_tx_flush_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_tx_flush_write() argument
139 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_tx_flush_write()
140 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_tx_flush_write()
146 if (iwl_mvm_has_new_tx_api(mvm)) { in iwl_dbgfs_tx_flush_write()
147 IWL_DEBUG_TX_QUEUES(mvm, in iwl_dbgfs_tx_flush_write()
150 mutex_lock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
151 ret = iwl_mvm_flush_sta_tids(mvm, flush_arg, 0xFF, 0) ? : count; in iwl_dbgfs_tx_flush_write()
152 mutex_unlock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
156 IWL_DEBUG_TX_QUEUES(mvm, "FLUSHING queues mask to flush = 0x%x\n", in iwl_dbgfs_tx_flush_write()
159 mutex_lock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
160 ret = iwl_mvm_flush_tx_path(mvm, flush_arg, 0) ? : count; in iwl_dbgfs_tx_flush_write()
161 mutex_unlock(&mvm->mutex); in iwl_dbgfs_tx_flush_write()
166 static ssize_t iwl_dbgfs_sta_drain_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_sta_drain_write() argument
172 if (!iwl_mvm_firmware_running(mvm) || in iwl_dbgfs_sta_drain_write()
173 mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) in iwl_dbgfs_sta_drain_write()
183 mutex_lock(&mvm->mutex); in iwl_dbgfs_sta_drain_write()
185 mvmsta = iwl_mvm_sta_from_staid_protected(mvm, sta_id); in iwl_dbgfs_sta_drain_write()
190 ret = iwl_mvm_drain_sta(mvm, mvmsta, drain) ? : count; in iwl_dbgfs_sta_drain_write()
192 mutex_unlock(&mvm->mutex); in iwl_dbgfs_sta_drain_write()
200 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_sram_read() local
206 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_sram_read()
210 img = &mvm->fw->img[mvm->fwrt.cur_fw_img]; in iwl_dbgfs_sram_read()
214 if (mvm->dbgfs_sram_len) { in iwl_dbgfs_sram_read()
215 ofs = mvm->dbgfs_sram_offset; in iwl_dbgfs_sram_read()
216 len = mvm->dbgfs_sram_len; in iwl_dbgfs_sram_read()
223 iwl_trans_read_mem_bytes(mvm->trans, ofs, ptr, len); in iwl_dbgfs_sram_read()
232 static ssize_t iwl_dbgfs_sram_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_sram_write() argument
239 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_sram_write()
242 img = &mvm->fw->img[mvm->fwrt.cur_fw_img]; in iwl_dbgfs_sram_write()
253 mvm->dbgfs_sram_offset = offset; in iwl_dbgfs_sram_write()
254 mvm->dbgfs_sram_len = len; in iwl_dbgfs_sram_write()
256 mvm->dbgfs_sram_offset = 0; in iwl_dbgfs_sram_write()
257 mvm->dbgfs_sram_len = 0; in iwl_dbgfs_sram_write()
267 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_set_nic_temperature_read() local
271 if (!mvm->temperature_test) in iwl_dbgfs_set_nic_temperature_read()
274 pos = scnprintf(buf , sizeof(buf), "%d\n", mvm->temperature); in iwl_dbgfs_set_nic_temperature_read()
286 static ssize_t iwl_dbgfs_set_nic_temperature_write(struct iwl_mvm *mvm, in iwl_dbgfs_set_nic_temperature_write() argument
292 if (!iwl_mvm_firmware_running(mvm) && !mvm->temperature_test) in iwl_dbgfs_set_nic_temperature_write()
303 mutex_lock(&mvm->mutex); in iwl_dbgfs_set_nic_temperature_write()
305 if (!mvm->temperature_test) in iwl_dbgfs_set_nic_temperature_write()
308 mvm->temperature_test = false; in iwl_dbgfs_set_nic_temperature_write()
313 mvm->temperature = 0; in iwl_dbgfs_set_nic_temperature_write()
315 mvm->temperature_test = true; in iwl_dbgfs_set_nic_temperature_write()
316 mvm->temperature = temperature; in iwl_dbgfs_set_nic_temperature_write()
318 IWL_DEBUG_TEMP(mvm, "%sabling debug set temperature (temp = %d)\n", in iwl_dbgfs_set_nic_temperature_write()
319 mvm->temperature_test ? "En" : "Dis" , in iwl_dbgfs_set_nic_temperature_write()
320 mvm->temperature); in iwl_dbgfs_set_nic_temperature_write()
322 iwl_mvm_tt_handler(mvm); in iwl_dbgfs_set_nic_temperature_write()
325 mutex_unlock(&mvm->mutex); in iwl_dbgfs_set_nic_temperature_write()
334 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_nic_temp_read() local
339 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_nic_temp_read()
342 mutex_lock(&mvm->mutex); in iwl_dbgfs_nic_temp_read()
343 ret = iwl_mvm_get_temp(mvm, &temp); in iwl_dbgfs_nic_temp_read()
344 mutex_unlock(&mvm->mutex); in iwl_dbgfs_nic_temp_read()
359 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_sar_geo_profile_read() local
366 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_sar_geo_profile_read()
369 mutex_lock(&mvm->mutex); in iwl_dbgfs_sar_geo_profile_read()
370 tbl_idx = iwl_mvm_get_sar_geo_profile(mvm); in iwl_dbgfs_sar_geo_profile_read()
372 mutex_unlock(&mvm->mutex); in iwl_dbgfs_sar_geo_profile_read()
380 value = &mvm->geo_profiles[tbl_idx - 1].values[0]; in iwl_dbgfs_sar_geo_profile_read()
391 mutex_unlock(&mvm->mutex); in iwl_dbgfs_sar_geo_profile_read()
400 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_stations_read() local
405 mutex_lock(&mvm->mutex); in iwl_dbgfs_stations_read()
407 for (i = 0; i < ARRAY_SIZE(mvm->fw_id_to_mac_id); i++) { in iwl_dbgfs_stations_read()
409 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[i], in iwl_dbgfs_stations_read()
410 lockdep_is_held(&mvm->mutex)); in iwl_dbgfs_stations_read()
421 mutex_unlock(&mvm->mutex); in iwl_dbgfs_stations_read()
432 struct iwl_mvm *mvm = lq_sta->pers.drv; in iwl_dbgfs_rs_data_read() local
442 mutex_lock(&mvm->mutex); in iwl_dbgfs_rs_data_read()
454 (iwl_mvm_get_valid_tx_ant(mvm) & ANT_A) ? "ANT_A," : "", in iwl_dbgfs_rs_data_read()
455 (iwl_mvm_get_valid_tx_ant(mvm) & ANT_B) ? "ANT_B," : "", in iwl_dbgfs_rs_data_read()
456 (iwl_mvm_get_valid_tx_ant(mvm) & ANT_C) ? "ANT_C" : ""); in iwl_dbgfs_rs_data_read()
463 mutex_unlock(&mvm->mutex); in iwl_dbgfs_rs_data_read()
514 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_disable_power_off_read() local
520 mvm->disable_power_off); in iwl_dbgfs_disable_power_off_read()
522 mvm->disable_power_off_d3); in iwl_dbgfs_disable_power_off_read()
527 static ssize_t iwl_dbgfs_disable_power_off_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_disable_power_off_write() argument
532 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_disable_power_off_write()
538 mvm->disable_power_off = val; in iwl_dbgfs_disable_power_off_write()
542 mvm->disable_power_off_d3 = val; in iwl_dbgfs_disable_power_off_write()
547 mutex_lock(&mvm->mutex); in iwl_dbgfs_disable_power_off_write()
548 ret = iwl_mvm_power_update_device(mvm); in iwl_dbgfs_disable_power_off_write()
549 mutex_unlock(&mvm->mutex); in iwl_dbgfs_disable_power_off_write()
617 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_bt_notif_read() local
618 struct iwl_bt_coex_profile_notif *notif = &mvm->last_bt_notif; in iwl_dbgfs_bt_notif_read()
626 mutex_lock(&mvm->mutex); in iwl_dbgfs_bt_notif_read()
649 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bt_notif_read()
661 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_bt_cmd_read() local
662 struct iwl_bt_coex_ci_cmd *cmd = &mvm->last_bt_ci_cmd; in iwl_dbgfs_bt_cmd_read()
667 mutex_lock(&mvm->mutex); in iwl_dbgfs_bt_cmd_read()
677 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bt_cmd_read()
683 iwl_dbgfs_bt_tx_prio_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_bt_tx_prio_write() argument
693 mvm->bt_tx_prio = bt_tx_prio; in iwl_dbgfs_bt_tx_prio_write()
699 iwl_dbgfs_bt_force_ant_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_bt_force_ant_write() argument
716 mutex_lock(&mvm->mutex); in iwl_dbgfs_bt_force_ant_write()
717 if (mvm->bt_force_ant_mode == bt_force_ant_mode) in iwl_dbgfs_bt_force_ant_write()
720 mvm->bt_force_ant_mode = bt_force_ant_mode; in iwl_dbgfs_bt_force_ant_write()
721 IWL_DEBUG_COEX(mvm, "Force mode: %s\n", in iwl_dbgfs_bt_force_ant_write()
722 modes_str[mvm->bt_force_ant_mode]); in iwl_dbgfs_bt_force_ant_write()
724 if (iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_bt_force_ant_write()
725 ret = iwl_mvm_send_bt_init_conf(mvm); in iwl_dbgfs_bt_force_ant_write()
730 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bt_force_ant_write()
737 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_fw_ver_read() local
750 mvm->trans->cfg->fw_name_pre); in iwl_dbgfs_fw_ver_read()
752 mvm->fwrt.fw->human_readable); in iwl_dbgfs_fw_ver_read()
754 mvm->fwrt.trans->cfg->name); in iwl_dbgfs_fw_ver_read()
756 mvm->fwrt.dev->bus->name); in iwl_dbgfs_fw_ver_read()
773 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_fw_rx_stats_read() local
781 if (iwl_mvm_has_new_rx_stats_api(mvm)) in iwl_dbgfs_fw_rx_stats_read()
793 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_rx_stats_read()
795 if (iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_rx_stats_read()
796 iwl_mvm_request_statistics(mvm, false); in iwl_dbgfs_fw_rx_stats_read()
800 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
801 struct mvm_statistics_rx_phy_v2 *ofdm = &mvm->rx_stats_v3.ofdm; in iwl_dbgfs_fw_rx_stats_read()
824 struct mvm_statistics_rx_phy *ofdm = &mvm->rx_stats.ofdm; in iwl_dbgfs_fw_rx_stats_read()
835 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
836 struct mvm_statistics_rx_phy_v2 *cck = &mvm->rx_stats_v3.cck; in iwl_dbgfs_fw_rx_stats_read()
859 struct mvm_statistics_rx_phy *cck = &mvm->rx_stats.cck; in iwl_dbgfs_fw_rx_stats_read()
870 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
872 &mvm->rx_stats_v3.general; in iwl_dbgfs_fw_rx_stats_read()
900 &mvm->rx_stats.general; in iwl_dbgfs_fw_rx_stats_read()
926 if (!iwl_mvm_has_new_rx_stats_api(mvm)) { in iwl_dbgfs_fw_rx_stats_read()
928 &mvm->rx_stats_v3.ofdm_ht; in iwl_dbgfs_fw_rx_stats_read()
942 &mvm->rx_stats.ofdm_ht; in iwl_dbgfs_fw_rx_stats_read()
950 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_rx_stats_read()
959 static ssize_t iwl_dbgfs_frame_stats_read(struct iwl_mvm *mvm, in iwl_dbgfs_frame_stats_read() argument
973 spin_lock_bh(&mvm->drv_stats_lock); in iwl_dbgfs_frame_stats_read()
1016 spin_unlock_bh(&mvm->drv_stats_lock); in iwl_dbgfs_frame_stats_read()
1028 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_drv_rx_stats_read() local
1030 return iwl_dbgfs_frame_stats_read(mvm, user_buf, count, ppos, in iwl_dbgfs_drv_rx_stats_read()
1031 &mvm->drv_rx_stats); in iwl_dbgfs_drv_rx_stats_read()
1034 static ssize_t iwl_dbgfs_fw_restart_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_fw_restart_write() argument
1039 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_restart_write()
1042 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_restart_write()
1045 if (mvm->fw_restart >= 0) in iwl_dbgfs_fw_restart_write()
1046 mvm->fw_restart++; in iwl_dbgfs_fw_restart_write()
1049 ret = iwl_mvm_send_cmd_pdu(mvm, REPLY_ERROR, 0, 0, NULL); in iwl_dbgfs_fw_restart_write()
1051 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_restart_write()
1056 static ssize_t iwl_dbgfs_fw_nmi_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_fw_nmi_write() argument
1059 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_nmi_write()
1062 iwl_force_nmi(mvm->trans); in iwl_dbgfs_fw_nmi_write()
1072 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_scan_ant_rxchain_read() local
1079 if (mvm->scan_rx_ant & ANT_A) in iwl_dbgfs_scan_ant_rxchain_read()
1081 if (mvm->scan_rx_ant & ANT_B) in iwl_dbgfs_scan_ant_rxchain_read()
1083 if (mvm->scan_rx_ant & ANT_C) in iwl_dbgfs_scan_ant_rxchain_read()
1085 pos += scnprintf(buf + pos, bufsz - pos, " (%hhx)\n", mvm->scan_rx_ant); in iwl_dbgfs_scan_ant_rxchain_read()
1091 iwl_dbgfs_scan_ant_rxchain_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_scan_ant_rxchain_write() argument
1096 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_scan_ant_rxchain_write()
1103 if (scan_rx_ant & ~(iwl_mvm_get_valid_rx_ant(mvm))) in iwl_dbgfs_scan_ant_rxchain_write()
1106 if (mvm->scan_rx_ant != scan_rx_ant) { in iwl_dbgfs_scan_ant_rxchain_write()
1107 mvm->scan_rx_ant = scan_rx_ant; in iwl_dbgfs_scan_ant_rxchain_write()
1108 if (fw_has_capa(&mvm->fw->ucode_capa, in iwl_dbgfs_scan_ant_rxchain_write()
1110 iwl_mvm_config_scan(mvm); in iwl_dbgfs_scan_ant_rxchain_write()
1116 static ssize_t iwl_dbgfs_indirection_tbl_write(struct iwl_mvm *mvm, in iwl_dbgfs_indirection_tbl_write() argument
1152 mutex_lock(&mvm->mutex); in iwl_dbgfs_indirection_tbl_write()
1153 if (iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_indirection_tbl_write()
1154 ret = iwl_mvm_send_cmd_pdu(mvm, RSS_CONFIG_CMD, 0, in iwl_dbgfs_indirection_tbl_write()
1158 mutex_unlock(&mvm->mutex); in iwl_dbgfs_indirection_tbl_write()
1163 static ssize_t iwl_dbgfs_inject_packet_write(struct iwl_mvm *mvm, in iwl_dbgfs_inject_packet_write() argument
1176 size_t mpdu_cmd_hdr_size = (mvm->trans->trans_cfg->device_family >= in iwl_dbgfs_inject_packet_write()
1181 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_inject_packet_write()
1185 if (!mvm->trans->trans_cfg->mq_rx_supported) in iwl_dbgfs_inject_packet_write()
1213 iwl_mvm_rx_mpdu_mq(mvm, NULL, &rxb, 0); in iwl_dbgfs_inject_packet_write()
1223 static int _iwl_dbgfs_inject_beacon_ie(struct iwl_mvm *mvm, char *bin, int len) in _iwl_dbgfs_inject_beacon_ie() argument
1240 if (!iwl_mvm_firmware_running(mvm)) in _iwl_dbgfs_inject_beacon_ie()
1243 if (!iwl_mvm_has_new_tx_api(mvm) && in _iwl_dbgfs_inject_beacon_ie()
1244 !fw_has_api(&mvm->fw->ucode_capa, in _iwl_dbgfs_inject_beacon_ie()
1251 vif = iwl_mvm_rcu_dereference_vif_id(mvm, i, true); in _iwl_dbgfs_inject_beacon_ie()
1262 mvm->hw->extra_beacon_tailroom = len; in _iwl_dbgfs_inject_beacon_ie()
1264 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL); in _iwl_dbgfs_inject_beacon_ie()
1273 mvm->beacon_inject_active = true; in _iwl_dbgfs_inject_beacon_ie()
1287 iwl_mvm_mac_ctxt_set_tim(mvm, &beacon_cmd.tim_idx, in _iwl_dbgfs_inject_beacon_ie()
1291 mutex_lock(&mvm->mutex); in _iwl_dbgfs_inject_beacon_ie()
1292 iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in _iwl_dbgfs_inject_beacon_ie()
1294 mutex_unlock(&mvm->mutex); in _iwl_dbgfs_inject_beacon_ie()
1306 static ssize_t iwl_dbgfs_inject_beacon_ie_write(struct iwl_mvm *mvm, in iwl_dbgfs_inject_beacon_ie_write() argument
1310 int ret = _iwl_dbgfs_inject_beacon_ie(mvm, buf, count); in iwl_dbgfs_inject_beacon_ie_write()
1312 mvm->hw->extra_beacon_tailroom = 0; in iwl_dbgfs_inject_beacon_ie_write()
1316 static ssize_t iwl_dbgfs_inject_beacon_ie_restore_write(struct iwl_mvm *mvm, in iwl_dbgfs_inject_beacon_ie_restore_write() argument
1321 int ret = _iwl_dbgfs_inject_beacon_ie(mvm, NULL, 0); in iwl_dbgfs_inject_beacon_ie_restore_write()
1323 mvm->hw->extra_beacon_tailroom = 0; in iwl_dbgfs_inject_beacon_ie_restore_write()
1324 mvm->beacon_inject_active = false; in iwl_dbgfs_inject_beacon_ie_restore_write()
1332 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_fw_dbg_conf_read() local
1338 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_read()
1339 conf = mvm->fwrt.dump.conf; in iwl_dbgfs_fw_dbg_conf_read()
1340 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_read()
1347 static ssize_t iwl_dbgfs_fw_dbg_conf_write(struct iwl_mvm *mvm, in iwl_dbgfs_fw_dbg_conf_write() argument
1354 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_fw_dbg_conf_write()
1364 mutex_lock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_write()
1365 ret = iwl_fw_start_dbg_conf(&mvm->fwrt, conf_id); in iwl_dbgfs_fw_dbg_conf_write()
1366 mutex_unlock(&mvm->mutex); in iwl_dbgfs_fw_dbg_conf_write()
1371 static ssize_t iwl_dbgfs_fw_dbg_collect_write(struct iwl_mvm *mvm, in iwl_dbgfs_fw_dbg_collect_write() argument
1378 iwl_fw_dbg_collect(&mvm->fwrt, FW_DBG_TRIGGER_USER, buf, in iwl_dbgfs_fw_dbg_collect_write()
1390 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_bcast_filters_read() local
1402 mutex_lock(&mvm->mutex); in iwl_dbgfs_bcast_filters_read()
1403 if (!iwl_mvm_bcast_filter_build_cmd(mvm, &cmd)) { in iwl_dbgfs_bcast_filters_read()
1405 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bcast_filters_read()
1408 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bcast_filters_read()
1440 static ssize_t iwl_dbgfs_bcast_filters_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_bcast_filters_write() argument
1453 if (filter_id >= ARRAY_SIZE(mvm->dbgfs_bcast_filtering.cmd.filters) || in iwl_dbgfs_bcast_filters_write()
1478 mutex_lock(&mvm->mutex); in iwl_dbgfs_bcast_filters_write()
1479 memcpy(&mvm->dbgfs_bcast_filtering.cmd.filters[filter_id], in iwl_dbgfs_bcast_filters_write()
1483 if (iwl_mvm_firmware_running(mvm) && in iwl_dbgfs_bcast_filters_write()
1484 mvm->dbgfs_bcast_filtering.override && in iwl_dbgfs_bcast_filters_write()
1485 iwl_mvm_bcast_filter_build_cmd(mvm, &cmd)) in iwl_dbgfs_bcast_filters_write()
1486 err = iwl_mvm_send_cmd_pdu(mvm, BCAST_FILTER_CMD, 0, in iwl_dbgfs_bcast_filters_write()
1488 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bcast_filters_write()
1497 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_bcast_filters_macs_read() local
1508 mutex_lock(&mvm->mutex); in iwl_dbgfs_bcast_filters_macs_read()
1509 if (!iwl_mvm_bcast_filter_build_cmd(mvm, &cmd)) { in iwl_dbgfs_bcast_filters_macs_read()
1511 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bcast_filters_macs_read()
1514 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bcast_filters_macs_read()
1528 static ssize_t iwl_dbgfs_bcast_filters_macs_write(struct iwl_mvm *mvm, in iwl_dbgfs_bcast_filters_macs_write() argument
1537 if (!mvm->bcast_filters) in iwl_dbgfs_bcast_filters_macs_write()
1551 mutex_lock(&mvm->mutex); in iwl_dbgfs_bcast_filters_macs_write()
1552 memcpy(&mvm->dbgfs_bcast_filtering.cmd.macs[mac_id], in iwl_dbgfs_bcast_filters_macs_write()
1556 if (iwl_mvm_firmware_running(mvm) && in iwl_dbgfs_bcast_filters_macs_write()
1557 mvm->dbgfs_bcast_filtering.override && in iwl_dbgfs_bcast_filters_macs_write()
1558 iwl_mvm_bcast_filter_build_cmd(mvm, &cmd)) in iwl_dbgfs_bcast_filters_macs_write()
1559 err = iwl_mvm_send_cmd_pdu(mvm, BCAST_FILTER_CMD, 0, in iwl_dbgfs_bcast_filters_macs_write()
1561 mutex_unlock(&mvm->mutex); in iwl_dbgfs_bcast_filters_macs_write()
1572 debugfs_create_file(alias, mode, parent, mvm, \
1595 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_prph_reg_read() local
1600 if (!mvm->dbgfs_prph_reg_addr) in iwl_dbgfs_prph_reg_read()
1604 mvm->dbgfs_prph_reg_addr, in iwl_dbgfs_prph_reg_read()
1605 iwl_read_prph(mvm->trans, mvm->dbgfs_prph_reg_addr)); in iwl_dbgfs_prph_reg_read()
1611 iwl_dbgfs_prph_reg_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_prph_reg_write() argument
1617 args = sscanf(buf, "%i %i", &mvm->dbgfs_prph_reg_addr, &value); in iwl_dbgfs_prph_reg_write()
1626 iwl_write_prph(mvm->trans, mvm->dbgfs_prph_reg_addr, value); in iwl_dbgfs_prph_reg_write()
1633 iwl_dbgfs_send_echo_cmd_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_send_echo_cmd_write() argument
1638 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_send_echo_cmd_write()
1641 mutex_lock(&mvm->mutex); in iwl_dbgfs_send_echo_cmd_write()
1642 ret = iwl_mvm_send_cmd_pdu(mvm, ECHO_CMD, 0, 0, NULL); in iwl_dbgfs_send_echo_cmd_write()
1643 mutex_unlock(&mvm->mutex); in iwl_dbgfs_send_echo_cmd_write()
1649 struct iwl_mvm *mvm; member
1659 apply->mvm->cur_aid = cpu_to_le16(apply->aid); in iwl_mvm_sniffer_apply()
1660 memcpy(apply->mvm->cur_bssid, apply->bssid, in iwl_mvm_sniffer_apply()
1661 sizeof(apply->mvm->cur_bssid)); in iwl_mvm_sniffer_apply()
1667 iwl_dbgfs_he_sniffer_params_write(struct iwl_mvm *mvm, char *buf, in iwl_dbgfs_he_sniffer_params_write() argument
1673 .mvm = mvm, in iwl_dbgfs_he_sniffer_params_write()
1681 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_he_sniffer_params_write()
1696 mutex_lock(&mvm->mutex); in iwl_dbgfs_he_sniffer_params_write()
1707 iwl_init_notification_wait(&mvm->notif_wait, &wait, in iwl_dbgfs_he_sniffer_params_write()
1711 ret = iwl_mvm_send_cmd_pdu(mvm, iwl_cmd_id(HE_AIR_SNIFFER_CONFIG_CMD, in iwl_dbgfs_he_sniffer_params_write()
1716 iwl_remove_notification(&mvm->notif_wait, &wait); in iwl_dbgfs_he_sniffer_params_write()
1718 mutex_unlock(&mvm->mutex); in iwl_dbgfs_he_sniffer_params_write()
1727 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_he_sniffer_params_read() local
1733 le16_to_cpu(mvm->cur_aid), mvm->cur_bssid[0], in iwl_dbgfs_he_sniffer_params_read()
1734 mvm->cur_bssid[1], mvm->cur_bssid[2], mvm->cur_bssid[3], in iwl_dbgfs_he_sniffer_params_read()
1735 mvm->cur_bssid[4], mvm->cur_bssid[5]); in iwl_dbgfs_he_sniffer_params_read()
1744 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_uapsd_noagg_bssids_read() local
1750 mutex_lock(&mvm->mutex); in iwl_dbgfs_uapsd_noagg_bssids_read()
1754 mvm->uapsd_noagg_bssids[i].addr); in iwl_dbgfs_uapsd_noagg_bssids_read()
1756 mutex_unlock(&mvm->mutex); in iwl_dbgfs_uapsd_noagg_bssids_read()
1762 iwl_dbgfs_ltr_config_write(struct iwl_mvm *mvm, in iwl_dbgfs_ltr_config_write() argument
1768 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_ltr_config_write()
1782 mutex_lock(&mvm->mutex); in iwl_dbgfs_ltr_config_write()
1783 ret = iwl_mvm_send_cmd_pdu(mvm, LTR_CONFIG, 0, sizeof(ltr_config), in iwl_dbgfs_ltr_config_write()
1785 mutex_unlock(&mvm->mutex); in iwl_dbgfs_ltr_config_write()
1788 IWL_ERR(mvm, "failed to send ltr configuration cmd\n"); in iwl_dbgfs_ltr_config_write()
1846 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_mem_read() local
1857 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_mem_read()
1870 mutex_lock(&mvm->mutex); in iwl_dbgfs_mem_read()
1871 ret = iwl_mvm_send_cmd(mvm, &hcmd); in iwl_dbgfs_mem_read()
1872 mutex_unlock(&mvm->mutex); in iwl_dbgfs_mem_read()
1903 struct iwl_mvm *mvm = file->private_data; in iwl_dbgfs_mem_write() local
1912 if (!iwl_mvm_firmware_running(mvm)) in iwl_dbgfs_mem_write()
1945 mutex_lock(&mvm->mutex); in iwl_dbgfs_mem_write()
1946 ret = iwl_mvm_send_cmd(mvm, &hcmd); in iwl_dbgfs_mem_write()
1947 mutex_unlock(&mvm->mutex); in iwl_dbgfs_mem_write()
1980 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_sta_add_debugfs() local
1982 if (iwl_mvm_has_tlc_offload(mvm)) { in iwl_mvm_sta_add_debugfs()
1988 void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir) in iwl_mvm_dbgfs_register() argument
1993 spin_lock_init(&mvm->drv_stats_lock); in iwl_mvm_dbgfs_register()
1995 mvm->debugfs_dir = dbgfs_dir; in iwl_mvm_dbgfs_register()
1997 MVM_DEBUGFS_ADD_FILE(tx_flush, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
1998 MVM_DEBUGFS_ADD_FILE(sta_drain, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
1999 MVM_DEBUGFS_ADD_FILE(sram, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2000 MVM_DEBUGFS_ADD_FILE(set_nic_temperature, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2008 MVM_DEBUGFS_ADD_FILE(disable_power_off, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2009 MVM_DEBUGFS_ADD_FILE(fw_ver, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2010 MVM_DEBUGFS_ADD_FILE(fw_rx_stats, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2011 MVM_DEBUGFS_ADD_FILE(drv_rx_stats, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2012 MVM_DEBUGFS_ADD_FILE(fw_restart, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2013 MVM_DEBUGFS_ADD_FILE(fw_nmi, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2014 MVM_DEBUGFS_ADD_FILE(bt_tx_prio, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2015 MVM_DEBUGFS_ADD_FILE(bt_force_ant, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2016 MVM_DEBUGFS_ADD_FILE(scan_ant_rxchain, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2017 MVM_DEBUGFS_ADD_FILE(prph_reg, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2018 MVM_DEBUGFS_ADD_FILE(fw_dbg_conf, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2019 MVM_DEBUGFS_ADD_FILE(fw_dbg_collect, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2020 MVM_DEBUGFS_ADD_FILE(send_echo_cmd, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2021 MVM_DEBUGFS_ADD_FILE(indirection_tbl, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2022 MVM_DEBUGFS_ADD_FILE(inject_packet, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2023 MVM_DEBUGFS_ADD_FILE(inject_beacon_ie, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2024 MVM_DEBUGFS_ADD_FILE(inject_beacon_ie_restore, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2028 MVM_DEBUGFS_ADD_FILE(he_sniffer_params, mvm->debugfs_dir, 0600); in iwl_mvm_dbgfs_register()
2030 if (fw_has_capa(&mvm->fw->ucode_capa, IWL_UCODE_TLV_CAPA_SET_LTR_GEN2)) in iwl_mvm_dbgfs_register()
2031 MVM_DEBUGFS_ADD_FILE(ltr_config, mvm->debugfs_dir, 0200); in iwl_mvm_dbgfs_register()
2034 mvm->debugfs_dir, &mvm->scan_iter_notif_enabled); in iwl_mvm_dbgfs_register()
2035 debugfs_create_bool("drop_bcn_ap_mode", 0600, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2036 &mvm->drop_bcn_ap_mode); in iwl_mvm_dbgfs_register()
2038 MVM_DEBUGFS_ADD_FILE(uapsd_noagg_bssids, mvm->debugfs_dir, S_IRUSR); in iwl_mvm_dbgfs_register()
2041 if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_BCAST_FILTERING) { in iwl_mvm_dbgfs_register()
2043 mvm->debugfs_dir); in iwl_mvm_dbgfs_register()
2046 &mvm->dbgfs_bcast_filtering.override); in iwl_mvm_dbgfs_register()
2056 MVM_DEBUGFS_ADD_FILE(d3_test, mvm->debugfs_dir, 0400); in iwl_mvm_dbgfs_register()
2057 debugfs_create_bool("d3_wake_sysassert", 0600, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2058 &mvm->d3_wake_sysassert); in iwl_mvm_dbgfs_register()
2059 debugfs_create_u32("last_netdetect_scans", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2060 &mvm->last_netdetect_scans); in iwl_mvm_dbgfs_register()
2063 debugfs_create_u8("ps_disabled", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2064 &mvm->ps_disabled); in iwl_mvm_dbgfs_register()
2065 debugfs_create_blob("nvm_hw", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2066 &mvm->nvm_hw_blob); in iwl_mvm_dbgfs_register()
2067 debugfs_create_blob("nvm_sw", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2068 &mvm->nvm_sw_blob); in iwl_mvm_dbgfs_register()
2069 debugfs_create_blob("nvm_calib", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2070 &mvm->nvm_calib_blob); in iwl_mvm_dbgfs_register()
2071 debugfs_create_blob("nvm_prod", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2072 &mvm->nvm_prod_blob); in iwl_mvm_dbgfs_register()
2073 debugfs_create_blob("nvm_phy_sku", 0400, mvm->debugfs_dir, in iwl_mvm_dbgfs_register()
2074 &mvm->nvm_phy_sku_blob); in iwl_mvm_dbgfs_register()
2076 mvm->debugfs_dir, &mvm->nvm_reg_blob); in iwl_mvm_dbgfs_register()
2078 debugfs_create_file("mem", 0600, dbgfs_dir, mvm, &iwl_dbgfs_mem_ops); in iwl_mvm_dbgfs_register()
2085 debugfs_create_symlink("iwlwifi", mvm->hw->wiphy->debugfsdir, buf); in iwl_mvm_dbgfs_register()