diff options
| author | Michael Ellerman <mpe@ellerman.id.au> | 2017-07-31 20:20:29 +1000 | 
|---|---|---|
| committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-07-31 20:20:29 +1000 | 
| commit | bb272221e9db79f13d454e1f3fb6b05013be985e (patch) | |
| tree | 36f4acc50e3fabac71fadd34c720c0a6011db470 /drivers/platform/x86/intel_telemetry_debugfs.c | |
| parent | 253fd51e2f533552ae35a0c661705da6c4842c1b (diff) | |
| parent | 5771a8c08880cdca3bfb4a3fc6d309d6bba20877 (diff) | |
Merge tag 'v4.13-rc1' into fixes
The fixes branch is based off a random pre-rc1 commit, because we had
some fixes that needed to go in before rc1 was released.
However we now need to fix some code that went in after that point, but
before rc1, so merge rc1 to get that code into fixes so we can fix it!
Diffstat (limited to 'drivers/platform/x86/intel_telemetry_debugfs.c')
| -rw-r--r-- | drivers/platform/x86/intel_telemetry_debugfs.c | 33 | 
1 files changed, 29 insertions, 4 deletions
diff --git a/drivers/platform/x86/intel_telemetry_debugfs.c b/drivers/platform/x86/intel_telemetry_debugfs.c index 4cc2f4ea0a25..cd21df982abd 100644 --- a/drivers/platform/x86/intel_telemetry_debugfs.c +++ b/drivers/platform/x86/intel_telemetry_debugfs.c @@ -710,6 +710,24 @@ static const struct file_operations telem_socstate_ops = {  	.release	= single_release,  }; +static int telem_s0ix_res_get(void *data, u64 *val) +{ +	u64 s0ix_total_res; +	int ret; + +	ret = intel_pmc_s0ix_counter_read(&s0ix_total_res); +	if (ret) { +		pr_err("Failed to read S0ix residency"); +		return ret; +	} + +	*val = s0ix_total_res; + +	return 0; +} + +DEFINE_DEBUGFS_ATTRIBUTE(telem_s0ix_fops, telem_s0ix_res_get, NULL, "%llu\n"); +  static int telem_pss_trc_verb_show(struct seq_file *s, void *unused)  {  	u32 verbosity; @@ -938,7 +956,7 @@ static struct notifier_block pm_notifier = {  static int __init telemetry_debugfs_init(void)  {  	const struct x86_cpu_id *id; -	int err = -ENOMEM; +	int err;  	struct dentry *f;  	/* Only APL supported for now */ @@ -958,11 +976,10 @@ static int __init telemetry_debugfs_init(void)  	register_pm_notifier(&pm_notifier); +	err = -ENOMEM;  	debugfs_conf->telemetry_dbg_dir = debugfs_create_dir("telemetry", NULL); -	if (!debugfs_conf->telemetry_dbg_dir) { -		err = -ENOMEM; +	if (!debugfs_conf->telemetry_dbg_dir)  		goto out_pm; -	}  	f = debugfs_create_file("pss_info", S_IFREG | S_IRUGO,  				debugfs_conf->telemetry_dbg_dir, NULL, @@ -988,6 +1005,14 @@ static int __init telemetry_debugfs_init(void)  		goto out;  	} +	f = debugfs_create_file("s0ix_residency_usec", S_IFREG | S_IRUGO, +				debugfs_conf->telemetry_dbg_dir, +				NULL, &telem_s0ix_fops); +	if (!f) { +		pr_err("s0ix_residency_usec debugfs register failed\n"); +		goto out; +	} +  	f = debugfs_create_file("pss_trace_verbosity", S_IFREG | S_IRUGO,  				debugfs_conf->telemetry_dbg_dir, NULL,  				&telem_pss_trc_verb_ops);  | 
