aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/debugfs.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/debugfs.c50
1 files changed, 45 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
index 26c53b37007e..e943ee125d23 100644
--- a/drivers/net/wireless/iwlwifi/mvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
@@ -584,15 +584,21 @@ static ssize_t iwl_dbgfs_bt_notif_read(struct file *file, char __user *user_buf,
584 BT_MBOX_PRINT(3, UPDATE_REQUEST, true); 584 BT_MBOX_PRINT(3, UPDATE_REQUEST, true);
585 585
586 pos += scnprintf(buf+pos, bufsz-pos, "bt_status = %d\n", 586 pos += scnprintf(buf+pos, bufsz-pos, "bt_status = %d\n",
587 notif->bt_status); 587 notif->bt_status);
588 pos += scnprintf(buf+pos, bufsz-pos, "bt_open_conn = %d\n", 588 pos += scnprintf(buf+pos, bufsz-pos, "bt_open_conn = %d\n",
589 notif->bt_open_conn); 589 notif->bt_open_conn);
590 pos += scnprintf(buf+pos, bufsz-pos, "bt_traffic_load = %d\n", 590 pos += scnprintf(buf+pos, bufsz-pos, "bt_traffic_load = %d\n",
591 notif->bt_traffic_load); 591 notif->bt_traffic_load);
592 pos += scnprintf(buf+pos, bufsz-pos, "bt_agg_traffic_load = %d\n", 592 pos += scnprintf(buf+pos, bufsz-pos, "bt_agg_traffic_load = %d\n",
593 notif->bt_agg_traffic_load); 593 notif->bt_agg_traffic_load);
594 pos += scnprintf(buf+pos, bufsz-pos, "bt_ci_compliance = %d\n", 594 pos += scnprintf(buf+pos, bufsz-pos, "bt_ci_compliance = %d\n",
595 notif->bt_ci_compliance); 595 notif->bt_ci_compliance);
596 pos += scnprintf(buf+pos, bufsz-pos, "primary_ch_lut = %d\n",
597 le32_to_cpu(notif->primary_ch_lut));
598 pos += scnprintf(buf+pos, bufsz-pos, "secondary_ch_lut = %d\n",
599 le32_to_cpu(notif->secondary_ch_lut));
600 pos += scnprintf(buf+pos, bufsz-pos, "bt_activity_grading = %d\n",
601 le32_to_cpu(notif->bt_activity_grading));
596 602
597 mutex_unlock(&mvm->mutex); 603 mutex_unlock(&mvm->mutex);
598 604
@@ -603,6 +609,38 @@ static ssize_t iwl_dbgfs_bt_notif_read(struct file *file, char __user *user_buf,
603} 609}
604#undef BT_MBOX_PRINT 610#undef BT_MBOX_PRINT
605 611
612static ssize_t iwl_dbgfs_bt_cmd_read(struct file *file, char __user *user_buf,
613 size_t count, loff_t *ppos)
614{
615 struct iwl_mvm *mvm = file->private_data;
616 struct iwl_bt_coex_ci_cmd *cmd = &mvm->last_bt_ci_cmd;
617 char buf[256];
618 int bufsz = sizeof(buf);
619 int pos = 0;
620
621 mutex_lock(&mvm->mutex);
622
623 pos += scnprintf(buf+pos, bufsz-pos, "Channel inhibition CMD\n");
624 pos += scnprintf(buf+pos, bufsz-pos,
625 "\tPrimary Channel Bitmap 0x%016llx Fat: %d\n",
626 le64_to_cpu(cmd->bt_primary_ci),
627 !!cmd->co_run_bw_primary);
628 pos += scnprintf(buf+pos, bufsz-pos,
629 "\tSecondary Channel Bitmap 0x%016llx Fat: %d\n",
630 le64_to_cpu(cmd->bt_secondary_ci),
631 !!cmd->co_run_bw_secondary);
632
633 pos += scnprintf(buf+pos, bufsz-pos, "BT Configuration CMD\n");
634 pos += scnprintf(buf+pos, bufsz-pos, "\tACK Kill Mask 0x%08x\n",
635 iwl_bt_ack_kill_msk[mvm->bt_kill_msk]);
636 pos += scnprintf(buf+pos, bufsz-pos, "\tCTS Kill Mask 0x%08x\n",
637 iwl_bt_cts_kill_msk[mvm->bt_kill_msk]);
638
639 mutex_unlock(&mvm->mutex);
640
641 return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
642}
643
606#define PRINT_STATS_LE32(_str, _val) \ 644#define PRINT_STATS_LE32(_str, _val) \
607 pos += scnprintf(buf + pos, bufsz - pos, \ 645 pos += scnprintf(buf + pos, bufsz - pos, \
608 fmt_table, _str, \ 646 fmt_table, _str, \
@@ -1120,6 +1158,7 @@ MVM_DEBUGFS_WRITE_FILE_OPS(sta_drain);
1120MVM_DEBUGFS_READ_WRITE_FILE_OPS(sram); 1158MVM_DEBUGFS_READ_WRITE_FILE_OPS(sram);
1121MVM_DEBUGFS_READ_FILE_OPS(stations); 1159MVM_DEBUGFS_READ_FILE_OPS(stations);
1122MVM_DEBUGFS_READ_FILE_OPS(bt_notif); 1160MVM_DEBUGFS_READ_FILE_OPS(bt_notif);
1161MVM_DEBUGFS_READ_FILE_OPS(bt_cmd);
1123MVM_DEBUGFS_WRITE_FILE_OPS(power_down_allow); 1162MVM_DEBUGFS_WRITE_FILE_OPS(power_down_allow);
1124MVM_DEBUGFS_WRITE_FILE_OPS(power_down_d3_allow); 1163MVM_DEBUGFS_WRITE_FILE_OPS(power_down_d3_allow);
1125MVM_DEBUGFS_READ_FILE_OPS(fw_rx_stats); 1164MVM_DEBUGFS_READ_FILE_OPS(fw_rx_stats);
@@ -1146,6 +1185,7 @@ int iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir)
1146 MVM_DEBUGFS_ADD_FILE(sram, mvm->debugfs_dir, S_IWUSR | S_IRUSR); 1185 MVM_DEBUGFS_ADD_FILE(sram, mvm->debugfs_dir, S_IWUSR | S_IRUSR);
1147 MVM_DEBUGFS_ADD_FILE(stations, dbgfs_dir, S_IRUSR); 1186 MVM_DEBUGFS_ADD_FILE(stations, dbgfs_dir, S_IRUSR);
1148 MVM_DEBUGFS_ADD_FILE(bt_notif, dbgfs_dir, S_IRUSR); 1187 MVM_DEBUGFS_ADD_FILE(bt_notif, dbgfs_dir, S_IRUSR);
1188 MVM_DEBUGFS_ADD_FILE(bt_cmd, dbgfs_dir, S_IRUSR);
1149 MVM_DEBUGFS_ADD_FILE(power_down_allow, mvm->debugfs_dir, S_IWUSR); 1189 MVM_DEBUGFS_ADD_FILE(power_down_allow, mvm->debugfs_dir, S_IWUSR);
1150 MVM_DEBUGFS_ADD_FILE(power_down_d3_allow, mvm->debugfs_dir, S_IWUSR); 1190 MVM_DEBUGFS_ADD_FILE(power_down_d3_allow, mvm->debugfs_dir, S_IWUSR);
1151 MVM_DEBUGFS_ADD_FILE(fw_rx_stats, mvm->debugfs_dir, S_IRUSR); 1191 MVM_DEBUGFS_ADD_FILE(fw_rx_stats, mvm->debugfs_dir, S_IRUSR);