From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH v3 2/2] drm/tinydrm: Add devres versions of drm_of_find_backlight Date: Fri, 29 Sep 2017 14:20:16 +0200 Message-ID: <463f06a5-5e80-6781-19b0-7f228f9e040b@tronnes.org> References: <6a467fc9-547e-2469-74fb-92384d2cae71@tronnes.org> <20170929031746.GA9859@meghana-HP-Pavilion-Notebook> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7BB226E0E8 for ; Fri, 29 Sep 2017 12:20:20 +0000 (UTC) In-Reply-To: <20170929031746.GA9859@meghana-HP-Pavilion-Notebook> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Meghana Madhyastha , daniel@ffwll.ch, outreachy-kernel@googlegroups.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CkRlbiAyOS4wOS4yMDE3IDA1LjE3LCBza3JldiBNZWdoYW5hIE1hZGh5YXN0aGE6Cj4gT24gVGh1 LCBTZXAgMjgsIDIwMTcgYXQgMDY6MTk6MzVQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVzIHdyb3Rl Ogo+PiBEZW4gMjguMDkuMjAxNyAxMS4xNSwgc2tyZXYgTWVnaGFuYSBNYWRoeWFzdGhhOgo+Pj4g QWRkIGRldm1fZHJtX29mX2ZpbmRfYmFja2xpZ2h0IGFuZCB0aGUgY29ycmVzcG9uZGluZyByZWxl YXNlCj4+PiBmdW5jdGlvbiBiZWNhdXNlIHNvbWUgZHJpdmVycyBzdWNoIGFzIHRpbnlkcm0gdXNl IGRldnJlcyB2ZXJzaW9ucwo+Pj4gb2YgZnVuY3Rpb25zIGZvciByZXF1aXJpbmcgZGV2aWNlIHJl c291cmNlcy4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBNZWdoYW5hIE1hZGh5YXN0aGEgPG1lZ2hh bmEubWFkaHlhc3RoYUBnbWFpbC5jb20+Cj4+PiAtLS0KPj4+IENoYW5nZXMgaW4gdjM6Cj4+PiAt Tm9uZQo+Pj4KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9vZi5jIHwgNDggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgIGluY2x1ZGUvZHJtL2Ry bV9vZi5oICAgICB8ICAyICsrCj4+PiAgIDIgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygr KQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX29mLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX29mLmMKPj4+IGluZGV4IGQ4NzhkM2EuLjIzOGU4ZTUgMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX29mLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fb2YuYwo+Pj4gQEAgLTMwNCwzICszMDQsNTEgQEAgc3RydWN0IGJhY2tsaWdodF9kZXZpY2Ug KmRybV9vZl9maW5kX2JhY2tsaWdodChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+PiAgIAlyZXR1cm4g YmFja2xpZ2h0Owo+Pj4gICB9Cj4+PiAgIEVYUE9SVF9TWU1CT0woZHJtX29mX2ZpbmRfYmFja2xp Z2h0KTsKPj4+ICsKPj4+ICsvKioKPj4+ICsgKiBkZXZtX2RybV9vZl9maW5kX2JhY2tsaWdodF9y ZWxlYXNlIC0gUmVsZWFzZSBiYWNrbGlnaHQgZGV2aWNlCj4+PiArICogQGRldjogRGV2aWNlCj4+ PiArICoKPj4+ICsgKiBUaGlzIGlzIHRoZSByZWxlYXNlIGZ1bmN0aW9uIGNvcnJlc3BvbmRpbmcg dG8gdGhlIGRldm1fZHJtX29mX2ZpbmRfYmFja2xpZ2h0Lgo+Pj4gKyAqIEVhY2ggZGV2cmVzIGVu dHJ5IGlzIGFzc29jaWF0ZWQgd2l0aCBhIHJlbGVhc2UgZnVuY3Rpb24uCj4+PiArICovCj4+IFRo aXMgaXMgYW4gaW50ZXJuYWwgZnVuY3Rpb24gc28gbm8gbmVlZCBmb3IgZG9jcyBvciBleHBvcnRp bmcuIEkga25vdwo+PiB0aGF0IHNvbWUgZGV2bV8gZnVuY3Rpb25zIGhhdmUgZXhwbGljaXQgcmVs ZWFzZSBmdW5jdGlvbnMsIGJ1dCBJIGRvbid0Cj4+IHRoaW5rIHRoaXMgaXMgbmVjZXNzYXJ5IHNp bmNlIHRob3NlIHVzZXJzIGNhbiBqdXN0IHVzZQo+PiBkcm1fb2ZfZmluZF9iYWNrbGlnaHQoKSBk aXJlY3RseSBpbnN0ZWFkLgo+IEkgaGF2ZSBhIHF1ZXN0aW9uIGhlcmUuIGRldm1fZHJtX29mX2Zp bmRfYmFja2xpZ2h0X3JlbGVhc2UgaXMgYQo+IHdyYXBwZXIgYXJvdW5kIHB1dF9kZXZpY2Ugd2hp Y2ggaXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyIHRvCj4gZGV2bV9hZGRfYWN0aW9uIGluIGRldm1f ZHJtX29mX2ZpbmRfYmFja2xpZ2h0LiBTbyBpc24ndCB0aGUgZnVuY3Rpb24KPiB1c2VmdWwgaGVy ZSA/CgpXZSBuZWVkIHRoZSBmdW5jdGlvbiBmb3IgZGV2bV9hZGRfYWN0aW9uKCksIGJ1dCBubyBv bmUgb3V0c2lkZSBvZiB0aGlzIApmaWxlIG5lZWRzCml0LiBIZW5jZSB0aGUgc3RhdGljIGRlZmlu aXRpb24uCgpXZSBjYW4ndCB1c2UgcHV0X2RldmljZSBkaXJlY3RseToKIMKgwqDCoCByZXQgPSBk ZXZtX2FkZF9hY3Rpb24oZGV2LCBwdXRfZGV2aWNlLAogwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDC oMKgwqDCoCAmYmFja2xpZ2h0LT5kZXYpOwpiZWNhdXNlIGRldm1fYWRkX2FjdGlvbiBleHBlY3Rz IGFuIGFyZ3VtZW50IGxpa2UgdGhpczogdm9pZCAKKCphY3Rpb24pKHZvaWQgKikKYW5kIHB1dF9k ZXZpY2UgaXM6IHZvaWQgcHV0X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpClRoZXkgZGlmZmVy IGluIHRoZWlyIGFyZ3VtZW50IHR5cGU6IHZvaWQgKiB2cy4gc3RydWN0IGRldmljZSAqClRoZSBj b21waWxlciB3b3VsZCBjb21wbGFpbi4KClNvIHdlIG5lZWQgYSB3cmFwcGVyLgoKPj4+ICtzdGF0 aWMgdm9pZCBkZXZtX2RybV9vZl9maW5kX2JhY2tsaWdodF9yZWxlYXNlKHZvaWQgKmRhdGEpCj4+ PiArewo+Pj4gKwlwdXRfZGV2aWNlKGRhdGEpOwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MKGRl dm1fZHJtX29mX2ZpbmRfYmFja2xpZ2h0X3JlbGVhc2UpOwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAq IGRldm1fZHJtX29mX2ZpbmRfYmFja2xpZ2h0IC0gRmluZCBiYWNrbGlnaHQgZGV2aWNlIGluIGRl dmljZS10cmVlCj4+PiArICogZGV2cmVzIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uCj4+PiArICog QGRldjogRGV2aWNlCj4+PiArICoKPj4+ICsgKiBUaGlzIGlzIHRoZSBkZXZyZXMgdmVyc2lvbiBv ZiB0aGUgZnVuY3Rpb24gZHJtX29mX2ZpbmRfYmFja2xpZ2h0Lgo+Pj4gKyAqIFNvbWUgZHJpdmVy cyBzdWNoIGFzIHRpbnlkcm0gdXNlIGRldnJlcyB2ZXJzaW9ucyBvZiBmdW5jdGlvbnMgZm9yCj4+ IE5vIG5lZWQgdG8gbWVudGlvbiB0aW55ZHJtIGhlcmUuCj4+Cj4+PiArICogcmVxdWlyaW5nIGRl dmljZSByZXNvdXJjZXMuCj4+PiArICoKPj4+ICsgKiBSZXR1cm5zOgo+Pj4gKyAqIE5VTEwgaWYg dGhlcmUncyBubyBiYWNrbGlnaHQgcHJvcGVydHkuCj4+PiArICogRXJyb3IgcG9pbnRlciAtRVBS T0JFX0RFRkVSIGlmIHRoZSBEVCBub2RlIGlzIGZvdW5kLCBidXQgbm8gYmFja2xpZ2h0IGRldmlj ZQo+Pj4gKyAqIGlzIGZvdW5kLgo+Pj4gKyAqIElmIHRoZSBiYWNrbGlnaHQgZGV2aWNlIGlzIGZv dW5kLCBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSBpcyByZXR1cm5lZC4KPj4+ICsgKi8KPj4+ ICtzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqZGV2bV9kcm1fb2ZfZmluZF9iYWNrbGlnaHQoc3Ry dWN0IGRldmljZSAqZGV2KQo+Pj4gK3sKPj4+ICsJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJh Y2tsaWdodDsKPj4+ICsJaW50IHJldDsKPj4+ICsKPj4+ICsJYmFja2xpZ2h0ID0gZHJtX29mX2Zp bmRfYmFja2xpZ2h0KGRldik7Cj4+PiArCWlmIChJU19FUlJfT1JfTlVMTChiYWNrbGlnaHQpKQo+ Pj4gKwkJcmV0dXJuIGJhY2tsaWdodDsKPj4+ICsKPj4+ICsJcmV0ID0gZGV2bV9hZGRfYWN0aW9u KGRldiwgZGV2bV9kcm1fb2ZfZmluZF9iYWNrbGlnaHRfcmVsZWFzZSwKPj4+ICsJCQkgICAgICAm YmFja2xpZ2h0LT5kZXYpOwo+Pj4gKwlpZiAocmV0KSB7Cj4+PiArCQlwdXRfZGV2aWNlKCZiYWNr bGlnaHQtPmRldik7Cj4+PiArCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+Pj4gKwl9Cj4+PiArCj4+ PiArCXJldHVybiBiYWNrbGlnaHQ7Cj4+PiArfQo+Pj4gK0VYUE9SVF9TWU1CT0woZGV2bV9kcm1f b2ZfZmluZF9iYWNrbGlnaHQpOwo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9vZi5o IGIvaW5jbHVkZS9kcm0vZHJtX29mLmgKPj4+IGluZGV4IGU4ZmJhNWIuLjA3MWZiM2IgMTAwNjQ0 Cj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fb2YuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJt X29mLmgKPj4+IEBAIC0zMCw3ICszMCw5IEBAIGludCBkcm1fb2ZfZmluZF9wYW5lbF9vcl9icmlk Z2UoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCwKPj4+ICAgCQkJCXN0cnVjdCBkcm1fcGFu ZWwgKipwYW5lbCwKPj4+ICAgCQkJCXN0cnVjdCBkcm1fYnJpZGdlICoqYnJpZGdlKTsKPj4+ICAg c3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmRybV9vZl9maW5kX2JhY2tsaWdodChzdHJ1Y3QgZGV2 aWNlICpkZXYpOwo+Pj4gK3N0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpkZXZtX2RybV9vZl9maW5k X2JhY2tsaWdodChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+Pj4gICAjZWxzZQo+PiBXZSBuZWVkIGEg ZHVtbXkgdmVyc2lvbiBvZiBkZXZtX2RybV9vZl9maW5kX2JhY2tsaWdodCgpIGhlcmUgdGhhdAo+ PiByZXR1cm5zIE5VTEwgYXMgaW4gdGhlIHByZXZpb3VzIHBhdGNoLgo+Pgo+Pj4gK3N0YXRpYyB2 b2lkIGRldm1fZHJtX29mX2ZpbmRfYmFja2xpZ2h0X3JlbGVhc2Uodm9pZCAqZGF0YSk7Cj4+IEFu ZCB0aGlzIGlzbid0IG5lZWRlZCBhcyBleHBsYWluZWQgYWJvdmUuCj4+PiAgIHN0YXRpYyBpbmxp bmUgdWludDMyX3QgZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3Moc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPj4+ICAgCQkJCQkJICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnBvcnQpCj4+PiAgIHsKPj4g SSdkIGFwcHJlY2lhdGUgaWYgeW91IGNvdWxkIGFsc28gc3dpdGNoIG1pMDI4M3F0IG92ZXIgdG8g dGhpcyBoZWxwZXIgOi0pCj4+Cj4+IE5vcmFsZi4KPj4KPj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6470705412124442624 X-Received: by 10.25.22.24 with SMTP id m24mr331620lfi.36.1506687621212; Fri, 29 Sep 2017 05:20:21 -0700 (PDT) X-BeenThere: outreachy-kernel@googlegroups.com Received: by 10.46.46.11 with SMTP id u11ls1132322lju.13.gmail; Fri, 29 Sep 2017 05:20:19 -0700 (PDT) X-Google-Smtp-Source: AOwi7QDBwW3v7hrk+Qf651qoBcwhxRHjTH1XFk93DEETDqQyoP5juzxgzrukacMq71p5inqF7fSM X-Received: by 10.25.19.201 with SMTP id 70mr331321lft.35.1506687619495; Fri, 29 Sep 2017 05:20:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1506687619; cv=none; d=google.com; s=arc-20160816; b=mS0lRyjtRMkw8P2Vbdy9fiZVwG8D+TBl6r+4krMZKnRFQzdz3vIWBwlQQc2V/rEG8k 1WXtu63HESnSZLj3XqlqI7iw/ACd4bgDgORDlYDCa5HWHqbLvn6u3JogT0eI+JTK4uqi 7CQI4MzeYCu1gPjxOMqh9AI6KgW4047fb8knodOU3mDlgcXW/2yJIw3taxqLMM4dsORw zgVFv6rq+C4HKYIa0fPuUXun2rBt30e2Rt5Abpo/S270Kfhc8vq25OAs4gwahGJnefRu o2IgH69Upx+8YdRrvRagm6KBhem9Kbbm5PhIxawoRFp6Y8hguvRyxiotRPjALb3iSnos 1q8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:arc-authentication-results; bh=/tWn9Y8FsU9E8QmiC3fRHGBWS2jSEUQn0oRc2MRXEUc=; b=RkAfrpNX8ONbwWjxrIlO3BWz3qmibbVR4L6UkmwZdak7SYyi9tCUBBl7MNEy6A1Nrh xK+fALnGcpUK4VFs+91t7sviFEb7ZnkbDTsFSIV43azdNTA+HsRpUtIb9361TshS61YG zu5LdLlhmZ/S8e2XW01fyLilAOABPTRr7GGtvN7dRX+1Z+nyuHEzTmlmTTayEwczP0gu dSxau/lRsKjmHq7WsKGNV5ywOIaBbByq9SfCGXCXyO/DlRGjxR3yKbPbtprrD9PlF+Ai Yv+7Tz8+BJs6WfUjn9+g7GtCpkPJt20O1NE/fMUXk07kxHDFftSoeujrg+rn8b59ihr6 xi9Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of noralf@tronnes.org designates 2a01:5b40:0:3005::1 as permitted sender) smtp.mailfrom=noralf@tronnes.org Return-Path: Received: from smtp.domeneshop.no (smtp.domeneshop.no. [2a01:5b40:0:3005::1]) by gmr-mx.google.com with ESMTPS id v69si158045lfa.5.2017.09.29.05.20.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Sep 2017 05:20:19 -0700 (PDT) Received-SPF: pass (google.com: domain of noralf@tronnes.org designates 2a01:5b40:0:3005::1 as permitted sender) client-ip=2a01:5b40:0:3005::1; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of noralf@tronnes.org designates 2a01:5b40:0:3005::1 as permitted sender) smtp.mailfrom=noralf@tronnes.org Received: from 211.81-166-168.customer.lyse.net ([81.166.168.211]:59570 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 1dxuHC-0004Vq-Jm; Fri, 29 Sep 2017 14:20:18 +0200 Subject: Re: [PATCH v3 2/2] drm/tinydrm: Add devres versions of drm_of_find_backlight To: Meghana Madhyastha , daniel@ffwll.ch, outreachy-kernel@googlegroups.com, dri-devel@lists.freedesktop.org References: <6a467fc9-547e-2469-74fb-92384d2cae71@tronnes.org> <20170929031746.GA9859@meghana-HP-Pavilion-Notebook> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <463f06a5-5e80-6781-19b0-7f228f9e040b@tronnes.org> Date: Fri, 29 Sep 2017 14:20:16 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20170929031746.GA9859@meghana-HP-Pavilion-Notebook> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Den 29.09.2017 05.17, skrev Meghana Madhyastha: > On Thu, Sep 28, 2017 at 06:19:35PM +0200, Noralf Trønnes wrote: >> Den 28.09.2017 11.15, skrev Meghana Madhyastha: >>> Add devm_drm_of_find_backlight and the corresponding release >>> function because some drivers such as tinydrm use devres versions >>> of functions for requiring device resources. >>> >>> Signed-off-by: Meghana Madhyastha >>> --- >>> Changes in v3: >>> -None >>> >>> drivers/gpu/drm/drm_of.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ >>> include/drm/drm_of.h | 2 ++ >>> 2 files changed, 50 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c >>> index d878d3a..238e8e5 100644 >>> --- a/drivers/gpu/drm/drm_of.c >>> +++ b/drivers/gpu/drm/drm_of.c >>> @@ -304,3 +304,51 @@ struct backlight_device *drm_of_find_backlight(struct device *dev) >>> return backlight; >>> } >>> EXPORT_SYMBOL(drm_of_find_backlight); >>> + >>> +/** >>> + * devm_drm_of_find_backlight_release - Release backlight device >>> + * @dev: Device >>> + * >>> + * This is the release function corresponding to the devm_drm_of_find_backlight. >>> + * Each devres entry is associated with a release function. >>> + */ >> This is an internal function so no need for docs or exporting. I know >> that some devm_ functions have explicit release functions, but I don't >> think this is necessary since those users can just use >> drm_of_find_backlight() directly instead. > I have a question here. devm_drm_of_find_backlight_release is a > wrapper around put_device which is passed as a parameter to > devm_add_action in devm_drm_of_find_backlight. So isn't the function > useful here ? We need the function for devm_add_action(), but no one outside of this file needs it. Hence the static definition. We can't use put_device directly:     ret = devm_add_action(dev, put_device,                   &backlight->dev); because devm_add_action expects an argument like this: void (*action)(void *) and put_device is: void put_device(struct device *dev) They differ in their argument type: void * vs. struct device * The compiler would complain. So we need a wrapper. >>> +static void devm_drm_of_find_backlight_release(void *data) >>> +{ >>> + put_device(data); >>> +} >>> +EXPORT_SYMBOL(devm_drm_of_find_backlight_release); >>> + >>> +/** >>> + * devm_drm_of_find_backlight - Find backlight device in device-tree >>> + * devres version of the function >>> + * @dev: Device >>> + * >>> + * This is the devres version of the function drm_of_find_backlight. >>> + * Some drivers such as tinydrm use devres versions of functions for >> No need to mention tinydrm here. >> >>> + * requiring device resources. >>> + * >>> + * Returns: >>> + * NULL if there's no backlight property. >>> + * Error pointer -EPROBE_DEFER if the DT node is found, but no backlight device >>> + * is found. >>> + * If the backlight device is found, a pointer to the structure is returned. >>> + */ >>> +struct backlight_device *devm_drm_of_find_backlight(struct device *dev) >>> +{ >>> + struct backlight_device *backlight; >>> + int ret; >>> + >>> + backlight = drm_of_find_backlight(dev); >>> + if (IS_ERR_OR_NULL(backlight)) >>> + return backlight; >>> + >>> + ret = devm_add_action(dev, devm_drm_of_find_backlight_release, >>> + &backlight->dev); >>> + if (ret) { >>> + put_device(&backlight->dev); >>> + return ERR_PTR(ret); >>> + } >>> + >>> + return backlight; >>> +} >>> +EXPORT_SYMBOL(devm_drm_of_find_backlight); >>> diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h >>> index e8fba5b..071fb3b 100644 >>> --- a/include/drm/drm_of.h >>> +++ b/include/drm/drm_of.h >>> @@ -30,7 +30,9 @@ int drm_of_find_panel_or_bridge(const struct device_node *np, >>> struct drm_panel **panel, >>> struct drm_bridge **bridge); >>> struct backlight_device *drm_of_find_backlight(struct device *dev); >>> +struct backlight_device *devm_drm_of_find_backlight(struct device *dev); >>> #else >> We need a dummy version of devm_drm_of_find_backlight() here that >> returns NULL as in the previous patch. >> >>> +static void devm_drm_of_find_backlight_release(void *data); >> And this isn't needed as explained above. >>> static inline uint32_t drm_of_find_possible_crtcs(struct drm_device *dev, >>> struct device_node *port) >>> { >> I'd appreciate if you could also switch mi0283qt over to this helper :-) >> >> Noralf. >> >>