@@ -116,6 +116,9 @@ static unsigned long arm_cspmu_cpuhp_state;
116
116
117
117
static DEFINE_MUTEX (arm_cspmu_lock );
118
118
119
+ static void arm_cspmu_set_ev_filter (struct arm_cspmu * cspmu ,
120
+ struct hw_perf_event * hwc , u32 filter );
121
+
119
122
static struct acpi_apmt_node * arm_cspmu_apmt_node (struct device * dev )
120
123
{
121
124
return * (struct acpi_apmt_node * * )dev_get_platdata (dev );
@@ -454,6 +457,7 @@ static int arm_cspmu_init_impl_ops(struct arm_cspmu *cspmu)
454
457
CHECK_DEFAULT_IMPL_OPS (impl_ops , event_type );
455
458
CHECK_DEFAULT_IMPL_OPS (impl_ops , event_filter );
456
459
CHECK_DEFAULT_IMPL_OPS (impl_ops , event_attr_is_visible );
460
+ CHECK_DEFAULT_IMPL_OPS (impl_ops , set_ev_filter );
457
461
458
462
return 0 ;
459
463
}
@@ -815,9 +819,9 @@ static inline void arm_cspmu_set_event(struct arm_cspmu *cspmu,
815
819
writel (hwc -> config , cspmu -> base0 + offset );
816
820
}
817
821
818
- static inline void arm_cspmu_set_ev_filter (struct arm_cspmu * cspmu ,
819
- struct hw_perf_event * hwc ,
820
- u32 filter )
822
+ static void arm_cspmu_set_ev_filter (struct arm_cspmu * cspmu ,
823
+ struct hw_perf_event * hwc ,
824
+ u32 filter )
821
825
{
822
826
u32 offset = PMEVFILTR + (4 * hwc -> idx );
823
827
@@ -849,7 +853,7 @@ static void arm_cspmu_start(struct perf_event *event, int pmu_flags)
849
853
arm_cspmu_set_cc_filter (cspmu , filter );
850
854
} else {
851
855
arm_cspmu_set_event (cspmu , hwc );
852
- arm_cspmu_set_ev_filter (cspmu , hwc , filter );
856
+ cspmu -> impl . ops . set_ev_filter (cspmu , hwc , filter );
853
857
}
854
858
855
859
hwc -> state = 0 ;
0 commit comments