[PATCH 1/3] driver core: Add ability for arch code to setup pdev_archdata

Kumar Gala galak at kernel.crashing.org
Fri Aug 6 02:14:48 EST 2010


On Aug 5, 2010, at 10:43 AM, Stephen Rothwell wrote:

> Hi Kumar,
> 
> On Thu,  5 Aug 2010 10:15:45 -0500 Kumar Gala <galak at kernel.crashing.org> wrote:
>> 
>> --- a/drivers/base/platform.c
>> +++ b/drivers/base/platform.c
>> @@ -19,6 +19,7 @@
>> #include <linux/err.h>
>> #include <linux/slab.h>
>> #include <linux/pm_runtime.h>
>> +#include <asm/platform_device.h>
>> 
>> #include "base.h"
>> 
>> @@ -170,6 +171,9 @@ struct platform_device *platform_device_alloc(const char *name, int id)
>> 		pa->pdev.id = id;
>> 		device_initialize(&pa->pdev.dev);
>> 		pa->pdev.dev.release = platform_device_release;
>> +#ifdef ARCH_HAS_PDEV_ARCHDATA_SETUP
>> +		arch_setup_pdev_archdata(&pa->pdev);
>> +#endif
>> 	}
>> 
>> 	return pa ? &pa->pdev : NULL;
>> diff --git a/include/asm-generic/platform_device.h b/include/asm-generic/platform_device.h
>> new file mode 100644
>> index 0000000..64806dc
>> --- /dev/null
>> +++ b/include/asm-generic/platform_device.h
>> @@ -0,0 +1,7 @@
>> +#ifndef __ASM_GENERIC_PLATFORM_DEVICE_H_
>> +#define __ASM_GENERIC_PLATFORM_DEVICE_H_
>> +/*
>> + * an architecture can override to define arch_setup_pdev_archdata
>> + */
>> +
>> +#endif /* __ASM_GENERIC_PLATFORM_DEVICE_H_ */
> 
> Why not do:
> 
> #include <linux/platform_device.h>
> 
> #ifndef arch_setup_pdev_archdata
> static inline void arch_setup_pdev_archdata(struct platform_device *pdev) { }
> #endif
> 
> in asm-generic/platform-device.h
> 
> and the the call in platform_device_alloc() can be unconditional.  If the arch wants to override arch_setup_pdev_archdata, it defines the function and then does
> 
> #define arch_setup_pdev_archdata arch_setup_pdev_archdata
> 
> before still including asm-generic/platform_device.h

I've got no issues with the style change.

- k


More information about the Linuxppc-dev mailing list