diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-06-30 00:43:28 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-10-02 12:00:43 -0400 |
commit | 2de13caebcb7ee78a4ceadb22617ec4bc1b3c776 (patch) | |
tree | 810193cd86707cfa604c6a3a2989d773d5a688fc /drivers/net/wireless/iwlwifi/mvm | |
parent | 39149911ba28d17b4657a9a65b3dc8ba54145ca0 (diff) |
iwlwifi: mvm: BT Coex - adapt debugfs to new API
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/bt-coex.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/debugfs.c | 50 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mvm.h | 8 |
3 files changed, 55 insertions, 14 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c index 908a8a9ca564..a17e2cc2bedb 100644 --- a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c +++ b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c | |||
@@ -112,20 +112,13 @@ int iwl_send_bt_prio_tbl(struct iwl_mvm *mvm) | |||
112 | &iwl_bt_prio_tbl); | 112 | &iwl_bt_prio_tbl); |
113 | } | 113 | } |
114 | 114 | ||
115 | enum iwl_bt_kill_msk { | 115 | const u32 iwl_bt_ack_kill_msk[BT_KILL_MSK_MAX] = { |
116 | BT_KILL_MSK_DEFAULT, | ||
117 | BT_KILL_MSK_SCO_HID_A2DP, | ||
118 | BT_KILL_MSK_REDUCED_TXPOW, | ||
119 | BT_KILL_MSK_MAX, | ||
120 | }; | ||
121 | |||
122 | static const u32 iwl_bt_ack_kill_msk[BT_KILL_MSK_MAX] = { | ||
123 | [BT_KILL_MSK_DEFAULT] = 0xffff0000, | 116 | [BT_KILL_MSK_DEFAULT] = 0xffff0000, |
124 | [BT_KILL_MSK_SCO_HID_A2DP] = 0xffffffff, | 117 | [BT_KILL_MSK_SCO_HID_A2DP] = 0xffffffff, |
125 | [BT_KILL_MSK_REDUCED_TXPOW] = 0, | 118 | [BT_KILL_MSK_REDUCED_TXPOW] = 0, |
126 | }; | 119 | }; |
127 | 120 | ||
128 | static const u32 iwl_bt_cts_kill_msk[BT_KILL_MSK_MAX] = { | 121 | const u32 iwl_bt_cts_kill_msk[BT_KILL_MSK_MAX] = { |
129 | [BT_KILL_MSK_DEFAULT] = 0xffff0000, | 122 | [BT_KILL_MSK_DEFAULT] = 0xffff0000, |
130 | [BT_KILL_MSK_SCO_HID_A2DP] = 0xffffffff, | 123 | [BT_KILL_MSK_SCO_HID_A2DP] = 0xffffffff, |
131 | [BT_KILL_MSK_REDUCED_TXPOW] = 0, | 124 | [BT_KILL_MSK_REDUCED_TXPOW] = 0, |
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); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index 2d65fe2474e9..33dbc7cefeba 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h | |||
@@ -791,6 +791,14 @@ int iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm, | |||
791 | void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | 791 | void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, |
792 | enum ieee80211_rssi_event rssi_event); | 792 | enum ieee80211_rssi_event rssi_event); |
793 | void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm, struct ieee80211_vif *vif); | 793 | void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm, struct ieee80211_vif *vif); |
794 | enum iwl_bt_kill_msk { | ||
795 | BT_KILL_MSK_DEFAULT, | ||
796 | BT_KILL_MSK_SCO_HID_A2DP, | ||
797 | BT_KILL_MSK_REDUCED_TXPOW, | ||
798 | BT_KILL_MSK_MAX, | ||
799 | }; | ||
800 | extern const u32 iwl_bt_ack_kill_msk[BT_KILL_MSK_MAX]; | ||
801 | extern const u32 iwl_bt_cts_kill_msk[BT_KILL_MSK_MAX]; | ||
794 | 802 | ||
795 | /* beacon filtering */ | 803 | /* beacon filtering */ |
796 | #ifdef CONFIG_IWLWIFI_DEBUGFS | 804 | #ifdef CONFIG_IWLWIFI_DEBUGFS |