summaryrefslogtreecommitdiff
path: root/debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'debugfs.c')
-rw-r--r--debugfs.c68
1 files changed, 53 insertions, 15 deletions
diff --git a/debugfs.c b/debugfs.c
index aa90645..1ded461 100644
--- a/debugfs.c
+++ b/debugfs.c
@@ -99,6 +99,11 @@ static ssize_t mwl_debugfs_info_read(struct file *file, char __user *ubuf,
len += scnprintf(p + len, size - len, "firmware version: 0x%08x\n",
priv->hw_data.fw_release_num);
len += scnprintf(p + len, size - len,
+ "power table loaded from dts: %s\n",
+ priv->forbidden_setting ? "no" : "yes");
+ len += scnprintf(p + len, size - len, "firmware region code: 0x%x\n",
+ priv->fw_region_code);
+ len += scnprintf(p + len, size - len,
"mac address: %pM\n", priv->hw_data.mac_addr);
len += scnprintf(p + len, size - len,
"2g: %s\n", priv->disable_2g ? "disable" : "enable");
@@ -122,8 +127,6 @@ static ssize_t mwl_debugfs_info_read(struct file *file, char __user *ubuf,
"macid used: %08x\n", priv->macids_used);
len += scnprintf(p + len, size - len,
"qe trigger number: %d\n", priv->qe_trigger_num);
- len += scnprintf(p + len, size - len,
- "mfg mode: %s\n", priv->mfg_mode ? "true" : "false");
len += scnprintf(p + len, size - len, "\n");
ret = simple_read_from_buffer(ubuf, count, ppos, p, len);
@@ -165,11 +168,6 @@ static ssize_t mwl_debugfs_vif_read(struct file *file, char __user *ubuf,
len += scnprintf(p + len, size - len,
"mac address: %pM\n", mwl_vif->bssid);
break;
- case NL80211_IFTYPE_MESH_POINT:
- len += scnprintf(p + len, size - len, "type: mesh\n");
- len += scnprintf(p + len, size - len,
- "mac address: %pM\n", mwl_vif->bssid);
- break;
case NL80211_IFTYPE_STATION:
len += scnprintf(p + len, size - len, "type: sta\n");
len += scnprintf(p + len, size - len,
@@ -262,7 +260,8 @@ static ssize_t mwl_debugfs_sta_read(struct file *file, char __user *ubuf,
}
len += scnprintf(p + len, size - len, "rx_bw: %d, rx_nss: %d\n",
sta->bandwidth, sta->rx_nss);
- len += scnprintf(p + len, size - len, "tdls: %d, tdls_init: %d\n",
+ len += scnprintf(p + len, size - len,
+ "tdls: %d, tdls_init: %d\n",
sta->tdls, sta->tdls_initiator);
len += scnprintf(p + len, size - len, "wme: %d, mfp: %d\n",
sta->wme, sta->mfp);
@@ -334,6 +333,49 @@ static ssize_t mwl_debugfs_ampdu_read(struct file *file, char __user *ubuf,
return ret;
}
+static ssize_t mwl_debugfs_device_pwrtbl_read(struct file *file,
+ char __user *ubuf,
+ size_t count, loff_t *ppos)
+{
+ struct mwl_priv *priv = (struct mwl_priv *)file->private_data;
+ unsigned long page = get_zeroed_page(GFP_KERNEL);
+ char *p = (char *)page;
+ int len = 0, size = PAGE_SIZE;
+ int i, j;
+ ssize_t ret;
+
+ if (!p)
+ return -ENOMEM;
+
+ len += scnprintf(p + len, size - len, "\n");
+ len += scnprintf(p + len, size - len,
+ "power table loaded from dts: %s\n",
+ priv->forbidden_setting ? "no" : "yes");
+ len += scnprintf(p + len, size - len, "firmware region code: 0x%x\n",
+ priv->fw_region_code);
+ len += scnprintf(p + len, size - len, "number of channel: %d\n",
+ priv->number_of_channels);
+ for (i = 0; i < priv->number_of_channels; i++) {
+ len += scnprintf(p + len, size - len, "%3d ",
+ priv->device_pwr_tbl[i].channel);
+ for (j = 0; j < SYSADPT_TX_POWER_LEVEL_TOTAL; j++)
+ len += scnprintf(p + len, size - len, "%3d ",
+ priv->device_pwr_tbl[i].tx_pwr[j]);
+ len += scnprintf(p + len, size - len, "%3d ",
+ priv->device_pwr_tbl[i].dfs_capable);
+ len += scnprintf(p + len, size - len, "%3d ",
+ priv->device_pwr_tbl[i].ax_ant);
+ len += scnprintf(p + len, size - len, "%3d\n",
+ priv->device_pwr_tbl[i].cdd);
+ }
+ len += scnprintf(p + len, size - len, "\n");
+
+ ret = simple_read_from_buffer(ubuf, count, ppos, p, len);
+ free_page(page);
+
+ return ret;
+}
+
static ssize_t mwl_debugfs_tx_desc_read(struct file *file,
char __user *ubuf,
size_t count, loff_t *ppos)
@@ -389,9 +431,7 @@ static ssize_t mwl_debugfs_tx_desc_write(struct file *file,
goto err;
}
- ret = sscanf(buf, "%d", &tx_desc_num);
-
- if (ret != 1) {
+ if (kstrtoint(buf, 0, &tx_desc_num)) {
ret = -EINVAL;
goto err;
}
@@ -438,11 +478,9 @@ static ssize_t mwl_debugfs_dfs_channel_read(struct file *file,
channel->hw_value,
channel->center_freq,
channel->flags, channel->dfs_state);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
len += scnprintf(p + len, size - len,
"cac timer: %d ms\n",
channel->dfs_cac_ms);
-#endif
}
}
len += scnprintf(p + len, size - len, "\n");
@@ -493,10 +531,8 @@ static ssize_t mwl_debugfs_dfs_channel_write(struct file *file,
channel = &sband->channels[i];
if (channel->flags & IEEE80211_CHAN_RADAR) {
channel->dfs_state = dfs_state;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
if (cac_time != -1)
channel->dfs_cac_ms = cac_time * 1000;
-#endif
}
}
ret = count;
@@ -758,6 +794,7 @@ MWLWIFI_DEBUGFS_FILE_READ_OPS(info);
MWLWIFI_DEBUGFS_FILE_READ_OPS(vif);
MWLWIFI_DEBUGFS_FILE_READ_OPS(sta);
MWLWIFI_DEBUGFS_FILE_READ_OPS(ampdu);
+MWLWIFI_DEBUGFS_FILE_READ_OPS(device_pwrtbl);
MWLWIFI_DEBUGFS_FILE_OPS(tx_desc);
MWLWIFI_DEBUGFS_FILE_OPS(dfs_channel);
MWLWIFI_DEBUGFS_FILE_OPS(dfs_radar);
@@ -779,6 +816,7 @@ void mwl_debugfs_init(struct ieee80211_hw *hw)
MWLWIFI_DEBUGFS_ADD_FILE(vif);
MWLWIFI_DEBUGFS_ADD_FILE(sta);
MWLWIFI_DEBUGFS_ADD_FILE(ampdu);
+ MWLWIFI_DEBUGFS_ADD_FILE(device_pwrtbl);
MWLWIFI_DEBUGFS_ADD_FILE(tx_desc);
MWLWIFI_DEBUGFS_ADD_FILE(dfs_channel);
MWLWIFI_DEBUGFS_ADD_FILE(dfs_radar);