This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / arm / common / sa1111.c
index 18ba42e..ee4b692 100644 (file)
@@ -610,7 +610,7 @@ out:
  *     %-EBUSY         physical address already marked in-use.
  *     %0              successful.
  */
-static int
+static int __init
 __sa1111_probe(struct device *me, struct resource *mem, int irq)
 {
        struct sa1111 *sachip;
@@ -929,15 +929,16 @@ 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;
-       int irq;
-
-       mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!mem)
-               return -EINVAL;
-       irq = platform_get_irq(pdev, 0);
+       struct resource *mem = NULL, *irq = NULL;
+       int i;
 
-       return __sa1111_probe(dev, mem, 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);
 }
 
 static int sa1111_remove(struct device *dev)