All of lore.kernel.org
 help / color / mirror / Atom feed
From: fabio.estevam@freescale.com (Fabio Estevam)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] leds: provide helper to register "leds-gpio" devices
Date: Wed, 6 Apr 2011 08:45:19 -0300	[thread overview]
Message-ID: <4D9C524F.5050907@freescale.com> (raw)
In-Reply-To: <1302035048-25819-1-git-send-email-u.kleine-koenig@pengutronix.de>

Hi Uwe,

On 4/5/2011 5:24 PM, Uwe Kleine-K?nig wrote:
> This function makes a deep copy of the platform data to allow it to live
> in init memory.
> The definition cannot go into leds-gpio.c because it needs to be builtin
> to be usable by platforms.
> 
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>

Thanks,

Fabio Estevam

> ---
> changes since v1:
>  - don't add __init to the declaration of gpio_led_register_device
> 
>  drivers/leds/led-core.c |   27 ++++++++++++++++++++++++++-
>  include/linux/leds.h    |   12 ++++++++++++
>  2 files changed, 38 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
> index 016d19f..a9a762e 100644
> --- a/drivers/leds/led-core.c
> +++ b/drivers/leds/led-core.c
> @@ -2,8 +2,10 @@
>   * LED Class Core
>   *
>   * Copyright 2005-2006 Openedhand Ltd.
> + * Richard Purdie <rpurdie@openedhand.com>
>   *
> - * Author: Richard Purdie <rpurdie@openedhand.com>
> + * Copyright (C) 2009-2010 Pengutronix
> + * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License version 2 as
> @@ -16,6 +18,9 @@
>  #include <linux/module.h>
>  #include <linux/rwsem.h>
>  #include <linux/leds.h>
> +#include <linux/err.h>
> +#include <linux/platform_device.h>
> +#include <linux/slab.h>
>  #include "leds.h"
>  
>  DECLARE_RWSEM(leds_list_lock);
> @@ -23,3 +28,23 @@ EXPORT_SYMBOL_GPL(leds_list_lock);
>  
>  LIST_HEAD(leds_list);
>  EXPORT_SYMBOL_GPL(leds_list);
> +
> +struct platform_device *__init gpio_led_register_device(
> +                const struct gpio_led_platform_data *pdata)
> +{
> +	struct platform_device *ret = ERR_PTR(-ENOMEM);
> +	struct gpio_led_platform_data _pdata = *pdata;
> +	_pdata.leds = kmemdup(pdata->leds,
> +			pdata->num_leds * sizeof(*pdata->leds), GFP_KERNEL);
> +
> +	if (!_pdata.leds)
> +		return ERR_PTR(-ENOMEM);
> +
> +	ret = platform_device_register_resndata(NULL, "leds-gpio", -1,
> +			NULL, 0, &_pdata, sizeof(_pdata));
> +
> +	if (IS_ERR(ret))
> +		kfree(_pdata.leds);
> +
> +	return ret;
> +}
> diff --git a/include/linux/leds.h b/include/linux/leds.h
> index 61e0340..1c82006 100644
> --- a/include/linux/leds.h
> +++ b/include/linux/leds.h
> @@ -207,5 +207,17 @@ struct gpio_led_platform_data {
>  					unsigned long *delay_off);
>  };
>  
> +/**
> + * gpio_led_register_device - register a gpio-led device
> + * @pdata: the platform data used for the new device
> + *
> + * Use this function instead of platform_device_add()ing a static struct
> + * platform_device.
> + *
> + * Note: as pdata and pdata->leds is copied these usually can and should be
> + * __initdata.
> + */
> +struct platform_device *gpio_led_register_device(
> +		const struct gpio_led_platform_data *pdata);
>  
>  #endif		/* __LINUX_LEDS_H_INCLUDED */

WARNING: multiple messages have this Message-ID (diff)
From: Fabio Estevam <fabio.estevam@freescale.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Richard Purdie <rpurdie@rpsys.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	H Hartley Sweeten <hartleys@visionengravers.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Sascha Hauer <s.hauer@pengutronix.de>, <kernel@pengutronix.de>
Subject: Re: [PATCH v2] leds: provide helper to register "leds-gpio" devices
Date: Wed, 6 Apr 2011 08:45:19 -0300	[thread overview]
Message-ID: <4D9C524F.5050907@freescale.com> (raw)
In-Reply-To: <1302035048-25819-1-git-send-email-u.kleine-koenig@pengutronix.de>

Hi Uwe,

On 4/5/2011 5:24 PM, Uwe Kleine-König wrote:
> This function makes a deep copy of the platform data to allow it to live
> in init memory.
> The definition cannot go into leds-gpio.c because it needs to be builtin
> to be usable by platforms.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>

Thanks,

Fabio Estevam

> ---
> changes since v1:
>  - don't add __init to the declaration of gpio_led_register_device
> 
>  drivers/leds/led-core.c |   27 ++++++++++++++++++++++++++-
>  include/linux/leds.h    |   12 ++++++++++++
>  2 files changed, 38 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
> index 016d19f..a9a762e 100644
> --- a/drivers/leds/led-core.c
> +++ b/drivers/leds/led-core.c
> @@ -2,8 +2,10 @@
>   * LED Class Core
>   *
>   * Copyright 2005-2006 Openedhand Ltd.
> + * Richard Purdie <rpurdie@openedhand.com>
>   *
> - * Author: Richard Purdie <rpurdie@openedhand.com>
> + * Copyright (C) 2009-2010 Pengutronix
> + * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License version 2 as
> @@ -16,6 +18,9 @@
>  #include <linux/module.h>
>  #include <linux/rwsem.h>
>  #include <linux/leds.h>
> +#include <linux/err.h>
> +#include <linux/platform_device.h>
> +#include <linux/slab.h>
>  #include "leds.h"
>  
>  DECLARE_RWSEM(leds_list_lock);
> @@ -23,3 +28,23 @@ EXPORT_SYMBOL_GPL(leds_list_lock);
>  
>  LIST_HEAD(leds_list);
>  EXPORT_SYMBOL_GPL(leds_list);
> +
> +struct platform_device *__init gpio_led_register_device(
> +                const struct gpio_led_platform_data *pdata)
> +{
> +	struct platform_device *ret = ERR_PTR(-ENOMEM);
> +	struct gpio_led_platform_data _pdata = *pdata;
> +	_pdata.leds = kmemdup(pdata->leds,
> +			pdata->num_leds * sizeof(*pdata->leds), GFP_KERNEL);
> +
> +	if (!_pdata.leds)
> +		return ERR_PTR(-ENOMEM);
> +
> +	ret = platform_device_register_resndata(NULL, "leds-gpio", -1,
> +			NULL, 0, &_pdata, sizeof(_pdata));
> +
> +	if (IS_ERR(ret))
> +		kfree(_pdata.leds);
> +
> +	return ret;
> +}
> diff --git a/include/linux/leds.h b/include/linux/leds.h
> index 61e0340..1c82006 100644
> --- a/include/linux/leds.h
> +++ b/include/linux/leds.h
> @@ -207,5 +207,17 @@ struct gpio_led_platform_data {
>  					unsigned long *delay_off);
>  };
>  
> +/**
> + * gpio_led_register_device - register a gpio-led device
> + * @pdata: the platform data used for the new device
> + *
> + * Use this function instead of platform_device_add()ing a static struct
> + * platform_device.
> + *
> + * Note: as pdata and pdata->leds is copied these usually can and should be
> + * __initdata.
> + */
> +struct platform_device *gpio_led_register_device(
> +		const struct gpio_led_platform_data *pdata);
>  
>  #endif		/* __LINUX_LEDS_H_INCLUDED */




  reply	other threads:[~2011-04-06 11:45 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-04 17:06 [PATCH v2 1/2] ARM: mxc: Introduce imx_add_gpio_leds Fabio Estevam
2011-04-04 17:06 ` [PATCH v2 2/2] ARM: mx5/mx53_evk.c: Add LED support Fabio Estevam
2011-04-04 17:19 ` [PATCH v2 1/2] ARM: mxc: Introduce imx_add_gpio_leds Sascha Hauer
2011-04-04 17:42   ` Uwe Kleine-König
2011-04-04 17:52     ` Russell King - ARM Linux
2011-04-04 18:06       ` H Hartley Sweeten
2011-04-04 18:17         ` Russell King - ARM Linux
2011-04-04 21:52           ` H Hartley Sweeten
2011-04-05  7:30             ` Uwe Kleine-König
2011-04-05  7:40               ` Russell King - ARM Linux
2011-04-05  7:43                 ` Uwe Kleine-König
2011-04-05  7:47                   ` Russell King - ARM Linux
2011-04-05  7:51                     ` Uwe Kleine-König
2011-04-05  7:59                       ` Russell King - ARM Linux
2011-04-05  8:32                         ` Uwe Kleine-König
2011-04-05  8:43                           ` Russell King - ARM Linux
2011-04-05  8:46                             ` Uwe Kleine-König
2011-04-05  8:37               ` [PATCH] leds: provide helper to register "leds-gpio" devices Uwe Kleine-König
2011-04-05  8:37                 ` Uwe Kleine-König
2011-04-05 16:13                 ` Fabio Estevam
2011-04-05 16:13                   ` Fabio Estevam
2011-04-05 16:29                   ` Fabio Estevam
2011-04-05 16:29                     ` Fabio Estevam
2011-04-05 18:12                     ` H Hartley Sweeten
2011-04-05 18:12                       ` H Hartley Sweeten
2011-04-05 16:33                 ` Russell King - ARM Linux
2011-04-05 16:33                   ` Russell King - ARM Linux
2011-04-05 20:24                   ` [PATCH v2] " Uwe Kleine-König
2011-04-05 20:24                     ` Uwe Kleine-König
2011-04-06 11:45                     ` Fabio Estevam [this message]
2011-04-06 11:45                       ` Fabio Estevam
2011-04-06 11:52                     ` Richard Purdie
2011-04-06 11:52                       ` Richard Purdie
2011-04-06 12:33                       ` Uwe Kleine-König
2011-04-06 12:33                         ` Uwe Kleine-König
2011-04-06 13:38                         ` Richard Purdie
2011-04-06 13:38                           ` Richard Purdie
2011-04-11 20:35                           ` [PATCH v3] " Uwe Kleine-König
2011-04-11 20:35                             ` Uwe Kleine-König
2011-04-12 21:48                             ` Russell King - ARM Linux
2011-04-12 21:48                               ` Russell King - ARM Linux
2011-04-13  6:23                               ` Uwe Kleine-König
2011-04-13  6:23                                 ` Uwe Kleine-König
2011-05-06 21:03                                 ` Richard Purdie
2011-05-06 21:03                                   ` Richard Purdie
2011-05-09  8:00                                   ` Uwe Kleine-König
2011-05-09  8:00                                     ` Uwe Kleine-König
2011-04-26 15:08                             ` Uwe Kleine-König
2011-04-26 15:08                               ` Uwe Kleine-König
2011-05-06  8:25                               ` Uwe Kleine-König
2011-05-06  8:25                                 ` Uwe Kleine-König
2011-05-09 22:02                             ` Andrew Morton
2011-05-09 22:02                               ` Andrew Morton
2011-05-09 22:17                               ` Russell King - ARM Linux
2011-05-09 22:17                                 ` Russell King - ARM Linux
2011-05-10  6:45                                 ` Uwe Kleine-König
2011-05-10  6:45                                   ` Uwe Kleine-König
2011-05-10  7:31                               ` Uwe Kleine-König
2011-05-10  7:31                                 ` Uwe Kleine-König
2011-05-10  8:50                                 ` [PATCH v4] " Uwe Kleine-König
2011-05-10  8:50                                   ` Uwe Kleine-König
2011-05-10  8:50                                   ` [PATCH] [wip] ARM: imx: register "leds-gpio" device using new helper function Uwe Kleine-König
2011-05-10  8:50                                     ` Uwe Kleine-König
2011-05-10 22:26                                     ` H Hartley Sweeten
2011-05-10 22:26                                       ` H Hartley Sweeten
2011-05-11  6:22                                       ` Uwe Kleine-König
2011-05-11  6:22                                         ` Uwe Kleine-König
2011-05-10 23:02                                     ` H Hartley Sweeten
2011-05-10 23:02                                       ` H Hartley Sweeten
2011-04-19 23:19                   ` [PATCH] leds: provide helper to register "leds-gpio" devices Andrew Morton
2011-04-19 23:19                     ` Andrew Morton
2011-04-19 23:24                     ` Russell King - ARM Linux
2011-04-19 23:24                       ` Russell King - ARM Linux
2011-04-19 23:50                       ` Andrew Morton
2011-04-19 23:50                         ` Andrew Morton
2011-04-05 16:41               ` [PATCH v2 1/2] ARM: mxc: Introduce imx_add_gpio_leds H Hartley Sweeten

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D9C524F.5050907@freescale.com \
    --to=fabio.estevam@freescale.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.