X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fcommon%2Fsa1111.c;h=18ba42e694e4359ada561623ca7b1e68d4994ab7;hb=70790a4b5cd6c0291e5b1a2836e2832d46036ac6;hp=ee4b692e1d6882b1442ce8c9ed16b7e9d12947ca;hpb=413ba3004a4036bb5d6e52d2faa2b19cb13561dc;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)