Merge tag 'driver-core-3.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

Pull driver core fix from Greg KH:
"Here is a single driver core fix that reverts an older patch that has
been causing a number of reported problems with the platform devices.

This revert has been in linux-next for a while with no reported issues"

* tag 'driver-core-3.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
platform_get_irq: Revert to platform_get_resource if of_irq_get fails

Changed files
+14 -4
drivers
base
+14 -4
drivers/base/platform.c
··· 89 89 return dev->archdata.irqs[num]; 90 90 #else 91 91 struct resource *r; 92 - if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) 93 - return of_irq_get(dev->dev.of_node, num); 92 + if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) { 93 + int ret; 94 + 95 + ret = of_irq_get(dev->dev.of_node, num); 96 + if (ret >= 0 || ret == -EPROBE_DEFER) 97 + return ret; 98 + } 94 99 95 100 r = platform_get_resource(dev, IORESOURCE_IRQ, num); 96 101 ··· 138 133 { 139 134 struct resource *r; 140 135 141 - if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) 142 - return of_irq_get_byname(dev->dev.of_node, name); 136 + if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) { 137 + int ret; 138 + 139 + ret = of_irq_get_byname(dev->dev.of_node, name); 140 + if (ret >= 0 || ret == -EPROBE_DEFER) 141 + return ret; 142 + } 143 143 144 144 r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name); 145 145 return r ? r->start : -ENXIO;