Lines Matching refs:idx

622 static inline int armv7_pmnc_counter_valid(struct arm_pmu *cpu_pmu, int idx)  in armv7_pmnc_counter_valid()  argument
624 return idx >= ARMV7_IDX_CYCLE_COUNTER && in armv7_pmnc_counter_valid()
625 idx <= ARMV7_IDX_COUNTER_LAST(cpu_pmu); in armv7_pmnc_counter_valid()
628 static inline int armv7_pmnc_counter_has_overflowed(u32 pmnc, int idx) in armv7_pmnc_counter_has_overflowed() argument
630 return pmnc & BIT(ARMV7_IDX_TO_COUNTER(idx)); in armv7_pmnc_counter_has_overflowed()
633 static inline void armv7_pmnc_select_counter(int idx) in armv7_pmnc_select_counter() argument
635 u32 counter = ARMV7_IDX_TO_COUNTER(idx); in armv7_pmnc_select_counter()
644 int idx = hwc->idx; in armv7pmu_read_counter() local
647 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_read_counter()
649 smp_processor_id(), idx); in armv7pmu_read_counter()
650 } else if (idx == ARMV7_IDX_CYCLE_COUNTER) { in armv7pmu_read_counter()
653 armv7_pmnc_select_counter(idx); in armv7pmu_read_counter()
664 int idx = hwc->idx; in armv7pmu_write_counter() local
666 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_write_counter()
668 smp_processor_id(), idx); in armv7pmu_write_counter()
669 } else if (idx == ARMV7_IDX_CYCLE_COUNTER) { in armv7pmu_write_counter()
672 armv7_pmnc_select_counter(idx); in armv7pmu_write_counter()
677 static inline void armv7_pmnc_write_evtsel(int idx, u32 val) in armv7_pmnc_write_evtsel() argument
679 armv7_pmnc_select_counter(idx); in armv7_pmnc_write_evtsel()
684 static inline void armv7_pmnc_enable_counter(int idx) in armv7_pmnc_enable_counter() argument
686 u32 counter = ARMV7_IDX_TO_COUNTER(idx); in armv7_pmnc_enable_counter()
690 static inline void armv7_pmnc_disable_counter(int idx) in armv7_pmnc_disable_counter() argument
692 u32 counter = ARMV7_IDX_TO_COUNTER(idx); in armv7_pmnc_disable_counter()
696 static inline void armv7_pmnc_enable_intens(int idx) in armv7_pmnc_enable_intens() argument
698 u32 counter = ARMV7_IDX_TO_COUNTER(idx); in armv7_pmnc_enable_intens()
702 static inline void armv7_pmnc_disable_intens(int idx) in armv7_pmnc_disable_intens() argument
704 u32 counter = ARMV7_IDX_TO_COUNTER(idx); in armv7_pmnc_disable_intens()
771 int idx = hwc->idx; in armv7pmu_enable_event() local
773 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_enable_event()
775 smp_processor_id(), idx); in armv7pmu_enable_event()
788 armv7_pmnc_disable_counter(idx); in armv7pmu_enable_event()
795 if (cpu_pmu->set_event_filter || idx != ARMV7_IDX_CYCLE_COUNTER) in armv7pmu_enable_event()
796 armv7_pmnc_write_evtsel(idx, hwc->config_base); in armv7pmu_enable_event()
801 armv7_pmnc_enable_intens(idx); in armv7pmu_enable_event()
806 armv7_pmnc_enable_counter(idx); in armv7pmu_enable_event()
817 int idx = hwc->idx; in armv7pmu_disable_event() local
819 if (!armv7_pmnc_counter_valid(cpu_pmu, idx)) { in armv7pmu_disable_event()
821 smp_processor_id(), idx); in armv7pmu_disable_event()
833 armv7_pmnc_disable_counter(idx); in armv7pmu_disable_event()
838 armv7_pmnc_disable_intens(idx); in armv7pmu_disable_event()
850 int idx; in armv7pmu_handle_irq() local
868 for (idx = 0; idx < cpu_pmu->num_events; ++idx) { in armv7pmu_handle_irq()
869 struct perf_event *event = cpuc->events[idx]; in armv7pmu_handle_irq()
880 if (!armv7_pmnc_counter_has_overflowed(pmnc, idx)) in armv7pmu_handle_irq()
930 int idx; in armv7pmu_get_event_idx() local
947 for (idx = ARMV7_IDX_COUNTER0; idx < cpu_pmu->num_events; ++idx) { in armv7pmu_get_event_idx()
948 if (!test_and_set_bit(idx, cpuc->used_mask)) in armv7pmu_get_event_idx()
949 return idx; in armv7pmu_get_event_idx()
985 u32 idx, nb_cnt = cpu_pmu->num_events; in armv7pmu_reset() local
988 for (idx = ARMV7_IDX_CYCLE_COUNTER; idx < nb_cnt; ++idx) { in armv7pmu_reset()
989 armv7_pmnc_disable_counter(idx); in armv7pmu_reset()
990 armv7_pmnc_disable_intens(idx); in armv7pmu_reset()
1270 static void krait_evt_setup(int idx, u32 config_base) in krait_evt_setup() argument
1292 armv7_pmnc_write_evtsel(idx, val); in krait_evt_setup()
1352 int idx = hwc->idx; in krait_pmu_disable_event() local
1360 armv7_pmnc_disable_counter(idx); in krait_pmu_disable_event()
1369 armv7_pmnc_disable_intens(idx); in krait_pmu_disable_event()
1378 int idx = hwc->idx; in krait_pmu_enable_event() local
1389 armv7_pmnc_disable_counter(idx); in krait_pmu_enable_event()
1397 krait_evt_setup(idx, hwc->config_base); in krait_pmu_enable_event()
1399 armv7_pmnc_write_evtsel(idx, hwc->config_base); in krait_pmu_enable_event()
1402 armv7_pmnc_enable_intens(idx); in krait_pmu_enable_event()
1405 armv7_pmnc_enable_counter(idx); in krait_pmu_enable_event()
1414 u32 idx, nb_cnt = cpu_pmu->num_events; in krait_pmu_reset() local
1428 for (idx = ARMV7_IDX_CYCLE_COUNTER; idx < nb_cnt; ++idx) { in krait_pmu_reset()
1429 armv7_pmnc_select_counter(idx); in krait_pmu_reset()
1464 int idx; in krait_pmu_get_event_idx() local
1485 idx = armv7pmu_get_event_idx(cpuc, event); in krait_pmu_get_event_idx()
1486 if (idx < 0 && bit >= 0) in krait_pmu_get_event_idx()
1489 return idx; in krait_pmu_get_event_idx()
1616 static void scorpion_evt_setup(int idx, u32 config_base) in scorpion_evt_setup() argument
1638 armv7_pmnc_write_evtsel(idx, val); in scorpion_evt_setup()
1684 int idx = hwc->idx; in scorpion_pmu_disable_event() local
1692 armv7_pmnc_disable_counter(idx); in scorpion_pmu_disable_event()
1701 armv7_pmnc_disable_intens(idx); in scorpion_pmu_disable_event()
1710 int idx = hwc->idx; in scorpion_pmu_enable_event() local
1721 armv7_pmnc_disable_counter(idx); in scorpion_pmu_enable_event()
1729 scorpion_evt_setup(idx, hwc->config_base); in scorpion_pmu_enable_event()
1730 else if (idx != ARMV7_IDX_CYCLE_COUNTER) in scorpion_pmu_enable_event()
1731 armv7_pmnc_write_evtsel(idx, hwc->config_base); in scorpion_pmu_enable_event()
1734 armv7_pmnc_enable_intens(idx); in scorpion_pmu_enable_event()
1737 armv7_pmnc_enable_counter(idx); in scorpion_pmu_enable_event()
1746 u32 idx, nb_cnt = cpu_pmu->num_events; in scorpion_pmu_reset() local
1761 for (idx = ARMV7_IDX_CYCLE_COUNTER; idx < nb_cnt; ++idx) { in scorpion_pmu_reset()
1762 armv7_pmnc_select_counter(idx); in scorpion_pmu_reset()
1796 int idx; in scorpion_pmu_get_event_idx() local
1814 idx = armv7pmu_get_event_idx(cpuc, event); in scorpion_pmu_get_event_idx()
1815 if (idx < 0 && bit >= 0) in scorpion_pmu_get_event_idx()
1818 return idx; in scorpion_pmu_get_event_idx()