linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3] leds: provide helper to register "leds-gpio" devices
Date: Tue, 10 May 2011 08:45:04 +0200	[thread overview]
Message-ID: <20110510064504.GC29089@pengutronix.de> (raw)
In-Reply-To: <20110509221719.GE16919@n2100.arm.linux.org.uk>

On Mon, May 09, 2011 at 11:17:19PM +0100, Russell King - ARM Linux wrote:
> On Mon, May 09, 2011 at 03:02:54PM -0700, Andrew Morton wrote:
> > On Mon, 11 Apr 2011 22:35:57 +0200
> > Uwe Kleine-K__nig  <u.kleine-koenig@pengutronix.de> wrote:
> > > +#if defined(CONFIG_LED_REGISTER_GPIO)
> > > +struct platform_device *__init gpio_led_register_device(
> > > +		int id, const struct gpio_led_platform_data *pdata)
> > > +{
> > > +	struct platform_device *ret;
> > > +	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", id,
> > > +			NULL, 0, &_pdata, sizeof(_pdata));
> > > +	if (IS_ERR(ret))
> > > +		kfree(_pdata.leds);
> > > +
> > > +	return ret;
> > > +}
> > > +#endif
> ...
> > The comment doesn't document return values.
> 
> Two further comments.
> 
> 1. Why is this .c file always built, but _all_ the containing code is
> wrapped up in an ifdef?  It seems a waste of resources to compile a .c
> file with all code #ifdef'd out.
This was done because I thought that the .c file could contain other
registration routines later. Richard requested to use

	obj-$(CONFIG_LED_REGISTER_GPIO) += ...

then the #ifdef can go away, too. (@Andrew: Richard's ack was only for a
patch that used that. You took the patch anyhow and added his ack.)

> 2. What is the point of returning the platform device structure?  You've
> already registered it, so you must _not_ modify any data in that structure
> which may be used by the driver.  The only thing which you can safely do
> with it is unregister it.
pdev->device can be used as parent for another device. (OK, probably not
an led device. The origin of this function is the imx device
registration stuff, and all these functions return a platform device).
The other case where I needed to have the device created was to fill a
struct regulator_consumer_supply, but nowadays this is done using just
the name.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

  reply	other threads:[~2011-05-10  6:45 UTC|newest]

Thread overview: 47+ 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 16:13                 ` Fabio Estevam
2011-04-05 16:29                   ` Fabio Estevam
2011-04-05 18:12                     ` H Hartley Sweeten
2011-04-05 16:33                 ` Russell King - ARM Linux
2011-04-05 20:24                   ` [PATCH v2] " Uwe Kleine-König
2011-04-06 11:45                     ` Fabio Estevam
2011-04-06 11:52                     ` Richard Purdie
2011-04-06 12:33                       ` Uwe Kleine-König
2011-04-06 13:38                         ` Richard Purdie
2011-04-11 20:35                           ` [PATCH v3] " Uwe Kleine-König
2011-04-12 21:48                             ` Russell King - ARM Linux
2011-04-13  6:23                               ` Uwe Kleine-König
2011-05-06 21:03                                 ` Richard Purdie
2011-05-09  8:00                                   ` Uwe Kleine-König
2011-04-26 15:08                             ` Uwe Kleine-König
2011-05-06  8:25                               ` Uwe Kleine-König
2011-05-09 22:02                             ` Andrew Morton
2011-05-09 22:17                               ` Russell King - ARM Linux
2011-05-10  6:45                                 ` Uwe Kleine-König [this message]
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                                   ` [PATCH] [wip] ARM: imx: register "leds-gpio" device using new helper function Uwe Kleine-König
2011-05-10 22:26                                     ` H Hartley Sweeten
2011-05-11  6:22                                       ` Uwe Kleine-König
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:24                     ` Russell King - ARM Linux
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=20110510064504.GC29089@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).