From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH v2] drm/tinydrm: Move backlight helpers to a separate file Date: Mon, 25 Sep 2017 16:56:14 +0200 Message-ID: <3dd313c8-daa7-a395-183c-c2dfac4dd4b4@tronnes.org> References: <20170922150935.GA15912@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 7F72C6E0BE for ; Mon, 25 Sep 2017 14:56:19 +0000 (UTC) In-Reply-To: <20170922150935.GA15912@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 Vetter , dri-devel@lists.freedesktop.org, outreachy-kernel@googlegroups.com List-Id: dri-devel@lists.freedesktop.org SGkgTWVnaGFuYSwKCgpEZW4gMjIuMDkuMjAxNyAxNy4wOSwgc2tyZXYgTWVnaGFuYSBNYWRoeWFz dGhhOgo+IE1vdmUgYmFja2xpZ2h0IGhlbHBlcnMgZnJvbSB0aW55ZHJtLWhlbHBlcnMuYyB0bwo+ IHRpbnlkcm0tYmFja2xpZ2h0LmMuIFRoaXMgaXMgYmVjYXVzZSBpdCBpcyBvcmdhbml6YXRpb25h bGx5Cj4gc2ltcGxlciB0byB1bmRlcnN0YW5kIGFuZCBhZHZhbnRhZ2VvdXMgdG8gZ3JvdXAgZnVu Y3Rpb25zCj4gcGVyZm9ybWluZyBhIHNpbWlsYXIgZnVuY3Rpb24gdG8gYSBzZXBhcmF0ZSBmaWxl IGFzIG9wcG9zZWQgdG8KPiBoYXZpbmcgb25lIGhlbHBlciBmaWxlIHdpdGggaGV0ZXJlZ2Vub3Vz IGhlbHBlciBmdW5jdGlvbnMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBNZWdoYW5hIE1hZGh5YXN0aGEg PG1lZ2hhbmEubWFkaHlhc3RoYUBnbWFpbC5jb20+Cj4gLS0tCgpJIGRvbid0IHRoaW5rIHRoZXJl IGlzIG11Y2ggZ2FpbiBpbiBqdXN0IG1vdmluZyB0aGUgY29kZSBsaWtlIHRoaXMuCgpUaGUgaWRl YSBpcyB0byBhZGQgYSBkcm1fYmFja2xpZ2h0IGhlbHBlciB0aGF0IGNhbiBiZSB1c2VmdWwgZm9y IGFsbApEUk0gZHJpdmVycyB0aGF0IHVzZSB0aGUgYmFja2xpZ2h0IHN1YnN5c3RlbS4KClRoaXMg aXMgd2hhdCB0aGUgVE9ETyBzYXlzOgpodHRwczovL2RyaS5mcmVlZGVza3RvcC5vcmcvZG9jcy9k cm0vZ3B1L3RvZG8uaHRtbCN0aW55ZHJtCgotIGJhY2tsaWdodCBoZWxwZXJzLCBwcm9iYWJseSBi ZXN0IHRvIHB1dCB0aGVtIGludG8gYSBuZXcgZHJtX2JhY2tsaWdodC5jLgogwqAgVGhpcyBpcyBi ZWNhdXNlIGRyaXZlcnMvdmlkZW8gaXMgZGUtZmFjdG8gdW5tYWludGFpbmVkLiBXZSBjb3VsZCBh bHNvCiDCoCBtb3ZlIGRyaXZlcnMvdmlkZW8vYmFja2xpZ2h0IHRvIGRyaXZlcnMvZ3B1L2JhY2ts aWdodCBhbmQgdGFrZSBpdCBhbGwKIMKgIG92ZXIgd2l0aGluIGRybS1taXNjLCBidXQgdGhhdOKA mXMgbW9yZSB3b3JrLgoKVGhlcmUgaXMgYWxzbyB0aGlzIGRpc2N1c3Npb24gdG8gdGFrZSBpbnRv IGFjY291bnQ6CktNUyBiYWNrbGlnaHQgQUJJIHByb3Bvc2l0aW9uCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE3LUZlYnJ1YXJ5LzEzMzIwNi5odG1s CgpJIGRvbid0IHJlbWVtYmVyIHdoYXQgY2FtZSBvdXQgb2YgdGhhdCBkaXNjdXNzaW9uLgoKTm9y YWxmLgoKPiBDaGFuZ2VzIGluIHYyOgo+ICAgLUltcHJvdmVkIGNvbW1pdCBtZXNzYWdlIGJ5IGV4 cGxhaW5pbmcgd2h5IHRoZSBjaGFuZ2VzIHdlcmUgbWFkZS4KPgo+ICAgZHJpdmVycy9ncHUvZHJt L3Rpbnlkcm0vY29yZS9NYWtlZmlsZSAgICAgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0tYmFja2xpZ2h0LmMgfCAxMDMgKysrKysrKysrKysr KysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1oZWxw ZXJzLmMgICB8ICA5NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS90 aW55ZHJtL21pMDI4M3F0LmMgICAgICAgICAgICAgICB8ICAgMSArCj4gICBkcml2ZXJzL2dwdS9k cm0vdGlueWRybS9taXBpLWRiaS5jICAgICAgICAgICAgICAgfCAgIDEgKwo+ICAgaW5jbHVkZS9k cm0vdGlueWRybS90aW55ZHJtLWJhY2tsaWdodC5oICAgICAgICAgIHwgIDE4ICsrKysKPiAgIDYg ZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQo+ICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1iYWNr bGlnaHQuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRy bS1iYWNrbGlnaHQuaAo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2Nv cmUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL01ha2VmaWxlCj4gaW5k ZXggZmIyMjFlNi4uMzg5Y2E3YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9jb3JlL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS9NYWtl ZmlsZQo+IEBAIC0xLDMgKzEsMyBAQAo+IC10aW55ZHJtLXkgOj0gdGlueWRybS1jb3JlLm8gdGlu eWRybS1waXBlLm8gdGlueWRybS1oZWxwZXJzLm8KPiArdGlueWRybS15IDo9IHRpbnlkcm0tY29y ZS5vIHRpbnlkcm0tcGlwZS5vIHRpbnlkcm0tYmFja2xpZ2h0Lm8gdGlueWRybS1oZWxwZXJzLm8K PiAgIAo+ICAgb2JqLSQoQ09ORklHX0RSTV9USU5ZRFJNKSArPSB0aW55ZHJtLm8KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWJhY2tsaWdodC5jIGIv ZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWJhY2tsaWdodC5jCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5kYzZmMTdkCj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1iYWNrbGlnaHQuYwo+ IEBAIC0wLDAgKzEsMTAzIEBACj4gKyNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BtLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9zd2FiLmg+Cj4gKwo+ICsjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS5o Pgo+ICsjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS1iYWNrbGlnaHQuaD4KPiArCj4gKy8q Kgo+ICsgKiB0aW55ZHJtX29mX2ZpbmRfYmFja2xpZ2h0IC0gRmluZCBiYWNrbGlnaHQgZGV2aWNl IGluIGRldmljZS10cmVlCj4gKyAqIEBkZXY6IERldmljZQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0 aW9uIGxvb2tzIGZvciBhIERUIG5vZGUgcG9pbnRlZCB0byBieSBhIHByb3BlcnR5IG5hbWVkICdi YWNrbGlnaHQnCj4gKyAqIGFuZCB1c2VzIG9mX2ZpbmRfYmFja2xpZ2h0X2J5X25vZGUoKSB0byBn ZXQgdGhlIGJhY2tsaWdodCBkZXZpY2UuCj4gKyAqIEFkZGl0aW9uYWxseSBpZiB0aGUgYnJpZ2h0 bmVzcyBwcm9wZXJ0eSBpcyB6ZXJvLCBpdCBpcyBzZXQgdG8KPiArICogbWF4X2JyaWdodG5lc3Mu Cj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIE5VTEwgaWYgdGhlcmUncyBubyBiYWNrbGlnaHQg cHJvcGVydHkuCj4gKyAqIEVycm9yIHBvaW50ZXIgLUVQUk9CRV9ERUZFUiBpZiB0aGUgRFQgbm9k ZSBpcyBmb3VuZCwgYnV0IG5vIGJhY2tsaWdodCBkZXZpY2UKPiArICogaXMgZm91bmQuCj4gKyAq IElmIHRoZSBiYWNrbGlnaHQgZGV2aWNlIGlzIGZvdW5kLCBhIHBvaW50ZXIgdG8gdGhlIHN0cnVj dHVyZSBpcyByZXR1cm5lZC4KPiArICovCj4gKwo+ICtzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAq dGlueWRybV9vZl9maW5kX2JhY2tsaWdodChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0 cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiYWNrbGlnaHQ7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUg Km5wOwo+ICsKPiArCW5wID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJiYWNrbGln aHQiLCAwKTsKPiArCWlmICghbnApCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJYmFja2xpZ2h0 ID0gb2ZfZmluZF9iYWNrbGlnaHRfYnlfbm9kZShucCk7Cj4gKwlvZl9ub2RlX3B1dChucCk7Cj4g Kwo+ICsJaWYgKCFiYWNrbGlnaHQpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVQUk9CRV9ERUZFUik7 Cj4gKwo+ICsJaWYgKCFiYWNrbGlnaHQtPnByb3BzLmJyaWdodG5lc3MpIHsKPiArCQliYWNrbGln aHQtPnByb3BzLmJyaWdodG5lc3MgPSBiYWNrbGlnaHQtPnByb3BzLm1heF9icmlnaHRuZXNzOwo+ ICsJCURSTV9ERUJVR19LTVMoIkJhY2tsaWdodCBicmlnaHRuZXNzIHNldCB0byAlZFxuIiwKPiAr CQkJICAgICAgYmFja2xpZ2h0LT5wcm9wcy5icmlnaHRuZXNzKTsKPiArCX0KPiArCj4gKwlyZXR1 cm4gYmFja2xpZ2h0Owo+ICt9Cj4gK0VYUE9SVF9TWU1CT0wodGlueWRybV9vZl9maW5kX2JhY2ts aWdodCk7Cj4gKwo+ICsvKioKPiArICogdGlueWRybV9lbmFibGVfYmFja2xpZ2h0IC0gRW5hYmxl IGJhY2tsaWdodCBoZWxwZXIKPiArICogQGJhY2tsaWdodDogQmFja2xpZ2h0IGRldmljZQo+ICsg Kgo+ICsgKiBSZXR1cm5zOgo+ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNv ZGUgb24gZmFpbHVyZS4KPiArICovCj4gK2ludCB0aW55ZHJtX2VuYWJsZV9iYWNrbGlnaHQoc3Ry dWN0IGJhY2tsaWdodF9kZXZpY2UgKmJhY2tsaWdodCkKPiArewo+ICsJdW5zaWduZWQgaW50IG9s ZF9zdGF0ZTsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKCFiYWNrbGlnaHQpCj4gKwkJcmV0dXJu IDA7Cj4gKwo+ICsJb2xkX3N0YXRlID0gYmFja2xpZ2h0LT5wcm9wcy5zdGF0ZTsKPiArCWJhY2ts aWdodC0+cHJvcHMuc3RhdGUgJj0gfkJMX0NPUkVfRkJCTEFOSzsKPiArCURSTV9ERUJVR19LTVMo IkJhY2tsaWdodCBzdGF0ZTogMHgleCAtPiAweCV4XG4iLCBvbGRfc3RhdGUsCj4gKwkJICAgICAg YmFja2xpZ2h0LT5wcm9wcy5zdGF0ZSk7Cj4gKwo+ICsJcmV0ID0gYmFja2xpZ2h0X3VwZGF0ZV9z dGF0dXMoYmFja2xpZ2h0KTsKPiArCWlmIChyZXQpCj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g ZW5hYmxlIGJhY2tsaWdodCAlZFxuIiwgcmV0KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4g K0VYUE9SVF9TWU1CT0wodGlueWRybV9lbmFibGVfYmFja2xpZ2h0KTsKPiArCj4gKy8qKgo+ICsg KiB0aW55ZHJtX2Rpc2FibGVfYmFja2xpZ2h0IC0gRGlzYWJsZSBiYWNrbGlnaHQgaGVscGVyCj4g KyAqIEBiYWNrbGlnaHQ6IEJhY2tsaWdodCBkZXZpY2UKPiArICoKPiArICogUmV0dXJuczoKPiAr ICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAq Lwo+ICtpbnQgdGlueWRybV9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgYmFja2xpZ2h0X2Rldmlj ZSAqYmFja2xpZ2h0KQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgb2xkX3N0YXRlOwo+ICsJaW50IHJl dDsKPiArCj4gKwlpZiAoIWJhY2tsaWdodCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlvbGRfc3Rh dGUgPSBiYWNrbGlnaHQtPnByb3BzLnN0YXRlOwo+ICsJYmFja2xpZ2h0LT5wcm9wcy5zdGF0ZSB8 PSBCTF9DT1JFX0ZCQkxBTks7Cj4gKwlEUk1fREVCVUdfS01TKCJCYWNrbGlnaHQgc3RhdGU6IDB4 JXggLT4gMHgleFxuIiwgb2xkX3N0YXRlLAo+ICsJCSAgICAgIGJhY2tsaWdodC0+cHJvcHMuc3Rh dGUpOwo+ICsJcmV0ID0gYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoYmFja2xpZ2h0KTsKPiArCWlm IChyZXQpCj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBiYWNrbGlnaHQgJWRcbiIs IHJldCk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKHRpbnlkcm1f ZGlzYWJsZV9iYWNrbGlnaHQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9jb3JlL3Rpbnlkcm0taGVscGVycy5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90 aW55ZHJtLWhlbHBlcnMuYwo+IGluZGV4IGJkNmNjZTAuLmVlOGFkOGMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1oZWxwZXJzLmMKPiBAQCAtMjM2LDEw MCArMjM2LDYgQEAgdm9pZCB0aW55ZHJtX3hyZ2I4ODg4X3RvX2dyYXk4KHU4ICpkc3QsIHZvaWQg KnZhZGRyLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAgIH0KPiAgIEVYUE9SVF9TWU1C T0wodGlueWRybV94cmdiODg4OF90b19ncmF5OCk7Cj4gICAKPiAtLyoqCj4gLSAqIHRpbnlkcm1f b2ZfZmluZF9iYWNrbGlnaHQgLSBGaW5kIGJhY2tsaWdodCBkZXZpY2UgaW4gZGV2aWNlLXRyZWUK PiAtICogQGRldjogRGV2aWNlCj4gLSAqCj4gLSAqIFRoaXMgZnVuY3Rpb24gbG9va3MgZm9yIGEg RFQgbm9kZSBwb2ludGVkIHRvIGJ5IGEgcHJvcGVydHkgbmFtZWQgJ2JhY2tsaWdodCcKPiAtICog YW5kIHVzZXMgb2ZfZmluZF9iYWNrbGlnaHRfYnlfbm9kZSgpIHRvIGdldCB0aGUgYmFja2xpZ2h0 IGRldmljZS4KPiAtICogQWRkaXRpb25hbGx5IGlmIHRoZSBicmlnaHRuZXNzIHByb3BlcnR5IGlz IHplcm8sIGl0IGlzIHNldCB0bwo+IC0gKiBtYXhfYnJpZ2h0bmVzcy4KPiAtICoKPiAtICogUmV0 dXJuczoKPiAtICogTlVMTCBpZiB0aGVyZSdzIG5vIGJhY2tsaWdodCBwcm9wZXJ0eS4KPiAtICog RXJyb3IgcG9pbnRlciAtRVBST0JFX0RFRkVSIGlmIHRoZSBEVCBub2RlIGlzIGZvdW5kLCBidXQg bm8gYmFja2xpZ2h0IGRldmljZQo+IC0gKiBpcyBmb3VuZC4KPiAtICogSWYgdGhlIGJhY2tsaWdo dCBkZXZpY2UgaXMgZm91bmQsIGEgcG9pbnRlciB0byB0aGUgc3RydWN0dXJlIGlzIHJldHVybmVk Lgo+IC0gKi8KPiAtc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKnRpbnlkcm1fb2ZfZmluZF9iYWNr bGlnaHQoc3RydWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLQlzdHJ1Y3QgYmFja2xpZ2h0X2Rldmlj ZSAqYmFja2xpZ2h0Owo+IC0Jc3RydWN0IGRldmljZV9ub2RlICpucDsKPiAtCj4gLQlucCA9IG9m X3BhcnNlX3BoYW5kbGUoZGV2LT5vZl9ub2RlLCAiYmFja2xpZ2h0IiwgMCk7Cj4gLQlpZiAoIW5w KQo+IC0JCXJldHVybiBOVUxMOwo+IC0KPiAtCWJhY2tsaWdodCA9IG9mX2ZpbmRfYmFja2xpZ2h0 X2J5X25vZGUobnApOwo+IC0Jb2Zfbm9kZV9wdXQobnApOwo+IC0KPiAtCWlmICghYmFja2xpZ2h0 KQo+IC0JCXJldHVybiBFUlJfUFRSKC1FUFJPQkVfREVGRVIpOwo+IC0KPiAtCWlmICghYmFja2xp Z2h0LT5wcm9wcy5icmlnaHRuZXNzKSB7Cj4gLQkJYmFja2xpZ2h0LT5wcm9wcy5icmlnaHRuZXNz ID0gYmFja2xpZ2h0LT5wcm9wcy5tYXhfYnJpZ2h0bmVzczsKPiAtCQlEUk1fREVCVUdfS01TKCJC YWNrbGlnaHQgYnJpZ2h0bmVzcyBzZXQgdG8gJWRcbiIsCj4gLQkJCSAgICAgIGJhY2tsaWdodC0+ cHJvcHMuYnJpZ2h0bmVzcyk7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIGJhY2tsaWdodDsKPiAtfQo+ IC1FWFBPUlRfU1lNQk9MKHRpbnlkcm1fb2ZfZmluZF9iYWNrbGlnaHQpOwo+IC0KPiAtLyoqCj4g LSAqIHRpbnlkcm1fZW5hYmxlX2JhY2tsaWdodCAtIEVuYWJsZSBiYWNrbGlnaHQgaGVscGVyCj4g LSAqIEBiYWNrbGlnaHQ6IEJhY2tsaWdodCBkZXZpY2UKPiAtICoKPiAtICogUmV0dXJuczoKPiAt ICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gLSAq Lwo+IC1pbnQgdGlueWRybV9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNl ICpiYWNrbGlnaHQpCj4gLXsKPiAtCXVuc2lnbmVkIGludCBvbGRfc3RhdGU7Cj4gLQlpbnQgcmV0 Owo+IC0KPiAtCWlmICghYmFja2xpZ2h0KQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCW9sZF9zdGF0 ZSA9IGJhY2tsaWdodC0+cHJvcHMuc3RhdGU7Cj4gLQliYWNrbGlnaHQtPnByb3BzLnN0YXRlICY9 IH5CTF9DT1JFX0ZCQkxBTks7Cj4gLQlEUk1fREVCVUdfS01TKCJCYWNrbGlnaHQgc3RhdGU6IDB4 JXggLT4gMHgleFxuIiwgb2xkX3N0YXRlLAo+IC0JCSAgICAgIGJhY2tsaWdodC0+cHJvcHMuc3Rh dGUpOwo+IC0KPiAtCXJldCA9IGJhY2tsaWdodF91cGRhdGVfc3RhdHVzKGJhY2tsaWdodCk7Cj4g LQlpZiAocmV0KQo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSBiYWNrbGlnaHQgJWRc biIsIHJldCk7Cj4gLQo+IC0JcmV0dXJuIHJldDsKPiAtfQo+IC1FWFBPUlRfU1lNQk9MKHRpbnlk cm1fZW5hYmxlX2JhY2tsaWdodCk7Cj4gLQo+IC0vKioKPiAtICogdGlueWRybV9kaXNhYmxlX2Jh Y2tsaWdodCAtIERpc2FibGUgYmFja2xpZ2h0IGhlbHBlcgo+IC0gKiBAYmFja2xpZ2h0OiBCYWNr bGlnaHQgZGV2aWNlCj4gLSAqCj4gLSAqIFJldHVybnM6Cj4gLSAqIFplcm8gb24gc3VjY2Vzcywg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+IC0gKi8KPiAtaW50IHRpbnlkcm1fZGlz YWJsZV9iYWNrbGlnaHQoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJhY2tsaWdodCkKPiAtewo+ IC0JdW5zaWduZWQgaW50IG9sZF9zdGF0ZTsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaWYgKCFiYWNr bGlnaHQpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0Jb2xkX3N0YXRlID0gYmFja2xpZ2h0LT5wcm9w cy5zdGF0ZTsKPiAtCWJhY2tsaWdodC0+cHJvcHMuc3RhdGUgfD0gQkxfQ09SRV9GQkJMQU5LOwo+ IC0JRFJNX0RFQlVHX0tNUygiQmFja2xpZ2h0IHN0YXRlOiAweCV4IC0+IDB4JXhcbiIsIG9sZF9z dGF0ZSwKPiAtCQkgICAgICBiYWNrbGlnaHQtPnByb3BzLnN0YXRlKTsKPiAtCXJldCA9IGJhY2ts aWdodF91cGRhdGVfc3RhdHVzKGJhY2tsaWdodCk7Cj4gLQlpZiAocmV0KQo+IC0JCURSTV9FUlJP UigiRmFpbGVkIHRvIGRpc2FibGUgYmFja2xpZ2h0ICVkXG4iLCByZXQpOwo+IC0KPiAtCXJldHVy biByZXQ7Cj4gLX0KPiAtRVhQT1JUX1NZTUJPTCh0aW55ZHJtX2Rpc2FibGVfYmFja2xpZ2h0KTsK PiAgIAo+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX1NQSSkKPiAgIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vbWkwMjgzcXQuYwo+IGluZGV4IDdlNWJiN2QuLmMxNjFkNDUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vbWkwMjgzcXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 aW55ZHJtL21pMDI4M3F0LmMKPiBAQCAtMTIsNiArMTIsNyBAQAo+ICAgI2luY2x1ZGUgPGRybS90 aW55ZHJtL2lsaTkzNDEuaD4KPiAgICNpbmNsdWRlIDxkcm0vdGlueWRybS9taXBpLWRiaS5oPgo+ ICAgI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgo+ICsjaW5jbHVkZSA8 ZHJtL3Rpbnlkcm0vdGlueWRybS1iYWNrbGlnaHQuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9kZWxh eS5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiAgICNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlw aS1kYmkuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGktZGJpLmMKPiBpbmRleCAyY2Fl YWJjLi5kYzg0ZjI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGkt ZGJpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jCj4gQEAgLTEx LDYgKzExLDcgQEAKPiAgIAo+ICAgI2luY2x1ZGUgPGRybS90aW55ZHJtL21pcGktZGJpLmg+Cj4g ICAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmg+Cj4gKyNpbmNsdWRlIDxk cm0vdGlueWRybS90aW55ZHJtLWJhY2tsaWdodC5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L2RlYnVn ZnMuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Cj4gICAjaW5jbHVkZSA8bGludXgv Z3Bpby9jb25zdW1lci5oPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90aW55ZHJtL3Rpbnlk cm0tYmFja2xpZ2h0LmggYi9pbmNsdWRlL2RybS90aW55ZHJtL3Rpbnlkcm0tYmFja2xpZ2h0LmgK PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjZhN2I2ZDUKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWJhY2tsaWdodC5oCj4g QEAgLTAsMCArMSwxOCBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTYgTm9yYWxmIFRy w7hubmVzCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqLwo+ ICsKPiArI2lmbmRlZiBfX0xJTlVYX1RJTllEUk1fQkFDS0xJR0hUX0gKPiArI2RlZmluZSBfX0xJ TlVYX1RJTllEUk1fQkFDS0xJR0hUX0gKPiArCj4gK3N0cnVjdCBiYWNrbGlnaHRfZGV2aWNlOwo+ ICtzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqdGlueWRybV9vZl9maW5kX2JhY2tsaWdodChzdHJ1 Y3QgZGV2aWNlICpkZXYpOwo+ICtpbnQgdGlueWRybV9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBi YWNrbGlnaHRfZGV2aWNlICpiYWNrbGlnaHQpOwo+ICtpbnQgdGlueWRybV9kaXNhYmxlX2JhY2ts aWdodChzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0KTsKPiArCj4gKyNlbmRpZiAv KiBfX0xJTlVYX1RJTllEUk1fQkFDS0xJR0hUX0ggKi8KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6468555141619384320 X-Received: by 10.223.184.197 with SMTP id c5mr343314wrg.17.1506351379602; Mon, 25 Sep 2017 07:56:19 -0700 (PDT) X-BeenThere: outreachy-kernel@googlegroups.com Received: by 10.28.54.141 with SMTP id y13ls1257094wmh.6.canary-gmail; Mon, 25 Sep 2017 07:56:18 -0700 (PDT) X-Google-Smtp-Source: AOwi7QAyG/Ju2bjxZY1rksky9IT8vu2p4CsfCIm/YDDBDTGPiA4o3iAgXITVp2R+hFWZqELgI/eu X-Received: by 10.223.171.237 with SMTP id s100mr379055wrc.31.1506351378508; Mon, 25 Sep 2017 07:56:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1506351378; cv=none; d=google.com; s=arc-20160816; b=pY9OcKE+iu/UlhQboWgChcuRoK6KW+17u3GLSYU8/msjdpmFfGOSXBVHTsXpib7NFU f7lYOAsW5fYrKHQ6OjQT4uFaGLTKcxoMoCPoDTLzNPdiGbQ02IS+b4hgVVUq4tdRBBKl YuIm9W3xG1WCB4986cCAoNAXHDsYjClX0mxt3j5wNEgTYvXRci8f8ReoxVlyqBccWgxI xdQcfe3skU/iS2lqkPF1plYJpaJsO0E0I8v0BWDn51a9Vakhh8oGwODPSY8v6G2AA1CE /6fCvwhLWUjBepRHWqWqN9oye/pwMh2Q05kif/O3pUKu5nYN+C3EKxlYPQrXSKy+PD93 o+sQ== 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=qiUDVYr40A/FOwKQUWz16gUXeKjLBaS38BpKBX8t6/g=; b=UQUKd5I5WejGP2CEfMjZzO76+kLbWc3K+rxXPMwHIvQ756QUd16HsDFqpV9CqYCDSP 5r4YvbCQSlqoL3sbJqY0i0k5rans7CqHysNU/Xap3Hz05B3E82aNvUYcm4ch1OsClg+H UOTiK9d63xX5WVoDoXZE+SCsgVTCIzQDIu+XrrApzJS65/wUk6ZTqhr4Y+sUEIxsr8WH FoeZWiIzvFcX8o4l/SZ4CcaEoxJog/jgCH8M7eda5NfucME/xb6AIBuNOCYmB5BXavQ4 kxpi/8jgCjyCUr1ReUfQHxl/qlRmx64614kUHEOKCbic+QBcELhSIVgQza4E4yD3AUCr krMw== 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 i83si226361lfl.6.2017.09.25.07.56.18 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Sep 2017 07:56:18 -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]:56278 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 1dwUnx-0000Dn-C9; Mon, 25 Sep 2017 16:56:17 +0200 Subject: Re: [PATCH v2] drm/tinydrm: Move backlight helpers to a separate file To: Meghana Madhyastha , Daniel Vetter , dri-devel@lists.freedesktop.org, outreachy-kernel@googlegroups.com References: <20170922150935.GA15912@meghana-HP-Pavilion-Notebook> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <3dd313c8-daa7-a395-183c-c2dfac4dd4b4@tronnes.org> Date: Mon, 25 Sep 2017 16:56:14 +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: <20170922150935.GA15912@meghana-HP-Pavilion-Notebook> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi Meghana, Den 22.09.2017 17.09, skrev Meghana Madhyastha: > Move backlight helpers from tinydrm-helpers.c to > tinydrm-backlight.c. This is because it is organizationally > simpler to understand and advantageous to group functions > performing a similar function to a separate file as opposed to > having one helper file with heteregenous helper functions. > > Signed-off-by: Meghana Madhyastha > --- I don't think there is much gain in just moving the code like this. The idea is to add a drm_backlight helper that can be useful for all DRM drivers that use the backlight subsystem. This is what the TODO says: https://dri.freedesktop.org/docs/drm/gpu/todo.html#tinydrm - backlight helpers, probably best to put them into a new drm_backlight.c.   This is because drivers/video is de-facto unmaintained. We could also   move drivers/video/backlight to drivers/gpu/backlight and take it all   over within drm-misc, but that’s more work. There is also this discussion to take into account: KMS backlight ABI proposition https://lists.freedesktop.org/archives/dri-devel/2017-February/133206.html I don't remember what came out of that discussion. Noralf. > Changes in v2: > -Improved commit message by explaining why the changes were made. > > drivers/gpu/drm/tinydrm/core/Makefile | 2 +- > drivers/gpu/drm/tinydrm/core/tinydrm-backlight.c | 103 +++++++++++++++++++++++ > drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 94 --------------------- > drivers/gpu/drm/tinydrm/mi0283qt.c | 1 + > drivers/gpu/drm/tinydrm/mipi-dbi.c | 1 + > include/drm/tinydrm/tinydrm-backlight.h | 18 ++++ > 6 files changed, 124 insertions(+), 95 deletions(-) > create mode 100644 drivers/gpu/drm/tinydrm/core/tinydrm-backlight.c > create mode 100644 include/drm/tinydrm/tinydrm-backlight.h > > diff --git a/drivers/gpu/drm/tinydrm/core/Makefile b/drivers/gpu/drm/tinydrm/core/Makefile > index fb221e6..389ca7a 100644 > --- a/drivers/gpu/drm/tinydrm/core/Makefile > +++ b/drivers/gpu/drm/tinydrm/core/Makefile > @@ -1,3 +1,3 @@ > -tinydrm-y := tinydrm-core.o tinydrm-pipe.o tinydrm-helpers.o > +tinydrm-y := tinydrm-core.o tinydrm-pipe.o tinydrm-backlight.o tinydrm-helpers.o > > obj-$(CONFIG_DRM_TINYDRM) += tinydrm.o > diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-backlight.c b/drivers/gpu/drm/tinydrm/core/tinydrm-backlight.c > new file mode 100644 > index 0000000..dc6f17d > --- /dev/null > +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-backlight.c > @@ -0,0 +1,103 @@ > +#include > +#include > +#include > +#include > + > +#include > +#include > + > +/** > + * tinydrm_of_find_backlight - Find backlight device in device-tree > + * @dev: Device > + * > + * This function looks for a DT node pointed to by a property named 'backlight' > + * and uses of_find_backlight_by_node() to get the backlight device. > + * Additionally if the brightness property is zero, it is set to > + * max_brightness. > + * > + * 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 *tinydrm_of_find_backlight(struct device *dev) > +{ > + struct backlight_device *backlight; > + struct device_node *np; > + > + np = of_parse_phandle(dev->of_node, "backlight", 0); > + if (!np) > + return NULL; > + > + backlight = of_find_backlight_by_node(np); > + of_node_put(np); > + > + if (!backlight) > + return ERR_PTR(-EPROBE_DEFER); > + > + if (!backlight->props.brightness) { > + backlight->props.brightness = backlight->props.max_brightness; > + DRM_DEBUG_KMS("Backlight brightness set to %d\n", > + backlight->props.brightness); > + } > + > + return backlight; > +} > +EXPORT_SYMBOL(tinydrm_of_find_backlight); > + > +/** > + * tinydrm_enable_backlight - Enable backlight helper > + * @backlight: Backlight device > + * > + * Returns: > + * Zero on success, negative error code on failure. > + */ > +int tinydrm_enable_backlight(struct backlight_device *backlight) > +{ > + unsigned int old_state; > + int ret; > + > + if (!backlight) > + return 0; > + > + old_state = backlight->props.state; > + backlight->props.state &= ~BL_CORE_FBBLANK; > + DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, > + backlight->props.state); > + > + ret = backlight_update_status(backlight); > + if (ret) > + DRM_ERROR("Failed to enable backlight %d\n", ret); > + > + return ret; > +} > +EXPORT_SYMBOL(tinydrm_enable_backlight); > + > +/** > + * tinydrm_disable_backlight - Disable backlight helper > + * @backlight: Backlight device > + * > + * Returns: > + * Zero on success, negative error code on failure. > + */ > +int tinydrm_disable_backlight(struct backlight_device *backlight) > +{ > + unsigned int old_state; > + int ret; > + > + if (!backlight) > + return 0; > + > + old_state = backlight->props.state; > + backlight->props.state |= BL_CORE_FBBLANK; > + DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, > + backlight->props.state); > + ret = backlight_update_status(backlight); > + if (ret) > + DRM_ERROR("Failed to disable backlight %d\n", ret); > + > + return ret; > +} > +EXPORT_SYMBOL(tinydrm_disable_backlight); > diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > index bd6cce0..ee8ad8c 100644 > --- a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > @@ -236,100 +236,6 @@ void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, > } > EXPORT_SYMBOL(tinydrm_xrgb8888_to_gray8); > > -/** > - * tinydrm_of_find_backlight - Find backlight device in device-tree > - * @dev: Device > - * > - * This function looks for a DT node pointed to by a property named 'backlight' > - * and uses of_find_backlight_by_node() to get the backlight device. > - * Additionally if the brightness property is zero, it is set to > - * max_brightness. > - * > - * 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 *tinydrm_of_find_backlight(struct device *dev) > -{ > - struct backlight_device *backlight; > - struct device_node *np; > - > - np = of_parse_phandle(dev->of_node, "backlight", 0); > - if (!np) > - return NULL; > - > - backlight = of_find_backlight_by_node(np); > - of_node_put(np); > - > - if (!backlight) > - return ERR_PTR(-EPROBE_DEFER); > - > - if (!backlight->props.brightness) { > - backlight->props.brightness = backlight->props.max_brightness; > - DRM_DEBUG_KMS("Backlight brightness set to %d\n", > - backlight->props.brightness); > - } > - > - return backlight; > -} > -EXPORT_SYMBOL(tinydrm_of_find_backlight); > - > -/** > - * tinydrm_enable_backlight - Enable backlight helper > - * @backlight: Backlight device > - * > - * Returns: > - * Zero on success, negative error code on failure. > - */ > -int tinydrm_enable_backlight(struct backlight_device *backlight) > -{ > - unsigned int old_state; > - int ret; > - > - if (!backlight) > - return 0; > - > - old_state = backlight->props.state; > - backlight->props.state &= ~BL_CORE_FBBLANK; > - DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, > - backlight->props.state); > - > - ret = backlight_update_status(backlight); > - if (ret) > - DRM_ERROR("Failed to enable backlight %d\n", ret); > - > - return ret; > -} > -EXPORT_SYMBOL(tinydrm_enable_backlight); > - > -/** > - * tinydrm_disable_backlight - Disable backlight helper > - * @backlight: Backlight device > - * > - * Returns: > - * Zero on success, negative error code on failure. > - */ > -int tinydrm_disable_backlight(struct backlight_device *backlight) > -{ > - unsigned int old_state; > - int ret; > - > - if (!backlight) > - return 0; > - > - old_state = backlight->props.state; > - backlight->props.state |= BL_CORE_FBBLANK; > - DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, > - backlight->props.state); > - ret = backlight_update_status(backlight); > - if (ret) > - DRM_ERROR("Failed to disable backlight %d\n", ret); > - > - return ret; > -} > -EXPORT_SYMBOL(tinydrm_disable_backlight); > > #if IS_ENABLED(CONFIG_SPI) > > diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c b/drivers/gpu/drm/tinydrm/mi0283qt.c > index 7e5bb7d..c161d45 100644 > --- a/drivers/gpu/drm/tinydrm/mi0283qt.c > +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include > #include > #include > #include > diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c > index 2caeabc..dc84f26 100644 > --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c > +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c > @@ -11,6 +11,7 @@ > > #include > #include > +#include > #include > #include > #include > diff --git a/include/drm/tinydrm/tinydrm-backlight.h b/include/drm/tinydrm/tinydrm-backlight.h > new file mode 100644 > index 0000000..6a7b6d5 > --- /dev/null > +++ b/include/drm/tinydrm/tinydrm-backlight.h > @@ -0,0 +1,18 @@ > +/* > + * Copyright (C) 2016 Noralf Trønnes > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + */ > + > +#ifndef __LINUX_TINYDRM_BACKLIGHT_H > +#define __LINUX_TINYDRM_BACKLIGHT_H > + > +struct backlight_device; > +struct backlight_device *tinydrm_of_find_backlight(struct device *dev); > +int tinydrm_enable_backlight(struct backlight_device *backlight); > +int tinydrm_disable_backlight(struct backlight_device *backlight); > + > +#endif /* __LINUX_TINYDRM_BACKLIGHT_H */