Received: by 10.223.176.46 with SMTP id f43csp835580wra; Fri, 19 Jan 2018 02:45:30 -0800 (PST) X-Google-Smtp-Source: ACJfBovLKHmf6yGcr1+/vxB9uffwaxkGJdJWuGsnBjcNx+IyMt2VE7tDDJRHsBK+tuGIWpGeffIc X-Received: by 10.98.59.149 with SMTP id w21mr38852359pfj.7.1516358730563; Fri, 19 Jan 2018 02:45:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516358730; cv=none; d=google.com; s=arc-20160816; b=Zx2vXLfwkELrVubuqAvM4mgCi+ZLtWxqQ+H4pKktOz30csEzmITRBqyK4W+9H+cITP 4ZRkpyfI53sQTicQt2Aau+nqzyoeWKrdFKuLYhJOKHnbE7nZxWpvDH8gIsIN4NsVV977 wk3eV0xnt1fwZl/6Zm9EXGxvI5EjoO+aWZsf9BYGpFpHri/Z3TWtqSfILCL/7PLgURlq l0zOyDUPUJG4skkuXYepdmfkBubYPnLCdi0bfzJ2OdKkiFirhO8+JSUQl0sopgcoNPMc f9EcK7fzSDOq1cx0AMGvfQpTqARgVSDrhFsE3kBYXpCbb/TSE4mhnGiLHrQ0CUO2g/vF UY9g== 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:to :from:date:dkim-signature:arc-authentication-results; bh=um/xDH01nJsF2duDueJRm0teO7xKvIDdZwbLiLP64DU=; b=oWmrl9DpbRZJRWkR2HddaYBF6Cy9nJ8DGUP8exwABWCD75CLUkAd9Db8SjIhn1VKGF GU0whbo/iAhGL1b/D3WO7MlqigAonXo0v6r4tsbrmSGBoAg/tMDGerwQBA/P3CRoIWCG 2kP5wpmp2SYfdVyB2ihdO86s/5OHGZKAz4AN7Eqlh+97VW+tKNuIjQcm7kZqgRAz0LWX g0R/EGl78AjY3FbuleT1qOi860PxVMXaYXVHfF0yssAb9XkfFTDa2vKI8/F7qe/5jzGJ sOUspHSeuTQ1ckbS48eaDjdGEV/aAUdJlIpZADfC3a0tK8SWG58RozUne10MM8NGlC0S oSWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=nOspN18E; 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=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s13-v6si730701plp.787.2018.01.19.02.45.16; Fri, 19 Jan 2018 02:45:30 -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=@gmail.com header.s=20161025 header.b=nOspN18E; 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=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755175AbeASKor (ORCPT + 99 others); Fri, 19 Jan 2018 05:44:47 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:41903 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755003AbeASKok (ORCPT ); Fri, 19 Jan 2018 05:44:40 -0500 Received: by mail-pf0-f196.google.com with SMTP id j3so1064807pfh.8 for ; Fri, 19 Jan 2018 02:44:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=um/xDH01nJsF2duDueJRm0teO7xKvIDdZwbLiLP64DU=; b=nOspN18EXqjyzKu75qJySaRxnYVBVgfdP/N8UuGurE2qRt2u9H07exfbhm2ctJBKzU wdv08yh6iZuoxE288vIUTcPuAGaV06uIP3CLCTbqFzOOEpCHOX/x4EyIXFEcT4ZVvWWq on+kZ5kEYyRi9AqVMunTpnXEhYMZQhOFyfKiM2HWrxGyuxkCrxcWk4cVlpAry0Uuj0Jc ewJ4TqTOz0nUh3IMnXV3ssUvqY3aWEnCZWddWQcp/g8QLUa0lfuP/erUyb58PFdUFGvo I6UjCxOp03MQoG4RQ3y5e/v/LpLinqJE5vSC3SIwfGd2uPOOe57cmoFfWYoktzCs11KJ ZO4Q== 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:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=um/xDH01nJsF2duDueJRm0teO7xKvIDdZwbLiLP64DU=; b=DRWa3bDAqnAimOdyKWCT3Z74juyFSJbp02WB+avG+xJUKe2G2Pzvd/JOC4zXuTVG3F EXDrUkil7S2tRXV1qEdCFx+ubPX73SK0SZyz7KiREAV0bApQDnksKmU9MFsytbZUqE8Q qgSsqA5xu7YE3Pr1ms0WoMNepm0HjD/396QWz1xcr8cD9JvrxVbzwqbb1tjyBUGNU9fl C5scKBu9NVU/8uXKU/pqCZIhMQoym5B6jvllTKsCJuk3Y69U7PTojR35KVl4+nb9dO57 I8Vim1iSjfrmDrL6UKFiQWkENTEp7vfb+jew2dTLBLysolMQHmF3r0TSW+TWnlBvDSci iJaQ== X-Gm-Message-State: AKGB3mL3ORaHfhSywXReaPap37NW1jgdI4V0ie8Id55isnkiOKUptjUL X7cxEBPy5CE65udGXWtB3rQ= X-Received: by 10.99.96.203 with SMTP id u194mr38381525pgb.167.1516358679706; Fri, 19 Jan 2018 02:44:39 -0800 (PST) Received: from raspberrypi ([122.171.87.79]) by smtp.gmail.com with ESMTPSA id d5sm19538805pfk.2.2018.01.19.02.44.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 19 Jan 2018 02:44:38 -0800 (PST) Date: Fri, 19 Jan 2018 10:44:33 +0000 From: Meghana Madhyastha To: Lee Jones , Daniel Thompson , 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: [PATCH v17 05/10] video: backlight: Add devres versions of of_find_backlight Message-ID: <021f8fecfa3f374dc5dcb70fb07a6f6b019bea7b.1516358037.git.meghana.madhyastha@gmail.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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 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 --- changes in v17: -fix checkpath errors/warnings -rename devm_backlight_put to devm_backlight_release drivers/video/backlight/backlight.c | 30 ++++++++++++++++++++++++++++++ include/linux/backlight.h | 7 +++++++ 2 files changed, 37 insertions(+) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 553bf5c48..deb824bef 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -623,6 +623,36 @@ struct backlight_device *of_find_backlight(struct device *dev) } EXPORT_SYMBOL(of_find_backlight); +static void devm_backlight_release(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_release, 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 ddc9bade4..2baab6f38 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -217,11 +217,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 -- 2.11.0