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: David S. Miller <davem@davemloft.net>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
Rob Herring 2011-12-22 15:07:00 -05:00 коммит произвёл Jeff Garzik
Родитель 99c8ea3e57
Коммит d0643aa166
2 изменённых файлов: 7 добавлений и 10 удалений

Просмотреть файл

@ -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 @@
#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)
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)
} }
} }
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)
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);
} }