Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751626AbeAPRDj (ORCPT + 1 other); Tue, 16 Jan 2018 12:03:39 -0500 Received: from smtp.domeneshop.no ([194.63.252.55]:53210 "EHLO smtp.domeneshop.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751355AbeAPRCx (ORCPT ); Tue, 16 Jan 2018 12:02:53 -0500 Subject: Re: [PATCH v16 05/10] video: backlight: Add devres versions of of_find_backlight 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: <87984b3cb205b19d50f3093e34c6dc8d8179b768.1516098341.git.meghana.madhyastha@gmail.com> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <60567fff-a8ae-3388-fcc2-b2a33b37e1f1@tronnes.org> Date: Tue, 16 Jan 2018 18:02:50 +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: <87984b3cb205b19d50f3093e34c6dc8d8179b768.1516098341.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 List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Den 16.01.2018 11.34, skrev Meghana Madhyastha: > Add devm_of_find_backlight and the corresponding release > function because some drivers use devres versions of functions > for acquiring device resources. > > Signed-off-by: Meghana Madhyastha checkpatch complains: -:26: WARNING: Block comments should align the * on each line This one is text so might as well fix it: -:29: WARNING: line over 80 characters With that fixed: Reviewed-by: Noralf Trønnes > --- > drivers/video/backlight/backlight.c | 29 +++++++++++++++++++++++++++++ > include/linux/backlight.h | 7 +++++++ > 2 files changed, 36 insertions(+) > > diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c > index 7e4a5d77d..b3f76945f 100644 > --- a/drivers/video/backlight/backlight.c > +++ b/drivers/video/backlight/backlight.c > @@ -620,6 +620,35 @@ struct backlight_device *of_find_backlight(struct device *dev) > } > EXPORT_SYMBOL(of_find_backlight); > > +static void devm_backlight_put(void *data) > +{ > + backlight_put(data); > +} > + > +/** > + * devm_of_find_backlight - Resource-managed of_find_backlight() > + * @dev: Device > + * > + * Device managed version of of_find_backlight(). The reference on the backlight > + * device is automatically dropped on driver detach. > + */ > +struct backlight_device *devm_of_find_backlight(struct device *dev) > +{ > + struct backlight_device *bd; > + int ret; > + > + bd = of_find_backlight(dev); > + if (IS_ERR_OR_NULL(bd)) > + return bd; > + ret = devm_add_action(dev, devm_backlight_put, bd); > + if (ret) { > + backlight_put(bd); > + return ERR_PTR(ret); > + } > + return bd; > +} > +EXPORT_SYMBOL(devm_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 32ea510da..1d373f5a6 100644 > --- a/include/linux/backlight.h > +++ b/include/linux/backlight.h > @@ -215,11 +215,18 @@ of_find_backlight_by_node(struct device_node *node) > > #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) > struct backlight_device *of_find_backlight(struct device *dev); > +struct backlight_device *devm_of_find_backlight(struct device *dev); > #else > static inline struct backlight_device *of_find_backlight(struct device *dev) > { > return NULL; > } > + > +static inline struct backlight_device * > +devm_of_find_backlight(struct device *dev) > +{ > + return NULL; > +} > #endif > > #endif