Lines Matching refs:cpu_pmu
603 static void cpu_pmu_free_irq(struct arm_pmu *cpu_pmu) in cpu_pmu_free_irq() argument
606 struct platform_device *pmu_device = cpu_pmu->plat_device; in cpu_pmu_free_irq()
607 struct pmu_hw_events __percpu *hw_events = cpu_pmu->hw_events; in cpu_pmu_free_irq()
619 if (cpu_pmu->irq_affinity) in cpu_pmu_free_irq()
620 cpu = cpu_pmu->irq_affinity[i]; in cpu_pmu_free_irq()
622 if (!cpumask_test_and_clear_cpu(cpu, &cpu_pmu->active_irqs)) in cpu_pmu_free_irq()
631 static int cpu_pmu_request_irq(struct arm_pmu *cpu_pmu, irq_handler_t handler) in cpu_pmu_request_irq() argument
634 struct platform_device *pmu_device = cpu_pmu->plat_device; in cpu_pmu_request_irq()
635 struct pmu_hw_events __percpu *hw_events = cpu_pmu->hw_events; in cpu_pmu_request_irq()
665 if (cpu_pmu->irq_affinity) in cpu_pmu_request_irq()
666 cpu = cpu_pmu->irq_affinity[i]; in cpu_pmu_request_irq()
688 cpumask_set_cpu(cpu, &cpu_pmu->active_irqs); in cpu_pmu_request_irq()
721 static int cpu_pmu_init(struct arm_pmu *cpu_pmu) in cpu_pmu_init() argument
731 cpu_pmu->hotplug_nb.notifier_call = cpu_pmu_notify; in cpu_pmu_init()
732 err = register_cpu_notifier(&cpu_pmu->hotplug_nb); in cpu_pmu_init()
739 events->percpu_pmu = cpu_pmu; in cpu_pmu_init()
742 cpu_pmu->hw_events = cpu_hw_events; in cpu_pmu_init()
743 cpu_pmu->request_irq = cpu_pmu_request_irq; in cpu_pmu_init()
744 cpu_pmu->free_irq = cpu_pmu_free_irq; in cpu_pmu_init()
747 if (cpu_pmu->reset) in cpu_pmu_init()
748 on_each_cpu_mask(&cpu_pmu->supported_cpus, cpu_pmu->reset, in cpu_pmu_init()
749 cpu_pmu, 1); in cpu_pmu_init()
752 if (!platform_get_irq(cpu_pmu->plat_device, 0)) in cpu_pmu_init()
753 cpu_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT; in cpu_pmu_init()
762 static void cpu_pmu_destroy(struct arm_pmu *cpu_pmu) in cpu_pmu_destroy() argument
764 unregister_cpu_notifier(&cpu_pmu->hotplug_nb); in cpu_pmu_destroy()
765 free_percpu(cpu_pmu->hw_events); in cpu_pmu_destroy()