diff options
| author | Linus Walleij <[email protected]> | 2019-08-08 14:32:37 +0200 |
|---|---|---|
| committer | Linus Walleij <[email protected]> | 2019-08-15 09:44:19 +0200 |
| commit | fdd61a013a24f2699aec1a446f0168682b6f9ec4 (patch) | |
| tree | d41d0fd49bc5b60af4347a97156be0514077cac3 /tools/perf/scripts/python/bin/stackcollapse-report | |
| parent | 7a637fd32b234d4605fdf3c75c622b0ca1ce8cfb (diff) | |
gpio: Add support for hierarchical IRQ domains
Hierarchical IRQ domains can be used to stack different IRQ
controllers on top of each other.
Bring hierarchical IRQ domains into the GPIOLIB core with the
following basic idea:
Drivers that need their interrupts handled hierarchically
specify a callback to translate the child hardware IRQ and
IRQ type for each GPIO offset to a parent hardware IRQ and
parent hardware IRQ type.
Users have to pass the callback, fwnode, and parent irqdomain
before calling gpiochip_irqchip_add().
We use the new method of just filling in the struct
gpio_irq_chip before adding the gpiochip for all hierarchical
irqchips of this type.
The code path for device tree is pretty straight-forward,
while the code path for old boardfiles or anything else will
be more convoluted requireing upfront allocation of the
interrupts when adding the chip.
One specific use-case where this can be useful is if a power
management controller has top-level controls for wakeup
interrupts. In such cases, the power management controller can
be a parent to other interrupt controllers and program
additional registers when an IRQ has its wake capability
enabled or disabled.
The hierarchical irqchip helper code will only be available
when IRQ_DOMAIN_HIERARCHY is selected to GPIO chips using
this should select or depend on that symbol. When using
hierarchical IRQs, the parent interrupt controller must
also be hierarchical all the way up to the top interrupt
controller wireing directly into the CPU, so on systems
that do not have this we can get rid of all the extra
code for supporting hierarchical irqs.
Cc: Thomas Gleixner <[email protected]>
Cc: Marc Zyngier <[email protected]>
Cc: Lina Iyer <[email protected]>
Cc: Jon Hunter <[email protected]>
Cc: Sowjanya Komatineni <[email protected]>
Cc: Bitan Biswas <[email protected]>
Cc: [email protected]
Cc: David Daney <[email protected]>
Cc: Masahiro Yamada <[email protected]>
Cc: Brian Masney <[email protected]>
Signed-off-by: Thierry Reding <[email protected]>
Signed-off-by: Brian Masney <[email protected]>
Co-developed-by: Brian Masney <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-report')
0 files changed, 0 insertions, 0 deletions