Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757309Ab3JJAzf (ORCPT ); Wed, 9 Oct 2013 20:55:35 -0400 Received: from v094114.home.net.pl ([79.96.170.134]:63531 "HELO v094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1753264Ab3JJAzd (ORCPT ); Wed, 9 Oct 2013 20:55:33 -0400 From: "Rafael J. Wysocki" To: Aaron Lu Cc: linux-acpi@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Daniel Vetter , Matthew Garrett , Seth Forshee , Lee Chun-Yi , Richard Purdie , Igor Gnatenko , Yves-Alexis Perez , Felipe Contreras , Jani Nikula , Ben Jencks , Steven Newbury , James Hogan , Kamal Mostafa , Joerg Platte , Kalle Valo , Martin Steigerwald , =?ISO-8859-1?Q?J=F6rg?= Otte , Mike Galbraith , platform-driver-x86@vger.kernel.org, Mika Westerberg , Henrique de Moraes Holschuh Subject: Re: [PATCH v4 1/4] backlight: introduce backlight_device_registered Date: Thu, 10 Oct 2013 03:07:15 +0200 Message-ID: <5834530.Of4OZipDEA@vostro.rjw.lan> User-Agent: KMail/4.10.5 (Linux/3.11.0+; KDE/4.10.5; x86_64; ; ) In-Reply-To: <5255FAC5.2090105@intel.com> References: <1381214401-24672-1-git-send-email-aaron.lu@intel.com> <2202423.8QyNjoNEPr@vostro.rjw.lan> <5255FAC5.2090105@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2859 Lines: 78 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 > >> Tested-by: Igor Gnatenko > >> Tested-by: Yves-Alexis Perez > >> Tested-by: Mika Westerberg > >> --- > >> 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 > >> #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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/