Received: by 10.223.176.46 with SMTP id f43csp855754wra; Fri, 19 Jan 2018 03:07:20 -0800 (PST) X-Google-Smtp-Source: ACJfBosTFc0xh7KvzmnREvDUl2lrrWAkbmL7bwLe6ITY45yNWErocuywrnk293d3MrVvM3hI84EM X-Received: by 2002:a17:902:a610:: with SMTP id u16-v6mr1403133plq.401.1516360040720; Fri, 19 Jan 2018 03:07:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516360040; cv=none; d=google.com; s=arc-20160816; b=bdH2JWnZh0gO+4XLLe8vJ9dKYyRwrc98i22i1QVo1JS7cT0xzaeBdrGAAmHtab0cnI 4q4yKSSLGEchUq0H+Py5PG1HI5716YgFWGgU9SlAFtQU++OifXBzIdZDHFraYxEPMQYU ZF1apBpElPIL6NtkLyhrU167w/xaUpDxt2b+g78P3oZrLioPOZWBYB4LJqBQQvD59nt8 VxsdBxX4YI1dMyOPf44yiveZITWSuEuzaSez/NitySjEj194e3KLgqbbsnS5hLU2M+mG hdFEqxMnC/HyIqlR+wKY1a+QOTAbQjxzIt3dlKkMwy/fPfXFXiVY7bvg3jUMrgyCS07g H/FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=RSM8LJTbD6Y0ELWmb0D8UFzrChQKZjRCQ+YDo6Xcgd8=; b=hwfvMxh9eU7cukxDew+GRKzhNykgYSmF/sGq4yfqaQqSDCv+6FKdjPbsTI6dDkvPQu BK1NqAqbZXAVrYL0WcE6v211USQ9b9FPmkhiMDbenId5BUia6q3/FEFxoTrNIM0lkpgo 2rwb1sLeC8c2jnL2GFjEYQHgxUxAsisccgl/xXea1IjWzTNkbfEVUanvNAVV7ndHsvJa uUfxumkIHyq9O4hdQO1WKD3fMcFxilQUSqq7ggUPofUI4bjoCRLf4WUBsUoqJqDFUN8N 9rVuZ6a5WScqzKxK7K3X4H7aNXyhypROnQcbGLDLYpilg65V+HgTN816K1W+wZEwUrhE I0KQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=iqrUI/y8; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y11-v6si749292plg.242.2018.01.19.03.07.06; Fri, 19 Jan 2018 03:07:20 -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; dkim=pass header.i=@linaro.org header.s=google header.b=iqrUI/y8; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755256AbeASLGI (ORCPT + 99 others); Fri, 19 Jan 2018 06:06:08 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:40092 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755132AbeASLGA (ORCPT ); Fri, 19 Jan 2018 06:06:00 -0500 Received: by mail-wm0-f65.google.com with SMTP id v123so2713574wmd.5 for ; Fri, 19 Jan 2018 03:06:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=RSM8LJTbD6Y0ELWmb0D8UFzrChQKZjRCQ+YDo6Xcgd8=; b=iqrUI/y8EKZJk7HGEweNcxT98JgySjtiX14PBXhFu/Tgi9CVtqnxyyGfH0vigTPOau 12OeKZChVlrIzlypFLItahgs6HY8k7FSOzByoeM7RC5buob2HS7AmRkKuOe6Gs0JZltI F0TeZonnBmjB627dbNTDWWiVzkGWfFvQ4Zlfk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=RSM8LJTbD6Y0ELWmb0D8UFzrChQKZjRCQ+YDo6Xcgd8=; b=mbc8CizEIfxy4OrotThNc4giThmcXfql1N1BN0pzIDqxt1ok+2jj+4JbcZTfU9MyRT SSeGJ1umrr9ZclMGdbj6XpNxm3HGb9DEPNYPSOI0FEZzJJL4yRyfBtQXXJ1x6ZkOXLyr c6SMWzxjBBE/UjyeUssZJiDKT+F+WPKNAV2/+H/EDm/55a+vaVX7uxknvCmG0ryWB/+O /dg/ob+CHT5+oEksb4whSz7FxScAoSLSMMZdaLF5XziW/TyTE/kBu/oDbvHhjE/TEwiN qBSwiSEmTc/fUilc/N8fJ9OpVTvrFvSSsr7RuoAkWComXL+fHhIWBMAcrkVABh6BnlLA bzlw== X-Gm-Message-State: AKwxytdwkwKKPR00RO9qodxGtyqANoe5rnCr0osk+oQJxwnxOrUNFJsI LoGuH9oP3n1Zcev6G1O1aJmpWPXmiGA= X-Received: by 10.28.31.212 with SMTP id f203mr6898340wmf.122.1516359959402; Fri, 19 Jan 2018 03:05:59 -0800 (PST) Received: from oak.lan (cpc141214-aztw34-2-0-cust773.18-1.cable.virginm.net. [86.9.19.6]) by smtp.gmail.com with ESMTPSA id x203sm4019869wmd.11.2018.01.19.03.05.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 19 Jan 2018 03:05:58 -0800 (PST) Date: Fri, 19 Jan 2018 11:05:56 +0000 From: Daniel Thompson To: Meghana Madhyastha Cc: Lee Jones , Jingoo Han , Thierry Reding , Noralf =?iso-8859-1?Q?Tr=F8nnes?= , Tomi Valkeinen , Daniel Vetter , Sean Paul , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v17 03/10] video: backlight: Add of_find_backlight helper in backlight.c Message-ID: <20180119110556.q2z47isvdcnly2e2@oak.lan> References: <116d160ba78be2e6dcbdcb6855622bce67da9472.1516358037.git.meghana.madhyastha@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <116d160ba78be2e6dcbdcb6855622bce67da9472.1516358037.git.meghana.madhyastha@gmail.com> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 19, 2018 at 10:42:15AM +0000, Meghana Madhyastha wrote: > 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 Didn't I already ack this one? > --- > 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 > -- > 2.11.0 >