summaryrefslogtreecommitdiffstats
path: root/include/linux/perf/arm_pmu.h
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2016-09-09 14:08:26 +0100
committerWill Deacon <will.deacon@arm.com>2016-09-09 14:51:51 +0100
commit86cdd72af936860503f392825410d1b60a3e474e (patch)
treeac544c7b51bc28be08696c696a718cec63a0894f /include/linux/perf/arm_pmu.h
parentd3ea42aad584493b99c109e59ced77db145a68e1 (diff)
downloadtalos-obmc-linux-86cdd72af936860503f392825410d1b60a3e474e.tar.gz
talos-obmc-linux-86cdd72af936860503f392825410d1b60a3e474e.zip
drivers/perf: arm_pmu: add common attr group fields
In preparation for adding common attribute groups, add an array of attribute group pointers to arm_pmu, which will be used if the backend hasn't already set pmu::attr_groups. Subsequent patches will move backends over to using these, before adding common fields. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'include/linux/perf/arm_pmu.h')
-rw-r--r--include/linux/perf/arm_pmu.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/perf/arm_pmu.h b/include/linux/perf/arm_pmu.h
index e18843809eec..268bc63f1358 100644
--- a/include/linux/perf/arm_pmu.h
+++ b/include/linux/perf/arm_pmu.h
@@ -14,7 +14,7 @@
#include <linux/interrupt.h>
#include <linux/perf_event.h>
-
+#include <linux/sysfs.h>
#include <asm/cputype.h>
/*
@@ -77,6 +77,12 @@ struct pmu_hw_events {
struct arm_pmu *percpu_pmu;
};
+enum armpmu_attr_groups {
+ ARMPMU_ATTR_GROUP_EVENTS,
+ ARMPMU_ATTR_GROUP_FORMATS,
+ ARMPMU_NR_ATTR_GROUPS
+};
+
struct arm_pmu {
struct pmu pmu;
cpumask_t active_irqs;
@@ -111,6 +117,8 @@ struct arm_pmu {
struct pmu_hw_events __percpu *hw_events;
struct list_head entry;
struct notifier_block cpu_pm_nb;
+ /* the attr_groups array must be NULL-terminated */
+ const struct attribute_group *attr_groups[ARMPMU_NR_ATTR_GROUPS + 1];
};
#define to_arm_pmu(p) (container_of(p, struct arm_pmu, pmu))
OpenPOWER on IntegriCloud