| From 40119a31096a035630085d80ee3c14640470bb73 Mon Sep 17 00:00:00 2001 |
| From: Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com> |
| Date: Sat, 6 Oct 2018 12:21:13 +0530 |
| Subject: platform/x86: intel_telemetry: report debugfs failure |
| |
| [ Upstream commit 8d98b1ef368feeb7720b8b9b6f3bd93f2ad892bc ] |
| |
| On some Goldmont based systems such as ASRock J3455M the BIOS may not |
| enable the IPC1 device that provides access to the PMC and PUNIT. In |
| such scenarios, the IOSS and PSS resources from the platform device can |
| not be obtained and result in a invalid telemetry_plt_config which is an |
| internal data structure that holds platform config and is maintained by |
| the telemetry platform driver. |
| |
| This is also applicable to the platforms where the BIOS supports IPC1 |
| device under debug configurations but IPC1 is disabled by user or the |
| policy. |
| |
| This change allows user to know the reason for not seeing entries under |
| /sys/kernel/debug/telemetry/* when there is no apparent failure at boot. |
| |
| Cc: Matt Turner <matt.turner@intel.com> |
| Cc: Len Brown <len.brown@intel.com> |
| Cc: Souvik Kumar Chakravarty <souvik.k.chakravarty@intel.com> |
| Cc: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@intel.com> |
| |
| Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=198779 |
| Acked-by: Matt Turner <matt.turner@intel.com> |
| Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com> |
| Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/platform/x86/intel_telemetry_debugfs.c | 8 ++++++-- |
| 1 file changed, 6 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/platform/x86/intel_telemetry_debugfs.c b/drivers/platform/x86/intel_telemetry_debugfs.c |
| index ffd0474b0531..1423fa8710fd 100644 |
| --- a/drivers/platform/x86/intel_telemetry_debugfs.c |
| +++ b/drivers/platform/x86/intel_telemetry_debugfs.c |
| @@ -951,12 +951,16 @@ static int __init telemetry_debugfs_init(void) |
| debugfs_conf = (struct telemetry_debugfs_conf *)id->driver_data; |
| |
| err = telemetry_pltconfig_valid(); |
| - if (err < 0) |
| + if (err < 0) { |
| + pr_info("Invalid pltconfig, ensure IPC1 device is enabled in BIOS\n"); |
| return -ENODEV; |
| + } |
| |
| err = telemetry_debugfs_check_evts(); |
| - if (err < 0) |
| + if (err < 0) { |
| + pr_info("telemetry_debugfs_check_evts failed\n"); |
| return -EINVAL; |
| + } |
| |
| register_pm_notifier(&pm_notifier); |
| |
| -- |
| 2.17.1 |
| |