Messages in this thread | | | Subject | Re: private field in led_classdev? | From | Richard Purdie <> | Date | Wed, 17 Mar 2010 12:48:37 +0000 |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |