aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com>2018-10-06 02:51:13 -0400
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>2018-10-19 12:23:34 -0400
commit8d98b1ef368feeb7720b8b9b6f3bd93f2ad892bc (patch)
tree1ce31cdc108f55df7839d382bbda8785f3bbb7b5
parent504f7e82d0a43b4fbf5ab34270aa80335ccb2b0b (diff)
platform/x86: intel_telemetry: report debugfs failure
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>
-rw-r--r--drivers/platform/x86/intel_telemetry_debugfs.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/platform/x86/intel_telemetry_debugfs.c b/drivers/platform/x86/intel_telemetry_debugfs.c
index badd1682f9c1..c279490f9488 100644
--- a/drivers/platform/x86/intel_telemetry_debugfs.c
+++ b/drivers/platform/x86/intel_telemetry_debugfs.c
@@ -943,12 +943,16 @@ static int __init telemetry_debugfs_init(void)
943 debugfs_conf = (struct telemetry_debugfs_conf *)id->driver_data; 943 debugfs_conf = (struct telemetry_debugfs_conf *)id->driver_data;
944 944
945 err = telemetry_pltconfig_valid(); 945 err = telemetry_pltconfig_valid();
946 if (err < 0) 946 if (err < 0) {
947 pr_info("Invalid pltconfig, ensure IPC1 device is enabled in BIOS\n");
947 return -ENODEV; 948 return -ENODEV;
949 }
948 950
949 err = telemetry_debugfs_check_evts(); 951 err = telemetry_debugfs_check_evts();
950 if (err < 0) 952 if (err < 0) {
953 pr_info("telemetry_debugfs_check_evts failed\n");
951 return -EINVAL; 954 return -EINVAL;
955 }
952 956
953 register_pm_notifier(&pm_notifier); 957 register_pm_notifier(&pm_notifier);
954 958