Lines Matching defs:loongarch_pmu

130 struct loongarch_pmu {
146 static struct loongarch_pmu loongarch_pmu;
257 for (i = 0; i < loongarch_pmu.num_counters; i++) {
271 WARN_ON(idx < 0 || idx >= loongarch_pmu.num_counters);
290 WARN_ON(idx < 0 || idx >= loongarch_pmu.num_counters);
321 if (left > loongarch_pmu.max_period) {
322 left = loongarch_pmu.max_period;
326 local64_set(&hwc->prev_count, loongarch_pmu.overflow - left);
328 loongarch_pmu.write_counter(idx, loongarch_pmu.overflow - left);
344 new_raw_count = loongarch_pmu.read_counter(idx);
426 WARN_ON(idx < 0 || idx >= loongarch_pmu.num_counters);
466 free_irq(get_percpu_irq(INT_PCOV), &loongarch_pmu);
508 for (n = 0; n < loongarch_pmu.num_counters; n++) {
510 counter = loongarch_pmu.read_counter(n);
511 if (counter & loongarch_pmu.overflow) {
560 r = request_irq(irq, pmu_handle_irq, flags, "Perf_PMU", &loongarch_pmu);
594 pev = &(*loongarch_pmu.general_event_map)[idx];
619 pev = &((*loongarch_pmu.cache_event_map)
654 int counters = loongarch_pmu.num_counters;
658 loongarch_pmu.write_counter(n, 0);
754 pev = loongarch_pmu.map_raw_event(event->attr.config);
796 hwc->sample_period = loongarch_pmu.max_period;
816 int ctr = loongarch_pmu.num_counters;
831 int ctr = loongarch_pmu.num_counters;
857 loongarch_pmu.num_counters = counters;
858 loongarch_pmu.max_period = (1ULL << 63) - 1;
859 loongarch_pmu.valid_count = (1ULL << 63) - 1;
860 loongarch_pmu.overflow = 1ULL << 63;
861 loongarch_pmu.name = "loongarch/loongson64";
862 loongarch_pmu.read_counter = loongarch_pmu_read_counter;
863 loongarch_pmu.write_counter = loongarch_pmu_write_counter;
864 loongarch_pmu.map_raw_event = loongarch_pmu_map_raw_event;
865 loongarch_pmu.general_event_map = &loongson_event_map;
866 loongarch_pmu.cache_event_map = &loongson_cache_map;
871 loongarch_pmu.name, counters, 64);