Re: private field in led_classdev?

From: Richard Purdie
Date: Wed Mar 17 2010 - 08:50:05 EST


On Wed, 2010-03-10 at 12:01 +0100, Samuel Thibault wrote:
> Samuel Thibault, le Wed 10 Mar 2010 10:44:52 +0100, a Ãcrit :
> > Greg KH, le Tue 09 Mar 2010 18:54:11 -0800, a Ãcrit :
> > > What's wrong with using the private pointer in the struct device
> > > instead?
> >
> > Ah, right. In my case there is a struct device corresponding to the
> > actual input device. I hadn't realized that since registering a led
> > creates a new device, I have another private pointer which I can use.
>
> One issue, however, is that led_classdev_register() calls
> led_trigger_set_default(), which eventually calls the brightness_set
> hook, but the private field (platform_data) still hasn't been
> initialized, so the brightness_set hook has to abort setting the initial
> state. In my case, after led_classdev_register and setting
> platform_data, I can call the low level function by hand, it's just not
> very pretty...

That is a bit ugly :/.

It would probably make sense to pass that parameter to
led_classdev_register() but changing references to that function
everywhere will be a pain.

I'm tempted to make led_classdev_register() a wrapper around a
led_classdev_register_drvdata() function which takes an extra parameter.

I agree using the private pointer makes sense though.

Cheers,

Richard

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/