Lines Matching refs:cpu_pmu
549 #define ARMV7_IDX_COUNTER_LAST(cpu_pmu) \ argument
550 (ARMV7_IDX_CYCLE_COUNTER + cpu_pmu->num_events - 1)
616 static inline int armv7_pmnc_counter_valid(struct arm_pmu *cpu_pmu, int idx) in armv7_pmnc_counter_valid() argument
619 idx <= ARMV7_IDX_COUNTER_LAST(cpu_pmu); in armv7_pmnc_counter_valid()
636 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv7pmu_read_counter() local
641 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_read_counter()
656 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv7pmu_write_counter() local
660 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_write_counter()
721 static void armv7_pmnc_dump_regs(struct arm_pmu *cpu_pmu) in armv7_pmnc_dump_regs() argument
747 cnt <= ARMV7_IDX_COUNTER_LAST(cpu_pmu); cnt++) { in armv7_pmnc_dump_regs()
763 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv7pmu_enable_event() local
764 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv7pmu_enable_event()
767 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_enable_event()
789 if (cpu_pmu->set_event_filter || idx != ARMV7_IDX_CYCLE_COUNTER) in armv7pmu_enable_event()
809 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv7pmu_disable_event() local
810 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv7pmu_disable_event()
813 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_disable_event()
841 struct arm_pmu *cpu_pmu = (struct arm_pmu *)dev; in armv7pmu_handle_irq() local
842 struct pmu_hw_events *cpuc = this_cpu_ptr(cpu_pmu->hw_events); in armv7pmu_handle_irq()
862 for (idx = 0; idx < cpu_pmu->num_events; ++idx) { in armv7pmu_handle_irq()
884 cpu_pmu->disable(event); in armv7pmu_handle_irq()
899 static void armv7pmu_start(struct arm_pmu *cpu_pmu) in armv7pmu_start() argument
902 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv7pmu_start()
910 static void armv7pmu_stop(struct arm_pmu *cpu_pmu) in armv7pmu_stop() argument
913 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in armv7pmu_stop()
925 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in armv7pmu_get_event_idx() local
941 for (idx = ARMV7_IDX_COUNTER0; idx < cpu_pmu->num_events; ++idx) { in armv7pmu_get_event_idx()
978 struct arm_pmu *cpu_pmu = (struct arm_pmu *)info; in armv7pmu_reset() local
979 u32 idx, nb_cnt = cpu_pmu->num_events; in armv7pmu_reset()
1045 static void armv7pmu_init(struct arm_pmu *cpu_pmu) in armv7pmu_init() argument
1047 cpu_pmu->handle_irq = armv7pmu_handle_irq; in armv7pmu_init()
1048 cpu_pmu->enable = armv7pmu_enable_event; in armv7pmu_init()
1049 cpu_pmu->disable = armv7pmu_disable_event; in armv7pmu_init()
1050 cpu_pmu->read_counter = armv7pmu_read_counter; in armv7pmu_init()
1051 cpu_pmu->write_counter = armv7pmu_write_counter; in armv7pmu_init()
1052 cpu_pmu->get_event_idx = armv7pmu_get_event_idx; in armv7pmu_init()
1053 cpu_pmu->start = armv7pmu_start; in armv7pmu_init()
1054 cpu_pmu->stop = armv7pmu_stop; in armv7pmu_init()
1055 cpu_pmu->reset = armv7pmu_reset; in armv7pmu_init()
1056 cpu_pmu->max_period = (1LLU << 32) - 1; in armv7pmu_init()
1070 static int armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a8_pmu_init() argument
1072 armv7pmu_init(cpu_pmu); in armv7_a8_pmu_init()
1073 cpu_pmu->name = "armv7_cortex_a8"; in armv7_a8_pmu_init()
1074 cpu_pmu->map_event = armv7_a8_map_event; in armv7_a8_pmu_init()
1075 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in armv7_a8_pmu_init()
1079 static int armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a9_pmu_init() argument
1081 armv7pmu_init(cpu_pmu); in armv7_a9_pmu_init()
1082 cpu_pmu->name = "armv7_cortex_a9"; in armv7_a9_pmu_init()
1083 cpu_pmu->map_event = armv7_a9_map_event; in armv7_a9_pmu_init()
1084 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in armv7_a9_pmu_init()
1088 static int armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a5_pmu_init() argument
1090 armv7pmu_init(cpu_pmu); in armv7_a5_pmu_init()
1091 cpu_pmu->name = "armv7_cortex_a5"; in armv7_a5_pmu_init()
1092 cpu_pmu->map_event = armv7_a5_map_event; in armv7_a5_pmu_init()
1093 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in armv7_a5_pmu_init()
1097 static int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a15_pmu_init() argument
1099 armv7pmu_init(cpu_pmu); in armv7_a15_pmu_init()
1100 cpu_pmu->name = "armv7_cortex_a15"; in armv7_a15_pmu_init()
1101 cpu_pmu->map_event = armv7_a15_map_event; in armv7_a15_pmu_init()
1102 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in armv7_a15_pmu_init()
1103 cpu_pmu->set_event_filter = armv7pmu_set_event_filter; in armv7_a15_pmu_init()
1107 static int armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a7_pmu_init() argument
1109 armv7pmu_init(cpu_pmu); in armv7_a7_pmu_init()
1110 cpu_pmu->name = "armv7_cortex_a7"; in armv7_a7_pmu_init()
1111 cpu_pmu->map_event = armv7_a7_map_event; in armv7_a7_pmu_init()
1112 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in armv7_a7_pmu_init()
1113 cpu_pmu->set_event_filter = armv7pmu_set_event_filter; in armv7_a7_pmu_init()
1117 static int armv7_a12_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a12_pmu_init() argument
1119 armv7pmu_init(cpu_pmu); in armv7_a12_pmu_init()
1120 cpu_pmu->name = "armv7_cortex_a12"; in armv7_a12_pmu_init()
1121 cpu_pmu->map_event = armv7_a12_map_event; in armv7_a12_pmu_init()
1122 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in armv7_a12_pmu_init()
1123 cpu_pmu->set_event_filter = armv7pmu_set_event_filter; in armv7_a12_pmu_init()
1127 static int armv7_a17_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a17_pmu_init() argument
1129 armv7_a12_pmu_init(cpu_pmu); in armv7_a17_pmu_init()
1130 cpu_pmu->name = "armv7_cortex_a17"; in armv7_a17_pmu_init()
1346 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in krait_pmu_disable_event() local
1347 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in krait_pmu_disable_event()
1372 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in krait_pmu_enable_event() local
1373 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in krait_pmu_enable_event()
1406 struct arm_pmu *cpu_pmu = info; in krait_pmu_reset() local
1407 u32 idx, nb_cnt = cpu_pmu->num_events; in krait_pmu_reset()
1433 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in krait_event_to_bit() local
1445 bit += ARMV7_IDX_COUNTER_LAST(cpu_pmu) + 1; in krait_event_to_bit()
1501 static int krait_pmu_init(struct arm_pmu *cpu_pmu) in krait_pmu_init() argument
1503 armv7pmu_init(cpu_pmu); in krait_pmu_init()
1504 cpu_pmu->name = "armv7_krait"; in krait_pmu_init()
1506 if (of_property_read_bool(cpu_pmu->plat_device->dev.of_node, in krait_pmu_init()
1508 cpu_pmu->map_event = krait_map_event_no_branch; in krait_pmu_init()
1510 cpu_pmu->map_event = krait_map_event; in krait_pmu_init()
1511 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in krait_pmu_init()
1512 cpu_pmu->set_event_filter = armv7pmu_set_event_filter; in krait_pmu_init()
1513 cpu_pmu->reset = krait_pmu_reset; in krait_pmu_init()
1514 cpu_pmu->enable = krait_pmu_enable_event; in krait_pmu_init()
1515 cpu_pmu->disable = krait_pmu_disable_event; in krait_pmu_init()
1516 cpu_pmu->get_event_idx = krait_pmu_get_event_idx; in krait_pmu_init()
1517 cpu_pmu->clear_event_idx = krait_pmu_clear_event_idx; in krait_pmu_init()
1679 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in scorpion_pmu_disable_event() local
1680 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in scorpion_pmu_disable_event()
1705 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in scorpion_pmu_enable_event() local
1706 struct pmu_hw_events *events = this_cpu_ptr(cpu_pmu->hw_events); in scorpion_pmu_enable_event()
1739 struct arm_pmu *cpu_pmu = info; in scorpion_pmu_reset() local
1740 u32 idx, nb_cnt = cpu_pmu->num_events; in scorpion_pmu_reset()
1766 struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu); in scorpion_event_to_bit() local
1778 bit += ARMV7_IDX_COUNTER_LAST(cpu_pmu) + 1; in scorpion_event_to_bit()
1831 static int scorpion_pmu_init(struct arm_pmu *cpu_pmu) in scorpion_pmu_init() argument
1833 armv7pmu_init(cpu_pmu); in scorpion_pmu_init()
1834 cpu_pmu->name = "armv7_scorpion"; in scorpion_pmu_init()
1835 cpu_pmu->map_event = scorpion_map_event; in scorpion_pmu_init()
1836 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in scorpion_pmu_init()
1837 cpu_pmu->reset = scorpion_pmu_reset; in scorpion_pmu_init()
1838 cpu_pmu->enable = scorpion_pmu_enable_event; in scorpion_pmu_init()
1839 cpu_pmu->disable = scorpion_pmu_disable_event; in scorpion_pmu_init()
1840 cpu_pmu->get_event_idx = scorpion_pmu_get_event_idx; in scorpion_pmu_init()
1841 cpu_pmu->clear_event_idx = scorpion_pmu_clear_event_idx; in scorpion_pmu_init()
1845 static int scorpion_mp_pmu_init(struct arm_pmu *cpu_pmu) in scorpion_mp_pmu_init() argument
1847 armv7pmu_init(cpu_pmu); in scorpion_mp_pmu_init()
1848 cpu_pmu->name = "armv7_scorpion_mp"; in scorpion_mp_pmu_init()
1849 cpu_pmu->map_event = scorpion_map_event; in scorpion_mp_pmu_init()
1850 cpu_pmu->num_events = armv7_read_num_pmnc_events(); in scorpion_mp_pmu_init()
1851 cpu_pmu->reset = scorpion_pmu_reset; in scorpion_mp_pmu_init()
1852 cpu_pmu->enable = scorpion_pmu_enable_event; in scorpion_mp_pmu_init()
1853 cpu_pmu->disable = scorpion_pmu_disable_event; in scorpion_mp_pmu_init()
1854 cpu_pmu->get_event_idx = scorpion_pmu_get_event_idx; in scorpion_mp_pmu_init()
1855 cpu_pmu->clear_event_idx = scorpion_pmu_clear_event_idx; in scorpion_mp_pmu_init()
1859 static inline int armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a8_pmu_init() argument
1864 static inline int armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a9_pmu_init() argument
1869 static inline int armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a5_pmu_init() argument
1874 static inline int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a15_pmu_init() argument
1879 static inline int armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a7_pmu_init() argument
1884 static inline int armv7_a12_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a12_pmu_init() argument
1889 static inline int armv7_a17_pmu_init(struct arm_pmu *cpu_pmu) in armv7_a17_pmu_init() argument
1894 static inline int krait_pmu_init(struct arm_pmu *cpu_pmu) in krait_pmu_init() argument
1899 static inline int scorpion_pmu_init(struct arm_pmu *cpu_pmu) in scorpion_pmu_init() argument
1904 static inline int scorpion_mp_pmu_init(struct arm_pmu *cpu_pmu) in scorpion_mp_pmu_init() argument