diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/debugfs.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/debugfs.c | 50 |
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 | ||
612 | static 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); | |||
1120 | MVM_DEBUGFS_READ_WRITE_FILE_OPS(sram); | 1158 | MVM_DEBUGFS_READ_WRITE_FILE_OPS(sram); |
1121 | MVM_DEBUGFS_READ_FILE_OPS(stations); | 1159 | MVM_DEBUGFS_READ_FILE_OPS(stations); |
1122 | MVM_DEBUGFS_READ_FILE_OPS(bt_notif); | 1160 | MVM_DEBUGFS_READ_FILE_OPS(bt_notif); |
1161 | MVM_DEBUGFS_READ_FILE_OPS(bt_cmd); | ||
1123 | MVM_DEBUGFS_WRITE_FILE_OPS(power_down_allow); | 1162 | MVM_DEBUGFS_WRITE_FILE_OPS(power_down_allow); |
1124 | MVM_DEBUGFS_WRITE_FILE_OPS(power_down_d3_allow); | 1163 | MVM_DEBUGFS_WRITE_FILE_OPS(power_down_d3_allow); |
1125 | MVM_DEBUGFS_READ_FILE_OPS(fw_rx_stats); | 1164 | MVM_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); |