X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=arch%2Farm%2Fcommon%2Fsa1111.c;h=18ba42e694e4359ada561623ca7b1e68d4994ab7;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=ee4b692e1d6882b1442ce8c9ed16b7e9d12947ca;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index ee4b692e1..18ba42e69 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c @@ -610,7 +610,7 @@ out: * %-EBUSY physical address already marked in-use. * %0 successful. */ -static int __init +static int __sa1111_probe(struct device *me, struct resource *mem, int irq) { struct sa1111 *sachip; @@ -929,16 +929,15 @@ static int sa1111_resume(struct device *dev, u32 level) static int sa1111_probe(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); - struct resource *mem = NULL, *irq = NULL; - int i; + struct resource *mem; + int irq; - for (i = 0; i < pdev->num_resources; i++) { - if (pdev->resource[i].flags & IORESOURCE_MEM) - mem = &pdev->resource[i]; - if (pdev->resource[i].flags & IORESOURCE_IRQ) - irq = &pdev->resource[i]; - } - return __sa1111_probe(dev, mem, irq ? irq->start : NO_IRQ); + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!mem) + return -EINVAL; + irq = platform_get_irq(pdev, 0); + + return __sa1111_probe(dev, mem, irq); } static int sa1111_remove(struct device *dev)