iwlwifi: by default, dump entire sram data portion
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Fri, 20 Nov 2009 20:05:04 +0000 (12:05 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 23 Nov 2009 22:05:35 +0000 (17:05 -0500)
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: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-debugfs.c

index 016ff40..5adf0b6 100644 (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;
        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);
        if (!buf)
                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);
-       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);
        for (i = priv->dbgfs->sram_len; i > 0; i -= 4) {
                val = iwl_read_targ_mem(priv, priv->dbgfs->sram_offset + \