Lines Matching refs:cpu_pmu

297 	struct arm_pmu *cpu_pmu = container_of(pmu, struct arm_pmu, pmu);  in armv8pmu_event_attr_is_visible()  local
303 test_bit(pmu_attr->id, cpu_pmu->pmceid_bitmap)) in armv8pmu_event_attr_is_visible()
308 test_bit(pmu_attr->id, cpu_pmu->pmceid_ext_bitmap)) in armv8pmu_event_attr_is_visible()
344 #define ARMV8_IDX_COUNTER_LAST(cpu_pmu) \ argument
345 (ARMV8_IDX_CYCLE_COUNTER + cpu_pmu->num_events - 1)
389 static inline int armv8pmu_counter_valid(struct arm_pmu *cpu_pmu, int idx) in armv8pmu_counter_valid() argument
392 idx <= ARMV8_IDX_COUNTER_LAST(cpu_pmu); in armv8pmu_counter_valid()
426 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_read_counter() local
431 if (!armv8pmu_counter_valid(cpu_pmu, idx)) in armv8pmu_read_counter()
463 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_write_counter() local
467 if (!armv8pmu_counter_valid(cpu_pmu, idx)) in armv8pmu_write_counter()
611 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_enable_event() local
612 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_enable_event()
646 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_disable_event() local
647 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_disable_event()
667 static void armv8pmu_start(struct arm_pmu *cpu_pmu) in armv8pmu_start() argument
670 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_start()
678 static void armv8pmu_stop(struct arm_pmu *cpu_pmu) in armv8pmu_stop() argument
681 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_stop()
689 static irqreturn_t armv8pmu_handle_irq(struct arm_pmu *cpu_pmu) in armv8pmu_handle_irq() argument
693 struct pmu_hw_events *cpuc = this_cpu_ptr(cpu_pmu->hw_events); in armv8pmu_handle_irq()
717 armv8pmu_stop(cpu_pmu); in armv8pmu_handle_irq()
718 for (idx = 0; idx < cpu_pmu->num_events; ++idx) { in armv8pmu_handle_irq()
740 cpu_pmu->disable(event); in armv8pmu_handle_irq()
742 armv8pmu_start(cpu_pmu); in armv8pmu_handle_irq()
757 struct arm_pmu *cpu_pmu) in armv8pmu_get_single_idx() argument
761 for (idx = ARMV8_IDX_COUNTER0; idx < cpu_pmu->num_events; idx ++) { in armv8pmu_get_single_idx()
769 struct arm_pmu *cpu_pmu) in armv8pmu_get_chain_idx() argument
777 for (idx = ARMV8_IDX_COUNTER0 + 1; idx < cpu_pmu->num_events; idx += 2) { in armv8pmu_get_chain_idx()
792 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv8pmu_get_event_idx() local
806 return armv8pmu_get_chain_idx(cpuc, cpu_pmu); in armv8pmu_get_event_idx()
808 return armv8pmu_get_single_idx(cpuc, cpu_pmu); in armv8pmu_get_event_idx()
876 struct arm_pmu *cpu_pmu = (struct arm_pmu *)info; in armv8pmu_reset() local
877 u32 idx, nb_cnt = cpu_pmu->num_events; in armv8pmu_reset()
964 struct arm_pmu *cpu_pmu = probe->pmu; in __armv8pmu_probe_pmu() local
979 cpu_pmu->num_events = (armv8pmu_pmcr_read() >> ARMV8_PMU_PMCR_N_SHIFT) in __armv8pmu_probe_pmu()
983 cpu_pmu->num_events += 1; in __armv8pmu_probe_pmu()
988 bitmap_from_arr32(cpu_pmu->pmceid_bitmap, in __armv8pmu_probe_pmu()
994 bitmap_from_arr32(cpu_pmu->pmceid_ext_bitmap, in __armv8pmu_probe_pmu()
998 static int armv8pmu_probe_pmu(struct arm_pmu *cpu_pmu) in armv8pmu_probe_pmu() argument
1001 .pmu = cpu_pmu, in armv8pmu_probe_pmu()
1006 ret = smp_call_function_any(&cpu_pmu->supported_cpus, in armv8pmu_probe_pmu()
1015 static int armv8_pmu_init(struct arm_pmu *cpu_pmu) in armv8_pmu_init() argument
1017 int ret = armv8pmu_probe_pmu(cpu_pmu); in armv8_pmu_init()
1021 cpu_pmu->handle_irq = armv8pmu_handle_irq; in armv8_pmu_init()
1022 cpu_pmu->enable = armv8pmu_enable_event; in armv8_pmu_init()
1023 cpu_pmu->disable = armv8pmu_disable_event; in armv8_pmu_init()
1024 cpu_pmu->read_counter = armv8pmu_read_counter; in armv8_pmu_init()
1025 cpu_pmu->write_counter = armv8pmu_write_counter; in armv8_pmu_init()
1026 cpu_pmu->get_event_idx = armv8pmu_get_event_idx; in armv8_pmu_init()
1027 cpu_pmu->clear_event_idx = armv8pmu_clear_event_idx; in armv8_pmu_init()
1028 cpu_pmu->start = armv8pmu_start; in armv8_pmu_init()
1029 cpu_pmu->stop = armv8pmu_stop; in armv8_pmu_init()
1030 cpu_pmu->reset = armv8pmu_reset; in armv8_pmu_init()
1031 cpu_pmu->set_event_filter = armv8pmu_set_event_filter; in armv8_pmu_init()
1032 cpu_pmu->filter_match = armv8pmu_filter_match; in armv8_pmu_init()
1037 static int armv8_pmuv3_init(struct arm_pmu *cpu_pmu) in armv8_pmuv3_init() argument
1039 int ret = armv8_pmu_init(cpu_pmu); in armv8_pmuv3_init()
1043 cpu_pmu->name = "armv8_pmuv3"; in armv8_pmuv3_init()
1044 cpu_pmu->map_event = armv8_pmuv3_map_event; in armv8_pmuv3_init()
1045 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_pmuv3_init()
1047 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_pmuv3_init()
1053 static int armv8_a35_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a35_pmu_init() argument
1055 int ret = armv8_pmu_init(cpu_pmu); in armv8_a35_pmu_init()
1059 cpu_pmu->name = "armv8_cortex_a35"; in armv8_a35_pmu_init()
1060 cpu_pmu->map_event = armv8_a53_map_event; in armv8_a35_pmu_init()
1061 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a35_pmu_init()
1063 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a35_pmu_init()
1069 static int armv8_a53_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a53_pmu_init() argument
1071 int ret = armv8_pmu_init(cpu_pmu); in armv8_a53_pmu_init()
1075 cpu_pmu->name = "armv8_cortex_a53"; in armv8_a53_pmu_init()
1076 cpu_pmu->map_event = armv8_a53_map_event; in armv8_a53_pmu_init()
1077 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a53_pmu_init()
1079 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a53_pmu_init()
1085 static int armv8_a57_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a57_pmu_init() argument
1087 int ret = armv8_pmu_init(cpu_pmu); in armv8_a57_pmu_init()
1091 cpu_pmu->name = "armv8_cortex_a57"; in armv8_a57_pmu_init()
1092 cpu_pmu->map_event = armv8_a57_map_event; in armv8_a57_pmu_init()
1093 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a57_pmu_init()
1095 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a57_pmu_init()
1101 static int armv8_a72_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a72_pmu_init() argument
1103 int ret = armv8_pmu_init(cpu_pmu); in armv8_a72_pmu_init()
1107 cpu_pmu->name = "armv8_cortex_a72"; in armv8_a72_pmu_init()
1108 cpu_pmu->map_event = armv8_a57_map_event; in armv8_a72_pmu_init()
1109 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a72_pmu_init()
1111 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a72_pmu_init()
1117 static int armv8_a73_pmu_init(struct arm_pmu *cpu_pmu) in armv8_a73_pmu_init() argument
1119 int ret = armv8_pmu_init(cpu_pmu); in armv8_a73_pmu_init()
1123 cpu_pmu->name = "armv8_cortex_a73"; in armv8_a73_pmu_init()
1124 cpu_pmu->map_event = armv8_a73_map_event; in armv8_a73_pmu_init()
1125 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_a73_pmu_init()
1127 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_a73_pmu_init()
1133 static int armv8_thunder_pmu_init(struct arm_pmu *cpu_pmu) in armv8_thunder_pmu_init() argument
1135 int ret = armv8_pmu_init(cpu_pmu); in armv8_thunder_pmu_init()
1139 cpu_pmu->name = "armv8_cavium_thunder"; in armv8_thunder_pmu_init()
1140 cpu_pmu->map_event = armv8_thunder_map_event; in armv8_thunder_pmu_init()
1141 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_thunder_pmu_init()
1143 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_thunder_pmu_init()
1149 static int armv8_vulcan_pmu_init(struct arm_pmu *cpu_pmu) in armv8_vulcan_pmu_init() argument
1151 int ret = armv8_pmu_init(cpu_pmu); in armv8_vulcan_pmu_init()
1155 cpu_pmu->name = "armv8_brcm_vulcan"; in armv8_vulcan_pmu_init()
1156 cpu_pmu->map_event = armv8_vulcan_map_event; in armv8_vulcan_pmu_init()
1157 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] = in armv8_vulcan_pmu_init()
1159 cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] = in armv8_vulcan_pmu_init()