• Mark Rutland's avatar
    drivers/perf: arm_pmu: manage interrupts per-cpu · 7ed98e01
    Mark Rutland authored
    When requesting or freeing interrupts, we use platform_get_irq() to find
    relevant irqs, backing this up with additional information in an
    optional irq_affinity table.
    
    This means that our irq request and free paths are tied to a
    platform_device, and our request path must jump through a number of
    hoops in order to determine the required affinity of each interrupt.
    
    Given that the affinity must be static, we can compute the affinity once
    up-front at probe time, simplifying the irq request and free paths. By
    recording interrupts in a per-cpu data structure, we simplify a few
    paths, and permit a subsequent rework of the request and free paths.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    [will: rename local nr_irqs variable to avoid conflict with global]
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    7ed98e01
arm_pmu.c 26.6 KB