Re: [PATCH 6/6] mach-ux500: remove intermediary add_platform_device*functions

From: Jamie Iles
Date: Mon Oct 17 2011 - 07:59:13 EST


Hi Lee,

On Mon, Oct 17, 2011 at 12:52:58PM +0100, Lee Jones wrote:
> These are no longer required since a 'parent' pointer is now
> passed to each registering device.
>
> Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
> ---
> arch/arm/mach-ux500/devices-common.c | 53 ----------------------------------
> arch/arm/mach-ux500/devices-common.h | 34 +++++++++------------
> arch/arm/mach-ux500/devices-db8500.h | 10 ++++--
> 3 files changed, 22 insertions(+), 75 deletions(-)
>
> diff --git a/arch/arm/mach-ux500/devices-common.c b/arch/arm/mach-ux500/devices-common.c
> index b8d9a99..170975f 100644
> --- a/arch/arm/mach-ux500/devices-common.c
> +++ b/arch/arm/mach-ux500/devices-common.c
> @@ -59,59 +59,6 @@ dbx500_add_amba_device(struct device *parent, const char *name,
> }
>
> static struct platform_device *
> -dbx500_add_platform_device(const char *name, int id, void *pdata,
> - struct resource *res, int resnum)
> -{
> - struct platform_device *dev;
> - int ret;
> -
> - dev = platform_device_alloc(name, id);
> - if (!dev)
> - return ERR_PTR(-ENOMEM);
> -
> - dev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
> - dev->dev.dma_mask = &dev->dev.coherent_dma_mask;
> -
> - ret = platform_device_add_resources(dev, res, resnum);
> - if (ret)
> - goto out_free;
> -
> - dev->dev.platform_data = pdata;
> -
> - ret = platform_device_add(dev);
> - if (ret)
> - goto out_free;
> -
> - return dev;
> -
> -out_free:
> - platform_device_put(dev);
> - return ERR_PTR(ret);
> -}
[...]
> diff --git a/arch/arm/mach-ux500/devices-common.h b/arch/arm/mach-ux500/devices-common.h
> index f8adff8..089371e 100644
> --- a/arch/arm/mach-ux500/devices-common.h
> +++ b/arch/arm/mach-ux500/devices-common.h
[...]
> -static inline struct platform_device *
> -dbx500_add_msp_i2s(int id, resource_size_t base, int irq,
> - struct msp_i2s_platform_data *pdata)
> -{
> - return dbx500_add_platform_device_4k1irq("MSP_I2S", id, base, irq,
> - pdata);
> + struct resource resources[] = {
> + DEFINE_RES_MEM(base, SZ_4K),
> + DEFINE_RES_IRQ(irq),
> + };
> +
> + return platform_device_register_resndata(parent, "nmk-i2c",
> + id, resources,
> + ARRAY_SIZE(resources),
> + pdata, sizeof(*pdata));
> }

I think you need platform_device_register_full() rather than
platform_device_register_resndata() here as dbx500_add_platform_device()
also set a dma mask which platform_device_register_resndata() doesn't
do. Otherwise a nice diffstat!

Jamie
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/