Lines Matching refs:ar
35 void ath10k_info(struct ath10k *ar, const char *fmt, ...) in ath10k_info() argument
44 dev_info(ar->dev, "%pV", &vaf); in ath10k_info()
45 trace_ath10k_log_info(ar, &vaf); in ath10k_info()
50 void ath10k_debug_print_hwfw_info(struct ath10k *ar) in ath10k_debug_print_hwfw_info() argument
56 ath10k_core_get_fw_features_str(ar, fw_features, sizeof(fw_features)); in ath10k_debug_print_hwfw_info()
58 ath10k_info(ar, "%s target 0x%08x chip_id 0x%08x sub %04x:%04x", in ath10k_debug_print_hwfw_info()
59 ar->hw_params.name, in ath10k_debug_print_hwfw_info()
60 ar->target_version, in ath10k_debug_print_hwfw_info()
61 ar->chip_id, in ath10k_debug_print_hwfw_info()
62 ar->id.subsystem_vendor, ar->id.subsystem_device); in ath10k_debug_print_hwfw_info()
64 ath10k_info(ar, "kconfig debug %d debugfs %d tracing %d dfs %d testmode %d\n", in ath10k_debug_print_hwfw_info()
71 firmware = ar->normal_mode_fw.fw_file.firmware; in ath10k_debug_print_hwfw_info()
75 ath10k_info(ar, "firmware ver %s api %d features %s crc32 %08x\n", in ath10k_debug_print_hwfw_info()
76 ar->hw->wiphy->fw_version, in ath10k_debug_print_hwfw_info()
77 ar->fw_api, in ath10k_debug_print_hwfw_info()
82 void ath10k_debug_print_board_info(struct ath10k *ar) in ath10k_debug_print_board_info() argument
88 if (ar->id.bmi_ids_valid) in ath10k_debug_print_board_info()
90 ar->id.bmi_chip_id, ar->id.bmi_board_id); in ath10k_debug_print_board_info()
94 board = ar->normal_mode_fw.board; in ath10k_debug_print_board_info()
100 ath10k_info(ar, "board_file api %d bmi_id %s crc32 %08x", in ath10k_debug_print_board_info()
101 ar->bd_api, in ath10k_debug_print_board_info()
106 void ath10k_debug_print_boot_info(struct ath10k *ar) in ath10k_debug_print_boot_info() argument
108 ath10k_info(ar, "htt-ver %d.%d wmi-op %d htt-op %d cal %s max-sta %d raw %d hwcrypto %d\n", in ath10k_debug_print_boot_info()
109 ar->htt.target_version_major, in ath10k_debug_print_boot_info()
110 ar->htt.target_version_minor, in ath10k_debug_print_boot_info()
111 ar->normal_mode_fw.fw_file.wmi_op_version, in ath10k_debug_print_boot_info()
112 ar->normal_mode_fw.fw_file.htt_op_version, in ath10k_debug_print_boot_info()
113 ath10k_cal_mode_str(ar->cal_mode), in ath10k_debug_print_boot_info()
114 ar->max_num_stations, in ath10k_debug_print_boot_info()
115 test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags), in ath10k_debug_print_boot_info()
116 !test_bit(ATH10K_FLAG_HW_CRYPTO_DISABLED, &ar->dev_flags)); in ath10k_debug_print_boot_info()
119 void ath10k_print_driver_info(struct ath10k *ar) in ath10k_print_driver_info() argument
121 ath10k_debug_print_hwfw_info(ar); in ath10k_print_driver_info()
122 ath10k_debug_print_board_info(ar); in ath10k_print_driver_info()
123 ath10k_debug_print_boot_info(ar); in ath10k_print_driver_info()
127 void ath10k_err(struct ath10k *ar, const char *fmt, ...) in ath10k_err() argument
136 dev_err(ar->dev, "%pV", &vaf); in ath10k_err()
137 trace_ath10k_log_err(ar, &vaf); in ath10k_err()
142 void ath10k_warn(struct ath10k *ar, const char *fmt, ...) in ath10k_warn() argument
151 dev_warn_ratelimited(ar->dev, "%pV", &vaf); in ath10k_warn()
152 trace_ath10k_log_warn(ar, &vaf); in ath10k_warn()
164 struct ath10k *ar = file->private_data; in ath10k_read_wmi_services() local
176 mutex_lock(&ar->conf_mutex); in ath10k_read_wmi_services()
178 spin_lock_bh(&ar->data_lock); in ath10k_read_wmi_services()
180 enabled = test_bit(i, ar->wmi.svc_map); in ath10k_read_wmi_services()
196 spin_unlock_bh(&ar->data_lock); in ath10k_read_wmi_services()
200 mutex_unlock(&ar->conf_mutex); in ath10k_read_wmi_services()
253 static void ath10k_debug_fw_stats_reset(struct ath10k *ar) in ath10k_debug_fw_stats_reset() argument
255 spin_lock_bh(&ar->data_lock); in ath10k_debug_fw_stats_reset()
256 ar->debug.fw_stats_done = false; in ath10k_debug_fw_stats_reset()
257 ar->debug.fw_stats.extended = false; in ath10k_debug_fw_stats_reset()
258 ath10k_fw_stats_pdevs_free(&ar->debug.fw_stats.pdevs); in ath10k_debug_fw_stats_reset()
259 ath10k_fw_stats_vdevs_free(&ar->debug.fw_stats.vdevs); in ath10k_debug_fw_stats_reset()
260 ath10k_fw_stats_peers_free(&ar->debug.fw_stats.peers); in ath10k_debug_fw_stats_reset()
261 ath10k_fw_extd_stats_peers_free(&ar->debug.fw_stats.peers_extd); in ath10k_debug_fw_stats_reset()
262 spin_unlock_bh(&ar->data_lock); in ath10k_debug_fw_stats_reset()
265 void ath10k_debug_fw_stats_process(struct ath10k *ar, struct sk_buff *skb) in ath10k_debug_fw_stats_process() argument
278 spin_lock_bh(&ar->data_lock); in ath10k_debug_fw_stats_process()
279 ret = ath10k_wmi_pull_fw_stats(ar, skb, &stats); in ath10k_debug_fw_stats_process()
281 ath10k_warn(ar, "failed to pull fw stats: %d\n", ret); in ath10k_debug_fw_stats_process()
296 if (ath10k_peer_stats_enabled(ar)) in ath10k_debug_fw_stats_process()
297 ath10k_sta_update_rx_duration(ar, &stats); in ath10k_debug_fw_stats_process()
299 if (ar->debug.fw_stats_done) { in ath10k_debug_fw_stats_process()
300 if (!ath10k_peer_stats_enabled(ar)) in ath10k_debug_fw_stats_process()
301 ath10k_warn(ar, "received unsolicited stats update event\n"); in ath10k_debug_fw_stats_process()
306 num_peers = ath10k_wmi_fw_stats_num_peers(&ar->debug.fw_stats.peers); in ath10k_debug_fw_stats_process()
307 num_vdevs = ath10k_wmi_fw_stats_num_vdevs(&ar->debug.fw_stats.vdevs); in ath10k_debug_fw_stats_process()
308 is_start = (list_empty(&ar->debug.fw_stats.pdevs) && in ath10k_debug_fw_stats_process()
310 is_end = (!list_empty(&ar->debug.fw_stats.pdevs) && in ath10k_debug_fw_stats_process()
314 list_splice_tail_init(&stats.pdevs, &ar->debug.fw_stats.pdevs); in ath10k_debug_fw_stats_process()
317 ar->debug.fw_stats_done = true; in ath10k_debug_fw_stats_process()
319 is_started = !list_empty(&ar->debug.fw_stats.pdevs); in ath10k_debug_fw_stats_process()
326 ath10k_fw_stats_peers_free(&ar->debug.fw_stats.peers); in ath10k_debug_fw_stats_process()
327 ath10k_fw_extd_stats_peers_free(&ar->debug.fw_stats.peers_extd); in ath10k_debug_fw_stats_process()
328 ath10k_warn(ar, "dropping fw peer stats\n"); in ath10k_debug_fw_stats_process()
333 ath10k_fw_stats_vdevs_free(&ar->debug.fw_stats.vdevs); in ath10k_debug_fw_stats_process()
334 ath10k_warn(ar, "dropping fw vdev stats\n"); in ath10k_debug_fw_stats_process()
340 &ar->debug.fw_stats.peers_extd); in ath10k_debug_fw_stats_process()
342 list_splice_tail_init(&stats.peers, &ar->debug.fw_stats.peers); in ath10k_debug_fw_stats_process()
343 list_splice_tail_init(&stats.vdevs, &ar->debug.fw_stats.vdevs); in ath10k_debug_fw_stats_process()
346 complete(&ar->debug.fw_stats_complete); in ath10k_debug_fw_stats_process()
357 spin_unlock_bh(&ar->data_lock); in ath10k_debug_fw_stats_process()
360 static int ath10k_debug_fw_stats_request(struct ath10k *ar) in ath10k_debug_fw_stats_request() argument
365 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_fw_stats_request()
369 ath10k_debug_fw_stats_reset(ar); in ath10k_debug_fw_stats_request()
375 reinit_completion(&ar->debug.fw_stats_complete); in ath10k_debug_fw_stats_request()
377 ret = ath10k_wmi_request_stats(ar, ar->fw_stats_req_mask); in ath10k_debug_fw_stats_request()
379 ath10k_warn(ar, "could not request stats (%d)\n", ret); in ath10k_debug_fw_stats_request()
384 wait_for_completion_timeout(&ar->debug.fw_stats_complete, in ath10k_debug_fw_stats_request()
389 spin_lock_bh(&ar->data_lock); in ath10k_debug_fw_stats_request()
390 if (ar->debug.fw_stats_done) { in ath10k_debug_fw_stats_request()
391 spin_unlock_bh(&ar->data_lock); in ath10k_debug_fw_stats_request()
394 spin_unlock_bh(&ar->data_lock); in ath10k_debug_fw_stats_request()
402 struct ath10k *ar = inode->i_private; in ath10k_fw_stats_open() local
406 mutex_lock(&ar->conf_mutex); in ath10k_fw_stats_open()
408 if (ar->state != ATH10K_STATE_ON) { in ath10k_fw_stats_open()
419 ret = ath10k_debug_fw_stats_request(ar); in ath10k_fw_stats_open()
421 ath10k_warn(ar, "failed to request fw stats: %d\n", ret); in ath10k_fw_stats_open()
425 ret = ath10k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, buf); in ath10k_fw_stats_open()
427 ath10k_warn(ar, "failed to fill fw stats: %d\n", ret); in ath10k_fw_stats_open()
433 mutex_unlock(&ar->conf_mutex); in ath10k_fw_stats_open()
440 mutex_unlock(&ar->conf_mutex); in ath10k_fw_stats_open()
472 struct ath10k *ar = file->private_data; in ath10k_debug_fw_reset_stats_read() local
481 spin_lock_bh(&ar->data_lock); in ath10k_debug_fw_reset_stats_read()
484 "fw_crash_counter\t\t%d\n", ar->stats.fw_crash_counter); in ath10k_debug_fw_reset_stats_read()
487 ar->stats.fw_warm_reset_counter); in ath10k_debug_fw_reset_stats_read()
490 ar->stats.fw_cold_reset_counter); in ath10k_debug_fw_reset_stats_read()
492 spin_unlock_bh(&ar->data_lock); in ath10k_debug_fw_reset_stats_read()
509 static int ath10k_debug_fw_assert(struct ath10k *ar) in ath10k_debug_fw_assert() argument
514 skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd) + 16); in ath10k_debug_fw_assert()
524 return ath10k_wmi_cmd_send(ar, skb, in ath10k_debug_fw_assert()
525 ar->wmi.cmd->vdev_install_key_cmdid); in ath10k_debug_fw_assert()
553 struct ath10k *ar = file->private_data; in ath10k_write_simulate_fw_crash() local
570 mutex_lock(&ar->conf_mutex); in ath10k_write_simulate_fw_crash()
572 if (ar->state != ATH10K_STATE_ON && in ath10k_write_simulate_fw_crash()
573 ar->state != ATH10K_STATE_RESTARTED) { in ath10k_write_simulate_fw_crash()
579 ath10k_info(ar, "simulating soft firmware crash\n"); in ath10k_write_simulate_fw_crash()
580 ret = ath10k_wmi_force_fw_hang(ar, WMI_FORCE_FW_HANG_ASSERT, 0); in ath10k_write_simulate_fw_crash()
582 ath10k_info(ar, "simulating hard firmware crash\n"); in ath10k_write_simulate_fw_crash()
586 ret = ath10k_wmi_vdev_set_param(ar, 0x7fff, in ath10k_write_simulate_fw_crash()
587 ar->wmi.vdev_param->rts_threshold, in ath10k_write_simulate_fw_crash()
590 ath10k_info(ar, "simulating firmware assert crash\n"); in ath10k_write_simulate_fw_crash()
591 ret = ath10k_debug_fw_assert(ar); in ath10k_write_simulate_fw_crash()
593 ath10k_info(ar, "user requested hw restart\n"); in ath10k_write_simulate_fw_crash()
594 queue_work(ar->workqueue, &ar->restart_work); in ath10k_write_simulate_fw_crash()
602 ath10k_warn(ar, "failed to simulate firmware crash: %d\n", ret); in ath10k_write_simulate_fw_crash()
609 mutex_unlock(&ar->conf_mutex); in ath10k_write_simulate_fw_crash()
624 struct ath10k *ar = file->private_data; in ath10k_read_chip_id() local
628 len = scnprintf(buf, sizeof(buf), "0x%08x\n", ar->chip_id); in ath10k_read_chip_id()
644 struct ath10k *ar = file->private_data; in ath10k_reg_addr_read() local
649 mutex_lock(&ar->conf_mutex); in ath10k_reg_addr_read()
650 reg_addr = ar->debug.reg_addr; in ath10k_reg_addr_read()
651 mutex_unlock(&ar->conf_mutex); in ath10k_reg_addr_read()
662 struct ath10k *ar = file->private_data; in ath10k_reg_addr_write() local
673 mutex_lock(&ar->conf_mutex); in ath10k_reg_addr_write()
674 ar->debug.reg_addr = reg_addr; in ath10k_reg_addr_write()
675 mutex_unlock(&ar->conf_mutex); in ath10k_reg_addr_write()
692 struct ath10k *ar = file->private_data; in ath10k_reg_value_read() local
698 mutex_lock(&ar->conf_mutex); in ath10k_reg_value_read()
700 if (ar->state != ATH10K_STATE_ON && in ath10k_reg_value_read()
701 ar->state != ATH10K_STATE_UTF) { in ath10k_reg_value_read()
706 reg_addr = ar->debug.reg_addr; in ath10k_reg_value_read()
708 reg_val = ath10k_hif_read32(ar, reg_addr); in ath10k_reg_value_read()
714 mutex_unlock(&ar->conf_mutex); in ath10k_reg_value_read()
723 struct ath10k *ar = file->private_data; in ath10k_reg_value_write() local
727 mutex_lock(&ar->conf_mutex); in ath10k_reg_value_write()
729 if (ar->state != ATH10K_STATE_ON && in ath10k_reg_value_write()
730 ar->state != ATH10K_STATE_UTF) { in ath10k_reg_value_write()
735 reg_addr = ar->debug.reg_addr; in ath10k_reg_value_write()
741 ath10k_hif_write32(ar, reg_addr, reg_val); in ath10k_reg_value_write()
746 mutex_unlock(&ar->conf_mutex); in ath10k_reg_value_write()
763 struct ath10k *ar = file->private_data; in ath10k_mem_value_read() local
773 mutex_lock(&ar->conf_mutex); in ath10k_mem_value_read()
781 if (ar->state != ATH10K_STATE_ON && in ath10k_mem_value_read()
782 ar->state != ATH10K_STATE_UTF) { in ath10k_mem_value_read()
787 ret = ath10k_hif_diag_read(ar, *ppos, buf, count); in ath10k_mem_value_read()
789 ath10k_warn(ar, "failed to read address 0x%08x via diagnose window fnrom debugfs: %d\n", in ath10k_mem_value_read()
806 mutex_unlock(&ar->conf_mutex); in ath10k_mem_value_read()
815 struct ath10k *ar = file->private_data; in ath10k_mem_value_write() local
825 mutex_lock(&ar->conf_mutex); in ath10k_mem_value_write()
833 if (ar->state != ATH10K_STATE_ON && in ath10k_mem_value_write()
834 ar->state != ATH10K_STATE_UTF) { in ath10k_mem_value_write()
845 ret = ath10k_hif_diag_write(ar, *ppos, buf, count); in ath10k_mem_value_write()
847 ath10k_warn(ar, "failed to write address 0x%08x via diagnose window from debugfs: %d\n", in ath10k_mem_value_write()
857 mutex_unlock(&ar->conf_mutex); in ath10k_mem_value_write()
870 static int ath10k_debug_htt_stats_req(struct ath10k *ar) in ath10k_debug_htt_stats_req() argument
875 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_htt_stats_req()
877 if (ar->debug.htt_stats_mask == 0) in ath10k_debug_htt_stats_req()
881 if (ar->state != ATH10K_STATE_ON) in ath10k_debug_htt_stats_req()
886 ret = ath10k_htt_h2t_stats_req(&ar->htt, ar->debug.htt_stats_mask, in ath10k_debug_htt_stats_req()
889 ath10k_warn(ar, "failed to send htt stats request: %d\n", ret); in ath10k_debug_htt_stats_req()
893 queue_delayed_work(ar->workqueue, &ar->debug.htt_stats_dwork, in ath10k_debug_htt_stats_req()
901 struct ath10k *ar = container_of(work, struct ath10k, in ath10k_debug_htt_stats_dwork() local
904 mutex_lock(&ar->conf_mutex); in ath10k_debug_htt_stats_dwork()
906 ath10k_debug_htt_stats_req(ar); in ath10k_debug_htt_stats_dwork()
908 mutex_unlock(&ar->conf_mutex); in ath10k_debug_htt_stats_dwork()
915 struct ath10k *ar = file->private_data; in ath10k_read_htt_stats_mask() local
919 len = scnprintf(buf, sizeof(buf), "%lu\n", ar->debug.htt_stats_mask); in ath10k_read_htt_stats_mask()
928 struct ath10k *ar = file->private_data; in ath10k_write_htt_stats_mask() local
940 mutex_lock(&ar->conf_mutex); in ath10k_write_htt_stats_mask()
942 ar->debug.htt_stats_mask = mask; in ath10k_write_htt_stats_mask()
944 ret = ath10k_debug_htt_stats_req(ar); in ath10k_write_htt_stats_mask()
951 mutex_unlock(&ar->conf_mutex); in ath10k_write_htt_stats_mask()
968 struct ath10k *ar = file->private_data; in ath10k_read_htt_max_amsdu_ampdu() local
973 mutex_lock(&ar->conf_mutex); in ath10k_read_htt_max_amsdu_ampdu()
975 amsdu = ar->htt.max_num_amsdu; in ath10k_read_htt_max_amsdu_ampdu()
976 ampdu = ar->htt.max_num_ampdu; in ath10k_read_htt_max_amsdu_ampdu()
977 mutex_unlock(&ar->conf_mutex); in ath10k_read_htt_max_amsdu_ampdu()
988 struct ath10k *ar = file->private_data; in ath10k_write_htt_max_amsdu_ampdu() local
1003 mutex_lock(&ar->conf_mutex); in ath10k_write_htt_max_amsdu_ampdu()
1005 res = ath10k_htt_h2t_aggr_cfg_msg(&ar->htt, ampdu, amsdu); in ath10k_write_htt_max_amsdu_ampdu()
1010 ar->htt.max_num_amsdu = amsdu; in ath10k_write_htt_max_amsdu_ampdu()
1011 ar->htt.max_num_ampdu = ampdu; in ath10k_write_htt_max_amsdu_ampdu()
1014 mutex_unlock(&ar->conf_mutex); in ath10k_write_htt_max_amsdu_ampdu()
1030 struct ath10k *ar = file->private_data; in ath10k_read_fw_dbglog() local
1035 ar->debug.fw_dbglog_mask, ar->debug.fw_dbglog_level); in ath10k_read_fw_dbglog()
1044 struct ath10k *ar = file->private_data; in ath10k_write_fw_dbglog() local
1064 mutex_lock(&ar->conf_mutex); in ath10k_write_fw_dbglog()
1066 ar->debug.fw_dbglog_mask = mask; in ath10k_write_fw_dbglog()
1067 ar->debug.fw_dbglog_level = log_level; in ath10k_write_fw_dbglog()
1069 if (ar->state == ATH10K_STATE_ON) { in ath10k_write_fw_dbglog()
1070 ret = ath10k_wmi_dbglog_cfg(ar, ar->debug.fw_dbglog_mask, in ath10k_write_fw_dbglog()
1071 ar->debug.fw_dbglog_level); in ath10k_write_fw_dbglog()
1073 ath10k_warn(ar, "dbglog cfg failed from debugfs: %d\n", in ath10k_write_fw_dbglog()
1082 mutex_unlock(&ar->conf_mutex); in ath10k_write_fw_dbglog()
1166 struct ath10k *ar = hw->priv; in ath10k_debug_get_et_stats() local
1171 mutex_lock(&ar->conf_mutex); in ath10k_debug_get_et_stats()
1173 if (ar->state == ATH10K_STATE_ON) { in ath10k_debug_get_et_stats()
1174 ret = ath10k_debug_fw_stats_request(ar); in ath10k_debug_get_et_stats()
1177 ath10k_warn(ar, in ath10k_debug_get_et_stats()
1183 pdev_stats = list_first_entry_or_null(&ar->debug.fw_stats.pdevs, in ath10k_debug_get_et_stats()
1191 spin_lock_bh(&ar->data_lock); in ath10k_debug_get_et_stats()
1236 data[i++] = ar->stats.fw_crash_counter; in ath10k_debug_get_et_stats()
1237 data[i++] = ar->stats.fw_warm_reset_counter; in ath10k_debug_get_et_stats()
1238 data[i++] = ar->stats.fw_cold_reset_counter; in ath10k_debug_get_et_stats()
1240 spin_unlock_bh(&ar->data_lock); in ath10k_debug_get_et_stats()
1242 mutex_unlock(&ar->conf_mutex); in ath10k_debug_get_et_stats()
1255 static int ath10k_debug_cal_data_fetch(struct ath10k *ar) in ath10k_debug_cal_data_fetch() argument
1261 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_cal_data_fetch()
1263 if (WARN_ON(ar->hw_params.cal_data_len > ATH10K_DEBUG_CAL_DATA_LEN)) in ath10k_debug_cal_data_fetch()
1268 ret = ath10k_hif_diag_read(ar, hi_addr, &addr, sizeof(addr)); in ath10k_debug_cal_data_fetch()
1270 ath10k_warn(ar, "failed to read hi_board_data address: %d\n", in ath10k_debug_cal_data_fetch()
1275 ret = ath10k_hif_diag_read(ar, le32_to_cpu(addr), ar->debug.cal_data, in ath10k_debug_cal_data_fetch()
1276 ar->hw_params.cal_data_len); in ath10k_debug_cal_data_fetch()
1278 ath10k_warn(ar, "failed to read calibration data: %d\n", ret); in ath10k_debug_cal_data_fetch()
1287 struct ath10k *ar = inode->i_private; in ath10k_debug_cal_data_open() local
1289 mutex_lock(&ar->conf_mutex); in ath10k_debug_cal_data_open()
1291 if (ar->state == ATH10K_STATE_ON || in ath10k_debug_cal_data_open()
1292 ar->state == ATH10K_STATE_UTF) { in ath10k_debug_cal_data_open()
1293 ath10k_debug_cal_data_fetch(ar); in ath10k_debug_cal_data_open()
1296 file->private_data = ar; in ath10k_debug_cal_data_open()
1297 mutex_unlock(&ar->conf_mutex); in ath10k_debug_cal_data_open()
1306 struct ath10k *ar = file->private_data; in ath10k_debug_cal_data_read() local
1308 mutex_lock(&ar->conf_mutex); in ath10k_debug_cal_data_read()
1311 ar->debug.cal_data, in ath10k_debug_cal_data_read()
1312 ar->hw_params.cal_data_len); in ath10k_debug_cal_data_read()
1314 mutex_unlock(&ar->conf_mutex); in ath10k_debug_cal_data_read()
1323 struct ath10k *ar = file->private_data; in ath10k_write_ani_enable() local
1330 mutex_lock(&ar->conf_mutex); in ath10k_write_ani_enable()
1332 if (ar->ani_enabled == enable) { in ath10k_write_ani_enable()
1337 ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->ani_enable, in ath10k_write_ani_enable()
1340 ath10k_warn(ar, "ani_enable failed from debugfs: %d\n", ret); in ath10k_write_ani_enable()
1343 ar->ani_enabled = enable; in ath10k_write_ani_enable()
1348 mutex_unlock(&ar->conf_mutex); in ath10k_write_ani_enable()
1356 struct ath10k *ar = file->private_data; in ath10k_read_ani_enable() local
1360 len = scnprintf(buf, sizeof(buf), "%d\n", ar->ani_enabled); in ath10k_read_ani_enable()
1384 struct ath10k *ar = file->private_data; in ath10k_read_nf_cal_period() local
1388 len = scnprintf(buf, sizeof(buf), "%d\n", ar->debug.nf_cal_period); in ath10k_read_nf_cal_period()
1397 struct ath10k *ar = file->private_data; in ath10k_write_nf_cal_period() local
1412 mutex_lock(&ar->conf_mutex); in ath10k_write_nf_cal_period()
1414 ar->debug.nf_cal_period = period; in ath10k_write_nf_cal_period()
1416 if (ar->state != ATH10K_STATE_ON) { in ath10k_write_nf_cal_period()
1422 ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->cal_period, in ath10k_write_nf_cal_period()
1423 ar->debug.nf_cal_period); in ath10k_write_nf_cal_period()
1425 ath10k_warn(ar, "cal period cfg failed from debugfs: %d\n", in ath10k_write_nf_cal_period()
1433 mutex_unlock(&ar->conf_mutex); in ath10k_write_nf_cal_period()
1448 static int ath10k_debug_tpc_stats_request(struct ath10k *ar) in ath10k_debug_tpc_stats_request() argument
1453 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_tpc_stats_request()
1455 reinit_completion(&ar->debug.tpc_complete); in ath10k_debug_tpc_stats_request()
1457 ret = ath10k_wmi_pdev_get_tpc_config(ar, WMI_TPC_CONFIG_PARAM); in ath10k_debug_tpc_stats_request()
1459 ath10k_warn(ar, "failed to request tpc config: %d\n", ret); in ath10k_debug_tpc_stats_request()
1463 time_left = wait_for_completion_timeout(&ar->debug.tpc_complete, in ath10k_debug_tpc_stats_request()
1471 void ath10k_debug_tpc_stats_process(struct ath10k *ar, in ath10k_debug_tpc_stats_process() argument
1474 spin_lock_bh(&ar->data_lock); in ath10k_debug_tpc_stats_process()
1476 kfree(ar->debug.tpc_stats); in ath10k_debug_tpc_stats_process()
1477 ar->debug.tpc_stats = tpc_stats; in ath10k_debug_tpc_stats_process()
1478 complete(&ar->debug.tpc_complete); in ath10k_debug_tpc_stats_process()
1480 spin_unlock_bh(&ar->data_lock); in ath10k_debug_tpc_stats_process()
1484 ath10k_debug_tpc_stats_final_process(struct ath10k *ar, in ath10k_debug_tpc_stats_final_process() argument
1487 spin_lock_bh(&ar->data_lock); in ath10k_debug_tpc_stats_final_process()
1489 kfree(ar->debug.tpc_stats_final); in ath10k_debug_tpc_stats_final_process()
1490 ar->debug.tpc_stats_final = tpc_stats; in ath10k_debug_tpc_stats_final_process()
1491 complete(&ar->debug.tpc_complete); in ath10k_debug_tpc_stats_final_process()
1493 spin_unlock_bh(&ar->data_lock); in ath10k_debug_tpc_stats_final_process()
1542 static void ath10k_tpc_stats_fill(struct ath10k *ar, in ath10k_tpc_stats_fill() argument
1552 spin_lock_bh(&ar->data_lock); in ath10k_tpc_stats_fill()
1555 ath10k_warn(ar, "failed to get tpc stats\n"); in ath10k_tpc_stats_fill()
1622 spin_unlock_bh(&ar->data_lock); in ath10k_tpc_stats_fill()
1632 struct ath10k *ar = inode->i_private; in ath10k_tpc_stats_open() local
1636 mutex_lock(&ar->conf_mutex); in ath10k_tpc_stats_open()
1638 if (ar->state != ATH10K_STATE_ON) { in ath10k_tpc_stats_open()
1649 ret = ath10k_debug_tpc_stats_request(ar); in ath10k_tpc_stats_open()
1651 ath10k_warn(ar, "failed to request tpc config stats: %d\n", in ath10k_tpc_stats_open()
1656 ath10k_tpc_stats_fill(ar, ar->debug.tpc_stats, buf); in ath10k_tpc_stats_open()
1659 mutex_unlock(&ar->conf_mutex); in ath10k_tpc_stats_open()
1666 mutex_unlock(&ar->conf_mutex); in ath10k_tpc_stats_open()
1694 int ath10k_debug_start(struct ath10k *ar) in ath10k_debug_start() argument
1698 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_start()
1700 ret = ath10k_debug_htt_stats_req(ar); in ath10k_debug_start()
1703 ath10k_warn(ar, "failed to start htt stats workqueue: %d\n", in ath10k_debug_start()
1706 if (ar->debug.fw_dbglog_mask) { in ath10k_debug_start()
1707 ret = ath10k_wmi_dbglog_cfg(ar, ar->debug.fw_dbglog_mask, in ath10k_debug_start()
1711 ath10k_warn(ar, "failed to enable dbglog during start: %d", in ath10k_debug_start()
1715 if (ar->pktlog_filter) { in ath10k_debug_start()
1716 ret = ath10k_wmi_pdev_pktlog_enable(ar, in ath10k_debug_start()
1717 ar->pktlog_filter); in ath10k_debug_start()
1720 ath10k_warn(ar, in ath10k_debug_start()
1722 ar->pktlog_filter, ret); in ath10k_debug_start()
1724 ret = ath10k_wmi_pdev_pktlog_disable(ar); in ath10k_debug_start()
1727 ath10k_warn(ar, "failed to disable pktlog: %d\n", ret); in ath10k_debug_start()
1730 if (ar->debug.nf_cal_period && in ath10k_debug_start()
1732 ar->normal_mode_fw.fw_file.fw_features)) { in ath10k_debug_start()
1733 ret = ath10k_wmi_pdev_set_param(ar, in ath10k_debug_start()
1734 ar->wmi.pdev_param->cal_period, in ath10k_debug_start()
1735 ar->debug.nf_cal_period); in ath10k_debug_start()
1738 ath10k_warn(ar, "cal period cfg failed from debug start: %d\n", in ath10k_debug_start()
1745 void ath10k_debug_stop(struct ath10k *ar) in ath10k_debug_stop() argument
1747 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_stop()
1750 ar->normal_mode_fw.fw_file.fw_features)) in ath10k_debug_stop()
1751 ath10k_debug_cal_data_fetch(ar); in ath10k_debug_stop()
1757 if (ar->debug.htt_stats_mask != 0) in ath10k_debug_stop()
1758 cancel_delayed_work(&ar->debug.htt_stats_dwork); in ath10k_debug_stop()
1760 ath10k_wmi_pdev_pktlog_disable(ar); in ath10k_debug_stop()
1767 struct ath10k *ar = file->private_data; in ath10k_write_simulate_radar() local
1774 arvif = list_first_entry(&ar->arvifs, typeof(*arvif), list); in ath10k_write_simulate_radar()
1778 ieee80211_radar_detected(ar->hw); in ath10k_write_simulate_radar()
1792 ar->debug.dfs_stats.p))
1796 ar->debug.dfs_pool_stats.p))
1803 struct ath10k *ar = file->private_data; in ath10k_read_dfs_stats() local
1810 if (!ar->dfs_detector) { in ath10k_read_dfs_stats()
1815 ar->debug.dfs_pool_stats = in ath10k_read_dfs_stats()
1816 ar->dfs_detector->get_stats(ar->dfs_detector); in ath10k_read_dfs_stats()
1856 struct ath10k *ar = file->private_data; in ath10k_write_pktlog_filter() local
1863 mutex_lock(&ar->conf_mutex); in ath10k_write_pktlog_filter()
1865 if (ar->state != ATH10K_STATE_ON) { in ath10k_write_pktlog_filter()
1866 ar->pktlog_filter = filter; in ath10k_write_pktlog_filter()
1871 if (filter == ar->pktlog_filter) { in ath10k_write_pktlog_filter()
1877 ret = ath10k_wmi_pdev_pktlog_enable(ar, filter); in ath10k_write_pktlog_filter()
1879 ath10k_warn(ar, "failed to enable pktlog filter %x: %d\n", in ath10k_write_pktlog_filter()
1880 ar->pktlog_filter, ret); in ath10k_write_pktlog_filter()
1884 ret = ath10k_wmi_pdev_pktlog_disable(ar); in ath10k_write_pktlog_filter()
1886 ath10k_warn(ar, "failed to disable pktlog: %d\n", ret); in ath10k_write_pktlog_filter()
1891 ar->pktlog_filter = filter; in ath10k_write_pktlog_filter()
1895 mutex_unlock(&ar->conf_mutex); in ath10k_write_pktlog_filter()
1903 struct ath10k *ar = file->private_data; in ath10k_read_pktlog_filter() local
1906 mutex_lock(&ar->conf_mutex); in ath10k_read_pktlog_filter()
1908 ar->pktlog_filter); in ath10k_read_pktlog_filter()
1909 mutex_unlock(&ar->conf_mutex); in ath10k_read_pktlog_filter()
1924 struct ath10k *ar = file->private_data; in ath10k_write_quiet_period() local
1931 ath10k_warn(ar, "Quiet period %u can not be lesser than 25ms\n", in ath10k_write_quiet_period()
1935 mutex_lock(&ar->conf_mutex); in ath10k_write_quiet_period()
1936 ar->thermal.quiet_period = period; in ath10k_write_quiet_period()
1937 ath10k_thermal_set_throttling(ar); in ath10k_write_quiet_period()
1938 mutex_unlock(&ar->conf_mutex); in ath10k_write_quiet_period()
1947 struct ath10k *ar = file->private_data; in ath10k_read_quiet_period() local
1950 mutex_lock(&ar->conf_mutex); in ath10k_read_quiet_period()
1952 ar->thermal.quiet_period); in ath10k_read_quiet_period()
1953 mutex_unlock(&ar->conf_mutex); in ath10k_read_quiet_period()
1968 struct ath10k *ar = file->private_data; in ath10k_write_btcoex() local
1984 mutex_lock(&ar->conf_mutex); in ath10k_write_btcoex()
1986 if (ar->state != ATH10K_STATE_ON && in ath10k_write_btcoex()
1987 ar->state != ATH10K_STATE_RESTARTED) { in ath10k_write_btcoex()
1992 if (!(test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) ^ val)) { in ath10k_write_btcoex()
1997 pdev_param = ar->wmi.pdev_param->enable_btcoex; in ath10k_write_btcoex()
1999 ar->running_fw->fw_file.fw_features)) { in ath10k_write_btcoex()
2000 ret = ath10k_wmi_pdev_set_param(ar, pdev_param, val); in ath10k_write_btcoex()
2002 ath10k_warn(ar, "failed to enable btcoex: %d\n", ret); in ath10k_write_btcoex()
2007 ath10k_info(ar, "restarting firmware due to btcoex change"); in ath10k_write_btcoex()
2008 queue_work(ar->workqueue, &ar->restart_work); in ath10k_write_btcoex()
2012 set_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags); in ath10k_write_btcoex()
2014 clear_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags); in ath10k_write_btcoex()
2019 mutex_unlock(&ar->conf_mutex); in ath10k_write_btcoex()
2028 struct ath10k *ar = file->private_data; in ath10k_read_btcoex() local
2031 mutex_lock(&ar->conf_mutex); in ath10k_read_btcoex()
2033 test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags)); in ath10k_read_btcoex()
2034 mutex_unlock(&ar->conf_mutex); in ath10k_read_btcoex()
2049 struct ath10k *ar = file->private_data; in ath10k_write_peer_stats() local
2064 mutex_lock(&ar->conf_mutex); in ath10k_write_peer_stats()
2066 if (ar->state != ATH10K_STATE_ON && in ath10k_write_peer_stats()
2067 ar->state != ATH10K_STATE_RESTARTED) { in ath10k_write_peer_stats()
2072 if (!(test_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags) ^ val)) { in ath10k_write_peer_stats()
2078 set_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags); in ath10k_write_peer_stats()
2080 clear_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags); in ath10k_write_peer_stats()
2082 ath10k_info(ar, "restarting firmware due to Peer stats change"); in ath10k_write_peer_stats()
2084 queue_work(ar->workqueue, &ar->restart_work); in ath10k_write_peer_stats()
2088 mutex_unlock(&ar->conf_mutex); in ath10k_write_peer_stats()
2097 struct ath10k *ar = file->private_data; in ath10k_read_peer_stats() local
2100 mutex_lock(&ar->conf_mutex); in ath10k_read_peer_stats()
2102 test_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags)); in ath10k_read_peer_stats()
2103 mutex_unlock(&ar->conf_mutex); in ath10k_read_peer_stats()
2118 struct ath10k *ar = file->private_data; in ath10k_debug_fw_checksums_read() local
2127 mutex_lock(&ar->conf_mutex); in ath10k_debug_fw_checksums_read()
2131 crc32_le(0, ar->normal_mode_fw.fw_file.firmware->data, in ath10k_debug_fw_checksums_read()
2132 ar->normal_mode_fw.fw_file.firmware->size)); in ath10k_debug_fw_checksums_read()
2135 crc32_le(0, ar->normal_mode_fw.fw_file.firmware_data, in ath10k_debug_fw_checksums_read()
2136 ar->normal_mode_fw.fw_file.firmware_len)); in ath10k_debug_fw_checksums_read()
2139 crc32_le(0, ar->normal_mode_fw.fw_file.otp_data, in ath10k_debug_fw_checksums_read()
2140 ar->normal_mode_fw.fw_file.otp_len)); in ath10k_debug_fw_checksums_read()
2143 crc32_le(0, ar->normal_mode_fw.fw_file.codeswap_data, in ath10k_debug_fw_checksums_read()
2144 ar->normal_mode_fw.fw_file.codeswap_len)); in ath10k_debug_fw_checksums_read()
2147 crc32_le(0, ar->normal_mode_fw.board->data, in ath10k_debug_fw_checksums_read()
2148 ar->normal_mode_fw.board->size)); in ath10k_debug_fw_checksums_read()
2151 crc32_le(0, ar->normal_mode_fw.board_data, in ath10k_debug_fw_checksums_read()
2152 ar->normal_mode_fw.board_len)); in ath10k_debug_fw_checksums_read()
2156 mutex_unlock(&ar->conf_mutex); in ath10k_debug_fw_checksums_read()
2173 struct ath10k *ar = file->private_data; in ath10k_sta_tid_stats_mask_read() local
2177 len = scnprintf(buf, sizeof(buf), "0x%08x\n", ar->sta_tid_stats_mask); in ath10k_sta_tid_stats_mask_read()
2185 struct ath10k *ar = file->private_data; in ath10k_sta_tid_stats_mask_write() local
2198 ar->sta_tid_stats_mask = mask; in ath10k_sta_tid_stats_mask_write()
2211 static int ath10k_debug_tpc_stats_final_request(struct ath10k *ar) in ath10k_debug_tpc_stats_final_request() argument
2216 lockdep_assert_held(&ar->conf_mutex); in ath10k_debug_tpc_stats_final_request()
2218 reinit_completion(&ar->debug.tpc_complete); in ath10k_debug_tpc_stats_final_request()
2220 ret = ath10k_wmi_pdev_get_tpc_table_cmdid(ar, WMI_TPC_CONFIG_PARAM); in ath10k_debug_tpc_stats_final_request()
2222 ath10k_warn(ar, "failed to request tpc table cmdid: %d\n", ret); in ath10k_debug_tpc_stats_final_request()
2226 time_left = wait_for_completion_timeout(&ar->debug.tpc_complete, in ath10k_debug_tpc_stats_final_request()
2236 struct ath10k *ar = inode->i_private; in ath10k_tpc_stats_final_open() local
2240 mutex_lock(&ar->conf_mutex); in ath10k_tpc_stats_final_open()
2242 if (ar->state != ATH10K_STATE_ON) { in ath10k_tpc_stats_final_open()
2253 ret = ath10k_debug_tpc_stats_final_request(ar); in ath10k_tpc_stats_final_open()
2255 ath10k_warn(ar, "failed to request tpc stats final: %d\n", in ath10k_tpc_stats_final_open()
2260 ath10k_tpc_stats_fill(ar, ar->debug.tpc_stats, buf); in ath10k_tpc_stats_final_open()
2263 mutex_unlock(&ar->conf_mutex); in ath10k_tpc_stats_final_open()
2270 mutex_unlock(&ar->conf_mutex); in ath10k_tpc_stats_final_open()
2304 struct ath10k *ar = file->private_data; in ath10k_write_warm_hw_reset() local
2314 mutex_lock(&ar->conf_mutex); in ath10k_write_warm_hw_reset()
2316 if (ar->state != ATH10K_STATE_ON) { in ath10k_write_warm_hw_reset()
2321 if (!(test_bit(WMI_SERVICE_RESET_CHIP, ar->wmi.svc_map))) in ath10k_write_warm_hw_reset()
2322 ath10k_warn(ar, "wmi service for reset chip is not available\n"); in ath10k_write_warm_hw_reset()
2324 ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->pdev_reset, in ath10k_write_warm_hw_reset()
2328 ath10k_warn(ar, "failed to enable warm hw reset: %d\n", ret); in ath10k_write_warm_hw_reset()
2335 mutex_unlock(&ar->conf_mutex); in ath10k_write_warm_hw_reset()
2346 int ath10k_debug_create(struct ath10k *ar) in ath10k_debug_create() argument
2348 ar->debug.cal_data = vzalloc(ATH10K_DEBUG_CAL_DATA_LEN); in ath10k_debug_create()
2349 if (!ar->debug.cal_data) in ath10k_debug_create()
2352 INIT_LIST_HEAD(&ar->debug.fw_stats.pdevs); in ath10k_debug_create()
2353 INIT_LIST_HEAD(&ar->debug.fw_stats.vdevs); in ath10k_debug_create()
2354 INIT_LIST_HEAD(&ar->debug.fw_stats.peers); in ath10k_debug_create()
2355 INIT_LIST_HEAD(&ar->debug.fw_stats.peers_extd); in ath10k_debug_create()
2360 void ath10k_debug_destroy(struct ath10k *ar) in ath10k_debug_destroy() argument
2362 vfree(ar->debug.cal_data); in ath10k_debug_destroy()
2363 ar->debug.cal_data = NULL; in ath10k_debug_destroy()
2365 ath10k_debug_fw_stats_reset(ar); in ath10k_debug_destroy()
2367 kfree(ar->debug.tpc_stats); in ath10k_debug_destroy()
2370 int ath10k_debug_register(struct ath10k *ar) in ath10k_debug_register() argument
2372 ar->debug.debugfs_phy = debugfs_create_dir("ath10k", in ath10k_debug_register()
2373 ar->hw->wiphy->debugfsdir); in ath10k_debug_register()
2374 if (IS_ERR_OR_NULL(ar->debug.debugfs_phy)) { in ath10k_debug_register()
2375 if (IS_ERR(ar->debug.debugfs_phy)) in ath10k_debug_register()
2376 return PTR_ERR(ar->debug.debugfs_phy); in ath10k_debug_register()
2381 INIT_DELAYED_WORK(&ar->debug.htt_stats_dwork, in ath10k_debug_register()
2384 init_completion(&ar->debug.tpc_complete); in ath10k_debug_register()
2385 init_completion(&ar->debug.fw_stats_complete); in ath10k_debug_register()
2387 debugfs_create_file("fw_stats", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2390 debugfs_create_file("fw_reset_stats", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2393 debugfs_create_file("wmi_services", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2396 debugfs_create_file("simulate_fw_crash", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2399 debugfs_create_file("reg_addr", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2402 debugfs_create_file("reg_value", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2405 debugfs_create_file("mem_value", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2408 debugfs_create_file("chip_id", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2411 debugfs_create_file("htt_stats_mask", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2414 debugfs_create_file("htt_max_amsdu_ampdu", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2417 debugfs_create_file("fw_dbglog", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2421 ar->normal_mode_fw.fw_file.fw_features)) { in ath10k_debug_register()
2422 debugfs_create_file("cal_data", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2425 debugfs_create_file("nf_cal_period", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2429 debugfs_create_file("ani_enable", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2433 debugfs_create_file("dfs_simulate_radar", 0200, ar->debug.debugfs_phy, in ath10k_debug_register()
2434 ar, &fops_simulate_radar); in ath10k_debug_register()
2437 ar->debug.debugfs_phy, in ath10k_debug_register()
2438 &ar->dfs_block_radar_events); in ath10k_debug_register()
2440 debugfs_create_file("dfs_stats", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2444 debugfs_create_file("pktlog_filter", 0644, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2447 debugfs_create_file("quiet_period", 0644, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2450 debugfs_create_file("tpc_stats", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2453 if (test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map)) in ath10k_debug_register()
2454 debugfs_create_file("btcoex", 0644, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2457 if (test_bit(WMI_SERVICE_PEER_STATS, ar->wmi.svc_map)) in ath10k_debug_register()
2458 debugfs_create_file("peer_stats", 0644, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2461 debugfs_create_file("fw_checksums", 0400, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2466 ar->debug.debugfs_phy, in ath10k_debug_register()
2467 ar, &fops_sta_tid_stats_mask); in ath10k_debug_register()
2469 if (test_bit(WMI_SERVICE_TPC_STATS_FINAL, ar->wmi.svc_map)) in ath10k_debug_register()
2471 ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2474 debugfs_create_file("warm_hw_reset", 0600, ar->debug.debugfs_phy, ar, in ath10k_debug_register()
2480 void ath10k_debug_unregister(struct ath10k *ar) in ath10k_debug_unregister() argument
2482 cancel_delayed_work_sync(&ar->debug.htt_stats_dwork); in ath10k_debug_unregister()
2488 void ath10k_dbg(struct ath10k *ar, enum ath10k_debug_mask mask, in ath10k_dbg() argument
2500 dev_printk(KERN_DEBUG, ar->dev, "%pV", &vaf); in ath10k_dbg()
2502 trace_ath10k_log_dbg(ar, mask, &vaf); in ath10k_dbg()
2508 void ath10k_dbg_dump(struct ath10k *ar, in ath10k_dbg_dump() argument
2519 ath10k_dbg(ar, mask, "%s\n", msg); in ath10k_dbg_dump()
2531 dev_printk(KERN_DEBUG, ar->dev, "%s\n", linebuf); in ath10k_dbg_dump()
2536 trace_ath10k_log_dbg_dump(ar, msg ? msg : "", prefix ? prefix : "", in ath10k_dbg_dump()