OSDN Git Service

iwlwifi: mvm: add dbgfs entry for fw info
authorLiad Kaufman <liad.kaufman@intel.com>
Wed, 16 Aug 2017 11:15:08 +0000 (14:15 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 6 Oct 2017 11:57:20 +0000 (14:57 +0300)
Add a dbgfs entry for an easy way during runtime to
check what FW file was loaded, and get some general
FW-related data.

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c

index e97904c..2ff594f 100644 (file)
@@ -660,6 +660,36 @@ out:
        return ret ?: count;
 }
 
+static ssize_t iwl_dbgfs_fw_ver_read(struct file *file, char __user *user_buf,
+                                    size_t count, loff_t *ppos)
+{
+       struct iwl_mvm *mvm = file->private_data;
+       char *buff, *pos, *endpos;
+       static const size_t bufsz = 1024;
+       int ret;
+
+       buff = kmalloc(bufsz, GFP_KERNEL);
+       if (!buff)
+               return -ENOMEM;
+
+       pos = buff;
+       endpos = pos + bufsz;
+
+       pos += scnprintf(pos, endpos - pos, "FW prefix: %s\n",
+                        mvm->trans->cfg->fw_name_pre);
+       pos += scnprintf(pos, endpos - pos, "FW: %s\n",
+                        mvm->fwrt.fw->human_readable);
+       pos += scnprintf(pos, endpos - pos, "Device: %s\n",
+                        mvm->fwrt.trans->cfg->name);
+       pos += scnprintf(pos, endpos - pos, "Bus: %s\n",
+                        mvm->fwrt.dev->bus->name);
+
+       ret = simple_read_from_buffer(user_buf, count, ppos, buff, pos - buff);
+       kfree(buff);
+
+       return ret;
+}
+
 #define PRINT_STATS_LE32(_struct, _memb)                               \
                         pos += scnprintf(buf + pos, bufsz - pos,       \
                                          fmt_table, #_memb,            \
@@ -1662,6 +1692,7 @@ MVM_DEBUGFS_READ_FILE_OPS(bt_cmd);
 MVM_DEBUGFS_READ_WRITE_FILE_OPS(disable_power_off, 64);
 MVM_DEBUGFS_READ_FILE_OPS(fw_rx_stats);
 MVM_DEBUGFS_READ_FILE_OPS(drv_rx_stats);
+MVM_DEBUGFS_READ_FILE_OPS(fw_ver);
 MVM_DEBUGFS_WRITE_FILE_OPS(fw_restart, 10);
 MVM_DEBUGFS_WRITE_FILE_OPS(fw_nmi, 10);
 MVM_DEBUGFS_WRITE_FILE_OPS(bt_tx_prio, 10);
@@ -1843,6 +1874,7 @@ int iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir)
        MVM_DEBUGFS_ADD_FILE(bt_cmd, dbgfs_dir, S_IRUSR);
        MVM_DEBUGFS_ADD_FILE(disable_power_off, mvm->debugfs_dir,
                             S_IRUSR | S_IWUSR);
+       MVM_DEBUGFS_ADD_FILE(fw_ver, mvm->debugfs_dir, S_IRUSR);
        MVM_DEBUGFS_ADD_FILE(fw_rx_stats, mvm->debugfs_dir, S_IRUSR);
        MVM_DEBUGFS_ADD_FILE(drv_rx_stats, mvm->debugfs_dir, S_IRUSR);
        MVM_DEBUGFS_ADD_FILE(fw_restart, mvm->debugfs_dir, S_IWUSR);