mirror of https://github.com/torvalds/linux.git
perf: arm_pmu: Convert to the new interrupt affinity retrieval API
Now that the relevant interrupt controllers are equipped with a callback returning the affinity of per-CPU interrupts, switch the OF side of the ARM PMU driver over to this new method. Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Will Deacon <will@kernel.org> Reviewed-by: Jinjie Ruan <ruanjinjie@huawei.com> Link: https://patch.msgid.link/20251020122944.3074811-9-maz@kernel.org
This commit is contained in:
parent
541454dd20
commit
663783e001
|
|
@ -42,14 +42,13 @@ static int probe_current_pmu(struct arm_pmu *pmu,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int pmu_parse_percpu_irq(struct arm_pmu *pmu, int irq)
|
||||
static int pmu_parse_percpu_irq(struct arm_pmu *pmu, int irq,
|
||||
const struct cpumask *affinity)
|
||||
{
|
||||
int cpu, ret;
|
||||
struct pmu_hw_events __percpu *hw_events = pmu->hw_events;
|
||||
int cpu;
|
||||
|
||||
ret = irq_get_percpu_devid_partition(irq, &pmu->supported_cpus);
|
||||
if (ret)
|
||||
return ret;
|
||||
cpumask_copy(&pmu->supported_cpus, affinity);
|
||||
|
||||
for_each_cpu(cpu, &pmu->supported_cpus)
|
||||
per_cpu(hw_events->irq, cpu) = irq;
|
||||
|
|
@ -115,9 +114,12 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)
|
|||
}
|
||||
|
||||
if (num_irqs == 1) {
|
||||
int irq = platform_get_irq(pdev, 0);
|
||||
const struct cpumask *affinity;
|
||||
int irq;
|
||||
|
||||
irq = platform_get_irq_affinity(pdev, 0, &affinity);
|
||||
if ((irq > 0) && irq_is_percpu_devid(irq))
|
||||
return pmu_parse_percpu_irq(pmu, irq);
|
||||
return pmu_parse_percpu_irq(pmu, irq, affinity);
|
||||
}
|
||||
|
||||
if (nr_cpu_ids != 1 && !pmu_has_irq_affinity(dev->of_node))
|
||||
|
|
|
|||
Loading…
Reference in New Issue