[PATCH v4 1/4] backlight: introduce backlight_device_registered

Rafael J. Wysocki rjw at rjwysocki.net
Thu Oct 10 03:07:15 CEST 2013


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 at intel.com>
> >> Tested-by: Igor Gnatenko <i.gnatenko.brain at gmail.com>
> >> Tested-by: Yves-Alexis Perez <corsac at debian.org>
> >> Tested-by: Mika Westerberg <mika.westerberg at linux.intel.com>
> >> ---
> >>  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



More information about the dri-devel mailing list