Commit d0643aa1 authored by Rob Herring's avatar Rob Herring Committed by Jeff Garzik

pata_of_platform: remove direct dependency on OF_IRQ

CONFIG_OF_IRQ is not available on some platforms and using of_irq_*
breaks the build. Since resources are already populated in the platform
device, get the irq from there instead.
Reported-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarRob Herring <rob.herring@calxeda.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 99c8ea3e
...@@ -820,7 +820,7 @@ config PATA_PLATFORM ...@@ -820,7 +820,7 @@ config PATA_PLATFORM
config PATA_OF_PLATFORM config PATA_OF_PLATFORM
tristate "OpenFirmware platform device PATA support" tristate "OpenFirmware platform device PATA support"
depends on PATA_PLATFORM && OF && OF_IRQ depends on PATA_PLATFORM && OF
help help
This option enables support for generic directly connected ATA This option enables support for generic directly connected ATA
devices commonly found on embedded systems with OpenFirmware devices commonly found on embedded systems with OpenFirmware
......
...@@ -12,8 +12,7 @@ ...@@ -12,8 +12,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_irq.h> #include <linux/platform_device.h>
#include <linux/of_platform.h>
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
static int __devinit pata_of_platform_probe(struct platform_device *ofdev) static int __devinit pata_of_platform_probe(struct platform_device *ofdev)
...@@ -22,7 +21,7 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev) ...@@ -22,7 +21,7 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev)
struct device_node *dn = ofdev->dev.of_node; struct device_node *dn = ofdev->dev.of_node;
struct resource io_res; struct resource io_res;
struct resource ctl_res; struct resource ctl_res;
struct resource irq_res; struct resource *irq_res;
unsigned int reg_shift = 0; unsigned int reg_shift = 0;
int pio_mode = 0; int pio_mode = 0;
int pio_mask; int pio_mask;
...@@ -51,11 +50,9 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev) ...@@ -51,11 +50,9 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev)
} }
} }
ret = of_irq_to_resource(dn, 0, &irq_res); irq_res = platform_get_resource(ofdev, IORESOURCE_IRQ, 0);
if (!ret) if (irq_res)
irq_res.start = irq_res.end = 0; irq_res->flags = 0;
else
irq_res.flags = 0;
prop = of_get_property(dn, "reg-shift", NULL); prop = of_get_property(dn, "reg-shift", NULL);
if (prop) if (prop)
...@@ -75,7 +72,7 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev) ...@@ -75,7 +72,7 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev)
pio_mask = 1 << pio_mode; pio_mask = 1 << pio_mode;
pio_mask |= (1 << pio_mode) - 1; pio_mask |= (1 << pio_mode) - 1;
return __pata_platform_probe(&ofdev->dev, &io_res, &ctl_res, &irq_res, return __pata_platform_probe(&ofdev->dev, &io_res, &ctl_res, irq_res,
reg_shift, pio_mask); reg_shift, pio_mask);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment