Messages in this thread | | | Date | Fri, 6 Aug 2010 01:43:51 +1000 | From | Stephen Rothwell <> | Subject | Re: [PATCH 1/3] driver core: Add ability for arch code to setup pdev_archdata |
| |
Hi Kumar,
On Thu, 5 Aug 2010 10:15:45 -0500 Kumar Gala <galak@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
-- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [unhandled content-type:application/pgp-signature] | |