@@ -498,32 +498,15 @@ static const struct attribute_group smmu_pmu_cpumask_group = {
};
/* Events */
-
-static ssize_t smmu_pmu_event_show(struct device *dev,
- struct device_attribute *attr, char *page)
-{
- struct perf_pmu_events_attr *pmu_attr;
-
- pmu_attr = container_of(attr, struct perf_pmu_events_attr, attr);
-
- return sysfs_emit(page, "event=0x%02llx\n", pmu_attr->id);
-}
-
-#define SMMU_EVENT_ATTR(name, config) \
- (&((struct perf_pmu_events_attr) { \
- .attr = __ATTR(name, 0444, smmu_pmu_event_show, NULL), \
- .id = config, \
- }).attr.attr)
-
static struct attribute *smmu_pmu_events[] = {
- SMMU_EVENT_ATTR(cycles, 0),
- SMMU_EVENT_ATTR(transaction, 1),
- SMMU_EVENT_ATTR(tlb_miss, 2),
- SMMU_EVENT_ATTR(config_cache_miss, 3),
- SMMU_EVENT_ATTR(trans_table_walk_access, 4),
- SMMU_EVENT_ATTR(config_struct_access, 5),
- SMMU_EVENT_ATTR(pcie_ats_trans_rq, 6),
- SMMU_EVENT_ATTR(pcie_ats_trans_passed, 7),
+ PMU_EVENT_ATTR_ID(cycles, 0),
+ PMU_EVENT_ATTR_ID(transaction, 1),
+ PMU_EVENT_ATTR_ID(tlb_miss, 2),
+ PMU_EVENT_ATTR_ID(config_cache_miss, 3),
+ PMU_EVENT_ATTR_ID(trans_table_walk_access, 4),
+ PMU_EVENT_ATTR_ID(config_struct_access, 5),
+ PMU_EVENT_ATTR_ID(pcie_ats_trans_rq, 6),
+ PMU_EVENT_ATTR_ID(pcie_ats_trans_passed, 7),
NULL
};
Remove SMMU_EVENT_ATTR and smmu_event_sysfs_show(), as there is a general function for this. Cc: Will Deacon <will@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Qi Liu <liuqi115@huawei.com> --- drivers/perf/arm_smmuv3_pmu.c | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-)