From e067b530b8ee1a88cb538bb767ae61ca153c6841 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Wed, 1 Oct 2014 08:41:32 +0300 Subject: gpu: nvgpu: Expose PMU security mode in debugfs Expose a debugfs entry pmu_security. It allows checking if PMU was booted in secure or non-secure mode. Change-Id: Iea584b696440779bee0900edccabd4e5b2997805 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/552456 --- drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index eb79fe17..f7af9035 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c @@ -4123,6 +4123,27 @@ static const struct file_operations perfmon_events_count_fops = { .release = single_release, }; +static int security_show(struct seq_file *s, void *data) +{ + struct gk20a *g = s->private; + + seq_printf(s, "%d\n", g->pmu.pmu_mode); + return 0; + +} + +static int security_open(struct inode *inode, struct file *file) +{ + return single_open(file, security_show, inode->i_private); +} + +static const struct file_operations security_fops = { + .open = security_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + int gk20a_pmu_debugfs_init(struct platform_device *dev) { struct dentry *d; @@ -4158,8 +4179,13 @@ int gk20a_pmu_debugfs_init(struct platform_device *dev) &perfmon_events_count_fops); if (!d) goto err_out; - return 0; + d = debugfs_create_file( + "pmu_security", S_IRUGO, platform->debugfs, g, + &security_fops); + if (!d) + goto err_out; + return 0; err_out: pr_err("%s: Failed to make debugfs node\n", __func__); debugfs_remove_recursive(platform->debugfs); -- cgit v1.2.2