Lines Matching refs:cpu_pmu
432 struct arm_pmu *cpu_pmu = container_of(pmu, struct arm_pmu, pmu); in armv8pmu_event_attr_is_visible() local
437 if (test_bit(pmu_attr->id, cpu_pmu->pmceid_bitmap)) in armv8pmu_event_attr_is_visible()
473 #define ARMV8_IDX_COUNTER_LAST(cpu_pmu) \ argument
474 (ARMV8_IDX_CYCLE_COUNTER + cpu_pmu->num_events - 1)
518 static inline int armv8pmu_counter_valid(struct arm_pmu *cpu_pmu, int idx) in armv8pmu_counter_valid() argument
521 idx <= ARMV8_IDX_COUNTER_LAST(cpu_pmu); in armv8pmu_counter_valid()
555 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_read_counter() local
560 if (!armv8pmu_counter_valid(cpu_pmu, idx)) in armv8pmu_read_counter()
592 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_write_counter() local
596 if (!armv8pmu_counter_valid(cpu_pmu, idx)) in armv8pmu_write_counter()
721 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_enable_event() local
722 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_enable_event()
756 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_disable_event() local
757 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_disable_event()
777 static void armv8pmu_start(struct arm_pmu *cpu_pmu) in armv8pmu_start() argument
780 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_start()
788 static void armv8pmu_stop(struct arm_pmu *cpu_pmu) in armv8pmu_stop() argument
791 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_stop()
799 static irqreturn_t armv8pmu_handle_irq(struct arm_pmu *cpu_pmu) in armv8pmu_handle_irq() argument
803 struct pmu_hw_events *cpuc = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_handle_irq()
827 armv8pmu_stop(cpu_pmu); in armv8pmu_handle_irq()
828 for (idx = 0; idx < cpu_pmu->num_events; ++idx) { in armv8pmu_handle_irq()
850 cpu_pmu->disable(event); in armv8pmu_handle_irq()
852 armv8pmu_start(cpu_pmu); in armv8pmu_handle_irq()
867 struct arm_pmu *cpu_pmu) in armv8pmu_get_single_idx() argument
871 for (idx = ARMV8_IDX_COUNTER0; idx < cpu_pmu->num_events; idx ++) { in armv8pmu_get_single_idx()
879 struct arm_pmu *cpu_pmu) in armv8pmu_get_chain_idx() argument
887 for (idx = ARMV8_IDX_COUNTER0 + 1; idx < cpu_pmu->num_events; idx += 2) { in armv8pmu_get_chain_idx()
902 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_get_event_idx() local
916 return armv8pmu_get_chain_idx(cpuc, cpu_pmu); in armv8pmu_get_event_idx()
918 return armv8pmu_get_single_idx(cpuc, cpu_pmu); in armv8pmu_get_event_idx()
977 struct arm_pmu *cpu_pmu = (struct arm_pmu *)info; in armv8pmu_reset() local
978 u32 idx, nb_cnt = cpu_pmu->num_events; in armv8pmu_reset()
1062 struct arm_pmu *cpu_pmu = probe->pmu; in __armv8pmu_probe_pmu() local
1076 cpu_pmu->num_events = (armv8pmu_pmcr_read() >> ARMV8_PMU_PMCR_N_SHIFT) in __armv8pmu_probe_pmu()
1080 cpu_pmu->num_events += 1; in __armv8pmu_probe_pmu()
1085 bitmap_from_arr32(cpu_pmu->pmceid_bitmap, in __armv8pmu_probe_pmu()
1089 static int armv8pmu_probe_pmu(struct arm_pmu *cpu_pmu) in armv8pmu_probe_pmu() argument
1092 .pmu = cpu_pmu, in armv8pmu_probe_pmu()
1097 ret = smp_call_function_any(&cpu_pmu->supported_cpus, in armv8pmu_probe_pmu()
1106 static int armv8_pmu_init(struct arm_pmu *cpu_pmu) in armv8_pmu_init() argument
1108 int ret = armv8pmu_probe_pmu(cpu_pmu); in armv8_pmu_init()
1112 cpu_pmu->handle_irq = armv8pmu_handle_irq, in armv8_pmu_init()
1113 cpu_pmu->enable = armv8pmu_enable_event, in armv8_pmu_init()
1114 cpu_pmu->disable = armv8pmu_disable_event, in armv8_pmu_init()
1115 cpu_pmu->read_counter = armv8pmu_read_counter, in armv8_pmu_init()
1116 cpu_pmu->write_counter = armv8pmu_write_counter, in armv8_pmu_init()
1117 cpu_pmu->get_event_idx = armv8pmu_get_event_idx, in armv8_pmu_init()
1118 cpu_pmu->clear_event_idx = armv8pmu_clear_event_idx, in armv8_pmu_init()
1119 cpu_pmu->start = armv8pmu_start, in armv8_pmu_init()
1120 cpu_pmu->stop = armv8pmu_stop, in armv8_pmu_init()
1121 cpu_pmu->reset = armv8pmu_reset, in armv8_pmu_init()
1122 cpu_pmu->set_event_filter = armv8pmu_set_event_filter; in armv8_pmu_init()
1123 cpu_pmu->filter_match = armv8pmu_filter_match; in armv8_pmu_init()
1128 static int armv8_pmuv3_init(struct arm_pmu *cpu_pmu) in armv8_pmuv3_init() argument
1130 int ret = armv8_pmu_init(cpu_pmu); in armv8_pmuv3_init()
1134 cpu_pmu->name = "armv8_pmuv3"; in armv8_pmuv3_init()
1135 cpu_pmu->map_event = armv8_pmuv3_map_event; in armv8_pmuv3_init()
1136 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_pmuv3_init()
1138 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_pmuv3_init()
1144 static int armv8_a35_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a35_pmu_init() argument
1146 int ret = armv8_pmu_init(cpu_pmu); in armv8_a35_pmu_init()
1150 cpu_pmu->name = "armv8_cortex_a35"; in armv8_a35_pmu_init()
1151 cpu_pmu->map_event = armv8_a53_map_event; in armv8_a35_pmu_init()
1152 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a35_pmu_init()
1154 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a35_pmu_init()
1160 static int armv8_a53_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a53_pmu_init() argument
1162 int ret = armv8_pmu_init(cpu_pmu); in armv8_a53_pmu_init()
1166 cpu_pmu->name = "armv8_cortex_a53"; in armv8_a53_pmu_init()
1167 cpu_pmu->map_event = armv8_a53_map_event; in armv8_a53_pmu_init()
1168 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a53_pmu_init()
1170 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a53_pmu_init()
1176 static int armv8_a57_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a57_pmu_init() argument
1178 int ret = armv8_pmu_init(cpu_pmu); in armv8_a57_pmu_init()
1182 cpu_pmu->name = "armv8_cortex_a57"; in armv8_a57_pmu_init()
1183 cpu_pmu->map_event = armv8_a57_map_event; in armv8_a57_pmu_init()
1184 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a57_pmu_init()
1186 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a57_pmu_init()
1192 static int armv8_a72_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a72_pmu_init() argument
1194 int ret = armv8_pmu_init(cpu_pmu); in armv8_a72_pmu_init()
1198 cpu_pmu->name = "armv8_cortex_a72"; in armv8_a72_pmu_init()
1199 cpu_pmu->map_event = armv8_a57_map_event; in armv8_a72_pmu_init()
1200 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a72_pmu_init()
1202 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a72_pmu_init()
1208 static int armv8_a73_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a73_pmu_init() argument
1210 int ret = armv8_pmu_init(cpu_pmu); in armv8_a73_pmu_init()
1214 cpu_pmu->name = "armv8_cortex_a73"; in armv8_a73_pmu_init()
1215 cpu_pmu->map_event = armv8_a73_map_event; in armv8_a73_pmu_init()
1216 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a73_pmu_init()
1218 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a73_pmu_init()
1224 static int armv8_thunder_pmu_init(struct arm_pmu *cpu_pmu) in armv8_thunder_pmu_init() argument
1226 int ret = armv8_pmu_init(cpu_pmu); in armv8_thunder_pmu_init()
1230 cpu_pmu->name = "armv8_cavium_thunder"; in armv8_thunder_pmu_init()
1231 cpu_pmu->map_event = armv8_thunder_map_event; in armv8_thunder_pmu_init()
1232 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_thunder_pmu_init()
1234 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_thunder_pmu_init()
1240 static int armv8_vulcan_pmu_init(struct arm_pmu *cpu_pmu) in armv8_vulcan_pmu_init() argument
1242 int ret = armv8_pmu_init(cpu_pmu); in armv8_vulcan_pmu_init()
1246 cpu_pmu->name = "armv8_brcm_vulcan"; in armv8_vulcan_pmu_init()
1247 cpu_pmu->map_event = armv8_vulcan_map_event; in armv8_vulcan_pmu_init()
1248 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_vulcan_pmu_init()
1250 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_vulcan_pmu_init()