summaryrefslogtreecommitdiff
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2014-05-13 08:40:43 +0200
committerLinus Walleij <linus.walleij@linaro.org>2014-05-13 08:40:43 +0200
commit09ffa131c773a041ecbc9ca4a8033493d69b89b9 (patch)
tree7b7713e74608ad8aeea6832890d9cf2e3a320bd6 /drivers/base/platform.c
parent29a1f2333e07bbbecb920cc78fd035fe8f53207a (diff)
parent89ca3b881987f5a4be4c5dbaa7f0df12bbdde2fd (diff)
Merge tag 'v3.15-rc4' into devel
Linux 3.15-rc4
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r--drivers/base/platform.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index e714709704e4..5b47210889e0 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -13,6 +13,7 @@
#include <linux/string.h>
#include <linux/platform_device.h>
#include <linux/of_device.h>
+#include <linux/of_irq.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/dma-mapping.h>
@@ -87,7 +88,11 @@ int platform_get_irq(struct platform_device *dev, unsigned int num)
return -ENXIO;
return dev->archdata.irqs[num];
#else
- struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num);
+ struct resource *r;
+ if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node)
+ return of_irq_get(dev->dev.of_node, num);
+
+ r = platform_get_resource(dev, IORESOURCE_IRQ, num);
return r ? r->start : -ENXIO;
#endif