genirq: Look-up trigger type if not specified by caller
authorJon Hunter <jonathanh@nvidia.com>
Tue, 7 Jun 2016 15:12:27 +0000 (16:12 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Mon, 13 Jun 2016 10:53:51 +0000 (11:53 +0100)
commit4b357daed698c95d6b5eacc1c3c4afa206071ba2
tree4c21558e4786382af8dcbc91b226e30b05c90638
parentb62b2cf5759b0c2206ddff92226f1eb8ac8f9f13
genirq: Look-up trigger type if not specified by caller

For some devices the IRQ trigger type for a device is read from
firmware, such as device-tree. The IRQ trigger type is typically read
when the mapping for IRQ is created, which is before the IRQ is
requested. Hence, the IRQ trigger type is programmed when mapping the
IRQ and not when requesting the IRQ.

Although this works for most cases, in order to support IRQ chips which
require runtime power management, which may not be accessible prior
to requesting the IRQ, it is desirable to look-up the IRQ trigger type
when it is requested. Therefore, if the IRQ trigger type is not
specified when __setup_irq() is called, look-up the saved IRQ trigger
type. This will allow us to defer the programming of the trigger type
from when the IRQ is mapped to when it is actually requested.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
kernel/irq/manage.c