Received: by 10.223.176.46 with SMTP id f43csp2078894wra; Sun, 21 Jan 2018 10:45:17 -0800 (PST) X-Google-Smtp-Source: AH8x2250y/VnRCCIWxt47g8kIh6UNYclL/L6OQLsa+ODlvoUc2YHa1izcThn7pFiaT4afqwD1JN5 X-Received: by 10.98.57.27 with SMTP id g27mr6033774pfa.128.1516560317191; Sun, 21 Jan 2018 10:45:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516560317; cv=none; d=google.com; s=arc-20160816; b=oMZvlp+YCAjT2Q6i2W+2F9X/DifwFYzXSKm/lelLGfLjjqZyiqq6PpXv8+avUkNWKP U8aBP0P7n046LLe0Cy8V4K5AVH4BBGl+LlNJkRFV0esW5/EVIahZMWZdmj2vIjFyiOXg qBj4DaK3bjmWMTAwFY8iQ0zU4VTcVfv1LjgyAoV2ArT2vtt2lGqA+EAV329zi2dSq1oD Xyx/IfBIXnrnNMRRb4+ldLh0uh5LIARaeHNFkf32QZS2AgzlE3tDEDLC8J6bId5xcEX3 NZyUOJ3D9H/UO2t66oH2spl7Yn1gi+rSatx8yN88ZjA1cQVa1ajdffEdMllPYd8jOauv UWlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:to:subject :arc-authentication-results; bh=ypbbX1Tti9jcPwb7LpVDb1By8n2kK5j/z8JJYlb5NUQ=; b=yAggd6iM7LZn3hm8PS11IZq0t0+P97nmNOnP8qsJYzZXCZiyb7JkYaPE1GKREP1AjP +SS7fDjuuL9aI5a8/KBsxWvTJD1mqexDh4wj5tqj9XKt30w0cSwfzYXGgQDREnsTQ+M1 g6CaACDIr6tVbddX8nGMCq1bclmU8oiS+f6gx4sqOHP89kjTQxSk68aBYxdq/NPnXgVW 10Xhhri1iUgsItzWBhtrbF/qLRlCnNe+KT+ZnEfrpspsbQL7EexbF90VpI5FXrcLkknw HgnDBsnbs/nTHuLg4jE4d19Y5Op3J85DPY26F8rjIR97c/7BxI4JaDYzQXyEnSJrDlp3 iZkQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y20si14141717pfj.54.2018.01.21.10.45.03; Sun, 21 Jan 2018 10:45:17 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751380AbeAUSod (ORCPT + 99 others); Sun, 21 Jan 2018 13:44:33 -0500 Received: from smtp.domeneshop.no ([194.63.252.55]:54968 "EHLO smtp.domeneshop.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750912AbeAUSoc (ORCPT ); Sun, 21 Jan 2018 13:44:32 -0500 Received: from 211.81-166-168.customer.lyse.net ([81.166.168.211]:56905 helo=[192.168.10.157]) by smtp.domeneshop.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1edKbW-0000yI-UV; Sun, 21 Jan 2018 19:44:30 +0100 Subject: Re: [PATCH v17 03/10] video: backlight: Add of_find_backlight helper in backlight.c To: Meghana Madhyastha , Lee Jones , Daniel Thompson , Jingoo Han , Thierry Reding , Tomi Valkeinen , Daniel Vetter , Sean Paul , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <116d160ba78be2e6dcbdcb6855622bce67da9472.1516358037.git.meghana.madhyastha@gmail.com> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <3c9abe97-e383-5bf0-f1cb-dfec6e31d856@tronnes.org> Date: Sun, 21 Jan 2018 19:44:28 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <116d160ba78be2e6dcbdcb6855622bce67da9472.1516358037.git.meghana.madhyastha@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Den 19.01.2018 11.42, skrev Meghana Madhyastha: > Add of_find_backlight, a helper function which is a generic version > of tinydrm_of_find_backlight that can be used by other drivers to avoid > repetition of code and simplify things. > > Signed-off-by: Meghana Madhyastha > --- Reviewed-by: Noralf Trønnes > changes in v17: > -rebase with drm-misc-next > -convert st7735r callers from tinydrm specific helpers > to new generic backlight helpers > -remove select BACKLIGHT_LCD_SUPPORT > and select BACKLIGHT_CLASS_DEVICE from > tinydrm/Kconfig > > drivers/video/backlight/backlight.c | 43 +++++++++++++++++++++++++++++++++++++ > include/linux/backlight.h | 19 ++++++++++++++++ > 2 files changed, 62 insertions(+) > > diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c > index 8049e7656..553bf5c48 100644 > --- a/drivers/video/backlight/backlight.c > +++ b/drivers/video/backlight/backlight.c > @@ -580,6 +580,49 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node) > EXPORT_SYMBOL(of_find_backlight_by_node); > #endif > > +/** > + * of_find_backlight - Get backlight device > + * @dev: Device > + * > + * This function looks for a property named 'backlight' on the DT node > + * connected to @dev and looks up the backlight device. > + * > + * Call backlight_put() to drop the reference on the backlight device. > + * > + * Returns: > + * A pointer to the backlight device if found. > + * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight > + * device is found. > + * NULL if there's no backlight property. > + */ > +struct backlight_device *of_find_backlight(struct device *dev) > +{ > + struct backlight_device *bd = NULL; > + struct device_node *np; > + > + if (!dev) > + return NULL; > + > + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { > + np = of_parse_phandle(dev->of_node, "backlight", 0); > + if (np) { > + bd = of_find_backlight_by_node(np); > + of_node_put(np); > + if (!bd) > + return ERR_PTR(-EPROBE_DEFER); > + /* > + * Note: gpio_backlight uses brightness as > + * power state during probe > + */ > + if (!bd->props.brightness) > + bd->props.brightness = bd->props.max_brightness; > + } > + } > + > + return bd; > +} > +EXPORT_SYMBOL(of_find_backlight); > + > static void __exit backlight_class_exit(void) > { > class_destroy(backlight_class); > diff --git a/include/linux/backlight.h b/include/linux/backlight.h > index ace825e2c..ddc9bade4 100644 > --- a/include/linux/backlight.h > +++ b/include/linux/backlight.h > @@ -162,6 +162,16 @@ static inline int backlight_disable(struct backlight_device *bd) > return backlight_update_status(bd); > } > > +/** > + * backlight_put - Drop backlight reference > + * @bd: the backlight device to put > + */ > +static inline void backlight_put(struct backlight_device *bd) > +{ > + if (bd) > + put_device(&bd->dev); > +} > + > extern struct backlight_device *backlight_device_register(const char *name, > struct device *dev, void *devdata, const struct backlight_ops *ops, > const struct backlight_properties *props); > @@ -205,4 +215,13 @@ of_find_backlight_by_node(struct device_node *node) > } > #endif > > +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) > +struct backlight_device *of_find_backlight(struct device *dev); > +#else > +static inline struct backlight_device *of_find_backlight(struct device *dev) > +{ > + return NULL; > +} > +#endif > + > #endif