Lines Matching refs:armpmu

155 	struct arm_pmu *armpmu = to_arm_pmu(event->pmu);  in armpmu_event_set_period()  local
180 if (left > (armpmu->max_period >> 1)) in armpmu_event_set_period()
181 left = armpmu->max_period >> 1; in armpmu_event_set_period()
185 armpmu->write_counter(idx, (u64)(-left) & 0xffffffff); in armpmu_event_set_period()
197 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_update() local
202 new_raw_count = armpmu->read_counter(idx); in armpmu_event_update()
208 delta = (new_raw_count - prev_raw_count) & armpmu->max_period; in armpmu_event_update()
231 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_stop() local
239 armpmu->disable(hwc, hwc->idx); in armpmu_stop()
249 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_start() local
268 armpmu->enable(hwc, hwc->idx); in armpmu_start()
274 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_del() local
275 struct pmu_hw_events *hw_events = armpmu->get_hw_events(); in armpmu_del()
291 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_add() local
292 struct pmu_hw_events *hw_events = armpmu->get_hw_events(); in armpmu_add()
300 idx = armpmu->get_event_idx(hw_events, hwc); in armpmu_add()
311 armpmu->disable(hwc, idx); in armpmu_add()
330 struct arm_pmu *armpmu; in validate_event() local
351 armpmu = to_arm_pmu(event->pmu); in validate_event()
352 return armpmu->get_event_idx(hw_events, &fake_event) >= 0; in validate_event()
391 armpmu_release_hardware(struct arm_pmu *armpmu) in armpmu_release_hardware() argument
395 struct platform_device *pmu_device = armpmu->plat_device; in armpmu_release_hardware()
412 if (armpmu->irq_affinity) in armpmu_release_hardware()
413 cpu = armpmu->irq_affinity[i]; in armpmu_release_hardware()
415 if (!cpumask_test_and_clear_cpu(cpu, &armpmu->active_irqs)) in armpmu_release_hardware()
419 free_irq(irq, armpmu); in armpmu_release_hardware()
432 armpmu_reserve_hardware(struct arm_pmu *armpmu) in armpmu_reserve_hardware() argument
436 struct platform_device *pmu_device = armpmu->plat_device; in armpmu_reserve_hardware()
456 err = request_percpu_irq(irq, armpmu->handle_irq, in armpmu_reserve_hardware()
462 armpmu_release_hardware(armpmu); in armpmu_reserve_hardware()
476 if (armpmu->irq_affinity) in armpmu_reserve_hardware()
477 cpu = armpmu->irq_affinity[i]; in armpmu_reserve_hardware()
490 err = request_irq(irq, armpmu->handle_irq, in armpmu_reserve_hardware()
492 "arm-pmu", armpmu); in armpmu_reserve_hardware()
496 armpmu_release_hardware(armpmu); in armpmu_reserve_hardware()
500 cpumask_set_cpu(cpu, &armpmu->active_irqs); in armpmu_reserve_hardware()
510 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in hw_perf_event_destroy() local
511 atomic_t *active_events = &armpmu->active_events; in hw_perf_event_destroy()
512 struct mutex *pmu_reserve_mutex = &armpmu->reserve_mutex; in hw_perf_event_destroy()
515 armpmu_release_hardware(armpmu); in hw_perf_event_destroy()
530 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in __hw_perf_event_init() local
534 mapping = armpmu->map_event(event); in __hw_perf_event_init()
556 if ((!armpmu->set_event_filter || in __hw_perf_event_init()
557 armpmu->set_event_filter(hwc, &event->attr)) && in __hw_perf_event_init()
575 hwc->sample_period = armpmu->max_period >> 1; in __hw_perf_event_init()
592 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_init() local
594 atomic_t *active_events = &armpmu->active_events; in armpmu_event_init()
596 if (armpmu->map_event(event) == -ENOENT) in armpmu_event_init()
602 mutex_lock(&armpmu->reserve_mutex); in armpmu_event_init()
604 err = armpmu_reserve_hardware(armpmu); in armpmu_event_init()
608 mutex_unlock(&armpmu->reserve_mutex); in armpmu_event_init()
623 struct arm_pmu *armpmu = to_arm_pmu(pmu); in armpmu_enable() local
624 struct pmu_hw_events *hw_events = armpmu->get_hw_events(); in armpmu_enable()
625 int enabled = bitmap_weight(hw_events->used_mask, armpmu->num_events); in armpmu_enable()
628 armpmu->start(); in armpmu_enable()
633 struct arm_pmu *armpmu = to_arm_pmu(pmu); in armpmu_disable() local
634 armpmu->stop(); in armpmu_disable()
637 static void __init armpmu_init(struct arm_pmu *armpmu) in armpmu_init() argument
639 atomic_set(&armpmu->active_events, 0); in armpmu_init()
640 mutex_init(&armpmu->reserve_mutex); in armpmu_init()
642 armpmu->pmu = (struct pmu) { in armpmu_init()
654 int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type) in armpmu_register() argument
656 armpmu_init(armpmu); in armpmu_register()
657 return perf_pmu_register(&armpmu->pmu, name, type); in armpmu_register()
1379 static void __init cpu_pmu_init(struct arm_pmu *armpmu) in cpu_pmu_init() argument
1388 armpmu->get_hw_events = armpmu_get_cpu_events; in cpu_pmu_init()