Re: [PATCH v4 1/4] backlight: introduce backlight_device_registered

From: Rafael J. Wysocki
Date: Wed Oct 09 2013 - 20:55:39 EST


On Thursday, October 10, 2013 08:54:29 AM Aaron Lu wrote:
> On 10/10/2013 08:25 AM, Rafael J. Wysocki wrote:
> > On Tuesday, October 08, 2013 02:39:58 PM Aaron Lu wrote:
> >> Introduce a new API for modules to query if a specific type of backlight
> >> device has been registered. This is useful for some backlight device
> >> provider module(e.g. ACPI video) to know if a native control
> >> interface(e.g. the interface created by i915) is available and then do
> >> things accordingly(e.g. avoid register its own on Win8 systems).
> >>
> >> Signed-off-by: Aaron Lu <aaron.lu@xxxxxxxxx>
> >> Tested-by: Igor Gnatenko <i.gnatenko.brain@xxxxxxxxx>
> >> Tested-by: Yves-Alexis Perez <corsac@xxxxxxxxxx>
> >> Tested-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> >> ---
> >> drivers/video/backlight/backlight.c | 31 +++++++++++++++++++++++++++++++
> >> include/linux/backlight.h | 4 ++++
> >> 2 files changed, 35 insertions(+)
> >>
> >> diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> >> index 94a403a..bf2d71d 100644
> >> --- a/drivers/video/backlight/backlight.c
> >> +++ b/drivers/video/backlight/backlight.c
> >> @@ -21,6 +21,9 @@
> >> #include <asm/backlight.h>
> >> #endif
> >>
> >> +static struct list_head bd_list_head;
> >> +static struct mutex bd_list_mutex;
> >
> > I'd prefer these two things to be called backlight_dev_list and
> > backlight_dev_list_mutex, respectively.
>
> OK.
>
> >
> >> +
> >> static const char *const backlight_types[] = {
> >> [BACKLIGHT_RAW] = "raw",
> >> [BACKLIGHT_PLATFORM] = "platform",
> >> @@ -349,10 +352,32 @@ struct backlight_device *backlight_device_register(const char *name,
> >> mutex_unlock(&pmac_backlight_mutex);
> >> #endif
> >>
> >> + mutex_lock(&bd_list_mutex);
> >> + list_add(&new_bd->entry, &bd_list_head);
> >> + mutex_unlock(&bd_list_mutex);
> >> +
> >> return new_bd;
> >> }
> >> EXPORT_SYMBOL(backlight_device_register);
> >>
> >> +bool backlight_device_registered(enum backlight_type type)
> >> +{
> >> + bool found = false;
> >> + struct backlight_device *bd;
> >> +
> >> + mutex_lock(&bd_list_mutex);
> >> + list_for_each_entry(bd, &bd_list_head, entry) {
> >> + if (bd->props.type == type) {
> >> + found = true;
> >> + break;
> >> + }
> >> + }
> >
> > Isn't it useful to be able to register more than one backlight device of the
> > same type sometimes?
>
> I think so for some kind of computers. OTOH, the above function should
> be enough for the problem we are solving here, if someday we need to
> differentiate, we can enhance the code then.

OK

--
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/