ARM: 7371/1: integrator: factor out dynamic amba device allocator
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 3 Apr 2012 10:59:50 +0000 (11:59 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 19 Apr 2012 18:31:34 +0000 (19:31 +0100)
Replace the local amba device allocator with the core code from
the bus driver.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-integrator/impd1.c

index 3e538da6cb1f756396314fbe71efee0221dd1874..e428f3ab15c75519e3aa7a3ceda3728228d1831e 100644 (file)
@@ -398,24 +398,16 @@ static int impd1_probe(struct lm_device *dev)
                struct impd1_device *idev = impd1_devs + i;
                struct amba_device *d;
                unsigned long pc_base;
+               char devname[32];
 
                pc_base = dev->resource.start + idev->offset;
-
-               d = amba_device_alloc(NULL, pc_base, SZ_4K);
-               if (!d)
+               snprintf(devname, 32, "lm%x:%5.5lx", dev->id, idev->offset >> 12);
+               d = amba_ahb_device_add(&dev->dev, devname, pc_base, SZ_4K,
+                                       dev->irq, dev->irq,
+                                       idev->platform_data, idev->id);
+               if (IS_ERR(d)) {
+                       dev_err(&dev->dev, "unable to register device: %ld\n", PTR_ERR(d));
                        continue;
-
-               dev_set_name(&d->dev, "lm%x:%5.5lx", dev->id, idev->offset >> 12);
-               d->dev.parent   = &dev->dev;
-               d->irq[0]       = dev->irq;
-               d->irq[1]       = dev->irq;
-               d->periphid     = idev->id;
-               d->dev.platform_data = idev->platform_data;
-
-               ret = amba_device_add(d, &dev->resource);
-               if (ret) {
-                       dev_err(&d->dev, "unable to register device: %d\n", ret);
-                       amba_device_put(d);
                }
        }