|
@@ -773,6 +773,80 @@ static const struct file_operations fops_temp = {
|
|
|
.llseek = seq_lseek,
|
|
|
};
|
|
|
|
|
|
+/*---------freq------------*/
|
|
|
+static int wil_freq_debugfs_show(struct seq_file *s, void *data)
|
|
|
+{
|
|
|
+ struct wil6210_priv *wil = s->private;
|
|
|
+ struct wireless_dev *wdev = wil_to_wdev(wil);
|
|
|
+ u16 freq = wdev->chandef.chan ? wdev->chandef.chan->center_freq : 0;
|
|
|
+
|
|
|
+ seq_printf(s, "Freq = %d\n", freq);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static int wil_freq_seq_open(struct inode *inode, struct file *file)
|
|
|
+{
|
|
|
+ return single_open(file, wil_freq_debugfs_show, inode->i_private);
|
|
|
+}
|
|
|
+
|
|
|
+static const struct file_operations fops_freq = {
|
|
|
+ .open = wil_freq_seq_open,
|
|
|
+ .release = single_release,
|
|
|
+ .read = seq_read,
|
|
|
+ .llseek = seq_lseek,
|
|
|
+};
|
|
|
+
|
|
|
+/*---------link------------*/
|
|
|
+static int wil_link_debugfs_show(struct seq_file *s, void *data)
|
|
|
+{
|
|
|
+ struct wil6210_priv *wil = s->private;
|
|
|
+ struct station_info sinfo;
|
|
|
+ int i, rc;
|
|
|
+
|
|
|
+ for (i = 0; i < ARRAY_SIZE(wil->sta); i++) {
|
|
|
+ struct wil_sta_info *p = &wil->sta[i];
|
|
|
+ char *status = "unknown";
|
|
|
+ switch (p->status) {
|
|
|
+ case wil_sta_unused:
|
|
|
+ status = "unused ";
|
|
|
+ break;
|
|
|
+ case wil_sta_conn_pending:
|
|
|
+ status = "pending ";
|
|
|
+ break;
|
|
|
+ case wil_sta_connected:
|
|
|
+ status = "connected";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ seq_printf(s, "[%d] %pM %s%s\n", i, p->addr, status,
|
|
|
+ (p->data_port_open ? " data_port_open" : ""));
|
|
|
+
|
|
|
+ if (p->status == wil_sta_connected) {
|
|
|
+ rc = wil_cid_fill_sinfo(wil, i, &sinfo);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
+
|
|
|
+ seq_printf(s, " Tx_mcs = %d\n", sinfo.txrate.mcs);
|
|
|
+ seq_printf(s, " Rx_mcs = %d\n", sinfo.rxrate.mcs);
|
|
|
+ seq_printf(s, " SQ = %d\n", sinfo.signal);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static int wil_link_seq_open(struct inode *inode, struct file *file)
|
|
|
+{
|
|
|
+ return single_open(file, wil_link_debugfs_show, inode->i_private);
|
|
|
+}
|
|
|
+
|
|
|
+static const struct file_operations fops_link = {
|
|
|
+ .open = wil_link_seq_open,
|
|
|
+ .release = single_release,
|
|
|
+ .read = seq_read,
|
|
|
+ .llseek = seq_lseek,
|
|
|
+};
|
|
|
+
|
|
|
/*---------Station matrix------------*/
|
|
|
static void wil_print_rxtid(struct seq_file *s, struct wil_tid_ampdu_rx *r)
|
|
|
{
|
|
@@ -880,6 +954,8 @@ int wil6210_debugfs_init(struct wil6210_priv *wil)
|
|
|
debugfs_create_file("tx_mgmt", S_IWUSR, dbg, wil, &fops_txmgmt);
|
|
|
debugfs_create_file("wmi_send", S_IWUSR, dbg, wil, &fops_wmi);
|
|
|
debugfs_create_file("temp", S_IRUGO, dbg, wil, &fops_temp);
|
|
|
+ debugfs_create_file("freq", S_IRUGO, dbg, wil, &fops_freq);
|
|
|
+ debugfs_create_file("link", S_IRUGO, dbg, wil, &fops_link);
|
|
|
|
|
|
wil->rgf_blob.data = (void * __force)wil->csr + 0;
|
|
|
wil->rgf_blob.size = 0xa000;
|