Re: [PATCH 1/3] driver core: Add ability for arch code to setup pdev_archdata
From: Greg KH <gregkh@suse.de>
Date: 2010-08-05 18:05:12
Also in:
lkml
On Fri, Aug 06, 2010 at 01:43:51AM +1000, Stephen Rothwell wrote:
Hi Kumar, On Thu, 5 Aug 2010 10:15:45 -0500 Kumar Gala [off-list ref] wrote:quoted
--- 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
Yes, I'd prefer that method as well. thanks, greg k-h