[ARM] amba: fix amba device resources
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sun, 5 Jul 2009 21:39:08 +0000 (22:39 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 5 Jul 2009 21:39:08 +0000 (22:39 +0100)
AMBA device resources were being reported as:

10004000-10004fff : <BAD>

This is because dev_name() was returning NULL prior to device_register.
Ensure that the struct device is properly initialized, and the name is
set before adding it to the device tree.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/amba/bus.c

index 3d763fdf99b7d2409f8dbf425822ace5f1063cea..246650673010594d08c139551da1973318f78685 100644 (file)
@@ -207,6 +207,16 @@ int amba_device_register(struct amba_device *dev, struct resource *parent)
        void __iomem *tmp;
        int i, ret;
 
+       device_initialize(&dev->dev);
+
+       /*
+        * Copy from device_add
+        */
+       if (dev->dev.init_name) {
+               dev_set_name(&dev->dev, "%s", dev->dev.init_name);
+               dev->dev.init_name = NULL;
+       }
+
        dev->dev.release = amba_device_release;
        dev->dev.bus = &amba_bustype;
        dev->dev.dma_mask = &dev->dma_mask;
@@ -240,7 +250,7 @@ int amba_device_register(struct amba_device *dev, struct resource *parent)
                goto err_release;
        }
 
-       ret = device_register(&dev->dev);
+       ret = device_add(&dev->dev);
        if (ret)
                goto err_release;