提交 5ade1e4d 编写于 作者: W Wey-Yi Guy 提交者: John W. Linville

iwlwifi: by default, dump entire sram data portion

For "sram" debugfs file, if user did not specify the offset and length,
dump the entire data portion of sram by default.
Data portion is 0x800000 - 0x80ffff, but the actual data size is known
to the driver from the ucode file.
Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 ac592574
...@@ -235,13 +235,21 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file, ...@@ -235,13 +235,21 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file,
struct iwl_priv *priv = (struct iwl_priv *)file->private_data; struct iwl_priv *priv = (struct iwl_priv *)file->private_data;
size_t bufsz; size_t bufsz;
bufsz = 30 + priv->dbgfs->sram_len * sizeof(char) * 12; /* default is to dump the entire data segment */
if (!priv->dbgfs->sram_offset && !priv->dbgfs->sram_len) {
priv->dbgfs->sram_offset = 0x800000;
if (priv->ucode_type == UCODE_INIT)
priv->dbgfs->sram_len = priv->ucode_init_data.len;
else
priv->dbgfs->sram_len = priv->ucode_data.len;
}
bufsz = 30 + priv->dbgfs->sram_len * sizeof(char) * 10;
buf = kmalloc(bufsz, GFP_KERNEL); buf = kmalloc(bufsz, GFP_KERNEL);
if (!buf) if (!buf)
return -ENOMEM; return -ENOMEM;
pos += scnprintf(buf + pos, bufsz - pos, "sram_len: %d\n", pos += scnprintf(buf + pos, bufsz - pos, "sram_len: 0x%x\n",
priv->dbgfs->sram_len); priv->dbgfs->sram_len);
pos += scnprintf(buf + pos, bufsz - pos, "sram_offset: %d\n", pos += scnprintf(buf + pos, bufsz - pos, "sram_offset: 0x%x\n",
priv->dbgfs->sram_offset); priv->dbgfs->sram_offset);
for (i = priv->dbgfs->sram_len; i > 0; i -= 4) { for (i = priv->dbgfs->sram_len; i > 0; i -= 4) {
val = iwl_read_targ_mem(priv, priv->dbgfs->sram_offset + \ val = iwl_read_targ_mem(priv, priv->dbgfs->sram_offset + \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册