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

Greg KH greg at kroah.com
Fri Jul 8 14:22:35 EST 2011


On Thu, Jul 07, 2011 at 11:00:41PM -0500, Kumar Gala wrote:
> On some architectures we need to setup pdev_archdata before we add the
> device.  Waiting til a bus_notifier is too late since we might need the
> pdev_archdata in the bus notifier.  One example is setting up of dma_mask
> pointers such that it can be used in a bus_notifier.
> 
> We add weak noop version of arch_setup_pdev_archdata() and allow the arch
> code to override with access the full definitions of struct device,
> struct platform_device, and struct pdev_archdata.
> 
> Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
> ---
> v4:
> * Move to use a weak function based on comments from Greg
> v3:
> * Add more comments and add missing call to arch_setup_pdev_archdata in
>   platform_device_register
> v2:
> * Added license, and comments about arch_setup_pdev_archdata()
>   per Mike's comments
> 
>  drivers/base/platform.c         |   22 ++++++++++++++++++++++
>  include/linux/platform_device.h |    1 +
>  2 files changed, 23 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index 1c291af..060686d 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -32,6 +32,26 @@ struct device platform_bus = {
>  EXPORT_SYMBOL_GPL(platform_bus);
>  
>  /**
> + * arch_setup_pdev_archdata - Allow manipulation of archdata before its used
> + * @dev: platform device
> + *
> + * This is called before platform_device_add() such that any pdev_archdata may
> + * be setup before the platform_notifier is called.  So if a user needs to
> + * manipulate any relevant information in the pdev_archdata they can do:
> + *
> + * 	platform_devic_alloc()
> + * 	... manipulate ...
> + * 	platform_device_add()
> + *
> + * And if they don't care they can just call platform_device_register() and
> + * everything will just work out.
> + */
> +void __weak arch_setup_pdev_archdata(struct platform_device *pdev)
> +{
> +	return ;
> +}

The "return" isn't needed, nor is the extra ' ' there, right?  :)

Change that and you can take this through the ppc tree and add a:
	Acked-by: Greg Kroah-Hartman
to them.

thanks,

greg k-h


More information about the Linuxppc-dev mailing list