diff options
Diffstat (limited to 'arch/arm/mach-integrator/impd1.c')
| -rw-r--r-- | arch/arm/mach-integrator/impd1.c | 9 | 
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c index 8cbb75a96bd..3e538da6cb1 100644 --- a/arch/arm/mach-integrator/impd1.c +++ b/arch/arm/mach-integrator/impd1.c @@ -401,24 +401,21 @@ static int impd1_probe(struct lm_device *dev)  		pc_base = dev->resource.start + idev->offset; -		d = kzalloc(sizeof(struct amba_device), GFP_KERNEL); +		d = amba_device_alloc(NULL, pc_base, SZ_4K);  		if (!d)  			continue;  		dev_set_name(&d->dev, "lm%x:%5.5lx", dev->id, idev->offset >> 12);  		d->dev.parent	= &dev->dev; -		d->res.start	= dev->resource.start + idev->offset; -		d->res.end	= d->res.start + SZ_4K - 1; -		d->res.flags	= IORESOURCE_MEM;  		d->irq[0]	= dev->irq;  		d->irq[1]	= dev->irq;  		d->periphid	= idev->id;  		d->dev.platform_data = idev->platform_data; -		ret = amba_device_register(d, &dev->resource); +		ret = amba_device_add(d, &dev->resource);  		if (ret) {  			dev_err(&d->dev, "unable to register device: %d\n", ret); -			kfree(d); +			amba_device_put(d);  		}  	}  |