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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel