aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
authorAgustin Vega-Frias <[email protected]>2017-02-02 23:23:58 +0000
committerMarc Zyngier <[email protected]>2017-02-03 15:03:48 +0000
commitd44fa3d46079dc095c1346fa6e5bc96dca1ead41 (patch)
tree6c2880d745b366a4a024e3048e6727873a43b773 /drivers/base/platform.c
parentACPI: Generic GSI: Do not attempt to map non-GSI IRQs during bus scan (diff)
downloadkernel-d44fa3d46079dc095c1346fa6e5bc96dca1ead41.tar.gz
kernel-d44fa3d46079dc095c1346fa6e5bc96dca1ead41.zip
ACPI: Add support for ResourceSource/IRQ domain mapping
ACPI extended IRQ resources may contain a ResourceSource to specify an alternate interrupt controller. Introduce acpi_irq_get and use it to implement ResourceSource/IRQ domain mapping. The new API is similar to of_irq_get and allows re-initialization of a platform resource from the ACPI extended IRQ resource, and provides proper behavior for probe deferral when the domain is not yet present when called. Acked-by: Rafael J. Wysocki <[email protected]> Acked-by: Lorenzo Pieralisi <[email protected]> Reviewed-by: Hanjun Guo <[email protected]> Tested-by: Hanjun Guo <[email protected]> Signed-off-by: Agustin Vega-Frias <[email protected]> Signed-off-by: Marc Zyngier <[email protected]>
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r--drivers/base/platform.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index c4af00385502..647e4761dbf3 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -102,6 +102,16 @@ int platform_get_irq(struct platform_device *dev, unsigned int num)
}
r = platform_get_resource(dev, IORESOURCE_IRQ, num);
+ if (has_acpi_companion(&dev->dev)) {
+ if (r && r->flags & IORESOURCE_DISABLED) {
+ int ret;
+
+ ret = acpi_irq_get(ACPI_HANDLE(&dev->dev), num, r);
+ if (ret)
+ return ret;
+ }
+ }
+
/*
* The resources may pass trigger flags to the irqs that need
* to be set up. It so happens that the trigger flags for