diff options
author | Gayatri Kammela <gayatri.kammela@intel.com> | 2020-02-05 02:01:58 +0300 |
---|---|---|
committer | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2020-02-10 18:47:39 +0300 |
commit | 913f984a8347ea967ee9693dfa1e15da78e64661 (patch) | |
tree | 435496adab1a5f1efa68904ed67799006b2dd262 /drivers/platform/x86 | |
parent | a018e28f0880c1eaa72b09d2ec64831024d149a6 (diff) | |
download | linux-913f984a8347ea967ee9693dfa1e15da78e64661.tar.xz |
platform/x86: intel_pmc_core: Add an additional parameter to pmc_core_lpm_display()
Add a device pointer of type struct device as an additional parameter to
pmc_core_lpm_display(), so that the driver can re-use it to dump the
debug registers in resume for an S0ix failure.
Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: David Box <david.e.box@intel.com>
Signed-off-by: Gayatri Kammela <gayatri.kammela@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'drivers/platform/x86')
-rw-r--r-- | drivers/platform/x86/intel_pmc_core.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/drivers/platform/x86/intel_pmc_core.c b/drivers/platform/x86/intel_pmc_core.c index 97511a700d45..bddde30fd5f3 100644 --- a/drivers/platform/x86/intel_pmc_core.c +++ b/drivers/platform/x86/intel_pmc_core.c @@ -973,8 +973,9 @@ static int pmc_core_substate_res_show(struct seq_file *s, void *unused) } DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_res); -static void pmc_core_lpm_display(struct pmc_dev *pmcdev, struct seq_file *s, - u32 offset, const char *str, +static void pmc_core_lpm_display(struct pmc_dev *pmcdev, struct device *dev, + struct seq_file *s, u32 offset, + const char *str, const struct pmc_bit_map **maps) { u32 lpm_regs[ARRAY_SIZE(tgl_lpm_maps)-1]; @@ -986,11 +987,22 @@ static void pmc_core_lpm_display(struct pmc_dev *pmcdev, struct seq_file *s, } for (idx = 0; maps[idx]; idx++) { - seq_printf(s, "\nLPM_%s_%d:\t0x%x\n", str, idx, lpm_regs[idx]); + if (dev) + dev_dbg(dev, "\nLPM_%s_%d:\t0x%x\n", str, idx, + lpm_regs[idx]); + if (s) + seq_printf(s, "\nLPM_%s_%d:\t0x%x\n", str, idx, + lpm_regs[idx]); for (index = 0; maps[idx][index].name && index < len; index++) { bit_mask = maps[idx][index].bit_mask; - seq_printf(s, "%-30s %-30d\n", maps[idx][index].name, - lpm_regs[idx] & bit_mask ? 1 : 0); + if (dev) + dev_dbg(dev, "%-30s %-30d\n", + maps[idx][index].name, + lpm_regs[idx] & bit_mask ? 1 : 0); + if (s) + seq_printf(s, "%-30s %-30d\n", + maps[idx][index].name, + lpm_regs[idx] & bit_mask ? 1 : 0); } } } @@ -1001,7 +1013,7 @@ static int pmc_core_substate_sts_regs_show(struct seq_file *s, void *unused) const struct pmc_bit_map **maps = pmcdev->map->lpm_sts; u32 offset = pmcdev->map->lpm_status_offset; - pmc_core_lpm_display(pmcdev, s, offset, "STATUS", maps); + pmc_core_lpm_display(pmcdev, NULL, s, offset, "STATUS", maps); return 0; } |