From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: Re: [Intel-gfx] [v2 7/7] drm/i915: Backlight control using CRC PMIC based PWM driver Date: Thu, 25 Jun 2015 17:38:50 +0530 Message-ID: References: <1434970465-12687-1-git-send-email-shobhit.kumar@intel.com> <1434970465-12687-8-git-send-email-shobhit.kumar@intel.com> <20150625084841.GZ5176@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150625084841.GZ5176@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: linux-pwm , Paul Bolle , Samuel Ortiz , Alexandre Courbot , Jani Nikula , Shobhit Kumar , intel-gfx , Paul Gortmaker , linux-kernel , dri-devel , Povilas Staniulis , Brain WrecK , linux-gpio , Daniel Vetter , Lee Jones List-Id: linux-gpio@vger.kernel.org T24gVGh1LCBKdW4gMjUsIDIwMTUgYXQgMjoxOCBQTSwgVmlsbGUgU3lyasOkbMOkCjx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gTW9uLCBKdW4gMjIsIDIwMTUgYXQg MDQ6MjQ6MjVQTSArMDUzMCwgU2hvYmhpdCBLdW1hciB3cm90ZToKPj4gVXNlIHRoZSBDUkMgUFdN IGRldmljZSBpbiBpbnRlbF9wYW5lbC5jIGFuZCBhZGQgbmV3IE1JUEkgYmFja2xpZ2h0Cj4+IHNw ZWNpZmlmYyBjYWxsYmFja3MKPj4KPj4gdjI6IE1vZGlmeSB0byB1c2UgcHdtX2NvbmZpZyBjYWxs YmFjawo+PiB2MzogQWRkcmVzc2VkIEphbmkncyBjb21tZW50cwo+PiAgICAgLSBSZW5hbWVkIGFs bCBmdW5jdGlvbiBhcyBwd21fKiBpbnN0ZWFkIG9mIHZsdl8qCj4+ICAgICAtIENhbGwgaW50ZWxf cGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodCBpbiBlbmFibGUgZnVuY3Rpb24KPj4gICAgIC0g UmV0dXJuIC1FTk9ERVYgaW4gY2FzZSBwd21fZ2V0IGZhaWxzCj4+ICAgICAtIGluIGNhc2UgcHdt X2NvbmZpZyBlcnJvciByZXR1cm4gZXJyb3IgY2RvZSBmcm9tIHB3bV9jb25maWcKPj4gICAgIC0g Q2xlYW51cCBwd20gaW4gaW50ZWxfcGFuZWxfZGVzdHJveV9iYWNrbGlnaHQKPj4KPj4gQ0M6IFNh bXVlbCBPcnRpeiA8c2FtZW9AbGludXguaW50ZWwuY29tPgo+PiBDYzogTGludXMgV2FsbGVpaiA8 bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgo+PiBDYzogQWxleGFuZHJlIENvdXJib3QgPGdudXJv dUBnbWFpbC5jb20+Cj4+IENjOiBUaGllcnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwu Y29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBTaG9iaGl0IEt1bWFyIDxzaG9iaGl0Lmt1bWFyQGludGVs LmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgIHwgIDQg KysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgfCAgNiArKysKPj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgfCA5NSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gaW5kZXgg MmFmYjMxYS4uNTYxYzE3ZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gQEAg LTE4Miw2ICsxODIsMTAgQEAgc3RydWN0IGludGVsX3BhbmVsIHsKPj4gICAgICAgICAgICAgICBi b29sIGVuYWJsZWQ7Cj4+ICAgICAgICAgICAgICAgYm9vbCBjb21iaW5hdGlvbl9tb2RlOyAgLyog Z2VuIDIvNCBvbmx5ICovCj4+ICAgICAgICAgICAgICAgYm9vbCBhY3RpdmVfbG93X3B3bTsKPj4g Kwo+PiArICAgICAgICAgICAgIC8qIFBXTSBjaGlwICovCj4+ICsgICAgICAgICAgICAgc3RydWN0 IHB3bV9kZXZpY2UgKnB3bTsKPj4gKwo+PiAgICAgICAgICAgICAgIHN0cnVjdCBiYWNrbGlnaHRf ZGV2aWNlICpkZXZpY2U7Cj4+ICAgICAgIH0gYmFja2xpZ2h0Owo+Pgo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYwo+PiBpbmRleCBjNGRiNzRhLi5iZTg3MjJjIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYwo+PiBAQCAtNDAyLDYgKzQwMiw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rz aV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+Cj4+ICAgICAgICAgICAg ICAgaW50ZWxfZHNpX3BvcnRfZW5hYmxlKGVuY29kZXIpOwo+PiAgICAgICB9Cj4+ICsKPj4gKyAg ICAgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2tsaWdodChpbnRlbF9kc2ktPmF0dGFjaGVkX2Nvbm5l Y3Rvcik7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gQEAgLTQ2Niw2ICs0NjgsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kc2lfcHJlX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp Cj4+Cj4+ICAgICAgIERSTV9ERUJVR19LTVMoIlxuIik7Cj4+Cj4+ICsgICAgIGludGVsX3BhbmVs X2Rpc2FibGVfYmFja2xpZ2h0KGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yKTsKPj4gKwo+ PiAgICAgICBpZiAoaXNfdmlkX21vZGUoaW50ZWxfZHNpKSkgewo+PiAgICAgICAgICAgICAgIC8q IFNlbmQgU2h1dGRvd24gY29tbWFuZCB0byB0aGUgcGFuZWwgaW4gTFAgbW9kZSAqLwo+PiAgICAg ICAgICAgICAgIGZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpCj4+IEBA IC0xMTMyLDYgKzExMzYsOCBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4+ICAgICAgIH0KPj4KPj4gICAgICAgaW50ZWxfcGFuZWxfaW5pdCgmaW50ZWxfY29u bmVjdG9yLT5wYW5lbCwgZml4ZWRfbW9kZSwgTlVMTCk7Cj4+ICsgICAgIGludGVsX3BhbmVsX3Nl dHVwX2JhY2tsaWdodChjb25uZWN0b3IsCj4+ICsgICAgICAgICAgICAgKGludGVsX2VuY29kZXIt PmNydGNfbWFzayA9ICgxIDw8IFBJUEVfQSkpID8gUElQRV9BIDogUElQRV9CKTsKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4KPiBXaG9vcHMuIEJ1dCBzaW5j ZSB0aGUgUFdNIGJhY2tsaWdodCBkb2Vzbid0IG5lZWQgdGhlIGluaXRpYWwgcGlwZSBmb3IKPiBh bnl0aGluZyB5b3UgY2FuIGFjdHVhbGx5IGp1c3QgcGFzcyBJTlZBTElEX1BJUEUgaGVyZS4KPgoK WW91IGFyZSByaWdodCwgaXRzIHVudXNlZCwgYnV0IEkgdGhvdWdodCBwYXNzaW5nIHJpZ2h0IHZh bHVlIHN0aWxsCm1hZGUgc2Vuc2UuIE90aGVyd2lzZSBpdCBtYWtlcyBpdCBsb29rIGxpa2UgSSBh bSBzZXR0aW5nIHVwIGJhY2stbGlnaHQKZm9yIGludmFsaWQgcGlwZSwgd2hlbiB0aGUgcmVhbCBt ZWFuaW5nIGlzIHNvbWV0aGluZyBsaWtlCkRPTlRDQVJFX1BJUEUKCj4+Cj4+ICAgICAgIHJldHVy bjsKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+IGluZGV4IDdkODM1MjcuLjJh YTMwZGIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+PiBAQCAtMzIsOCAr MzIsMTIgQEAKPj4KPj4gICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPj4gICNpbmNsdWRlIDxs aW51eC9tb2R1bGVwYXJhbS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3B3bS5oPgo+PiAgI2luY2x1 ZGUgImludGVsX2Rydi5oIgo+Pgo+PiArI2RlZmluZSBDUkNfUE1JQ19QV01fUEVSSU9EX05TICAg ICAgIDIxMzMzCj4+ICsjZGVmaW5lIENSQ19QTUlDX1BXTV9TVEVQUyAgIDI1NQo+Cj4gVGhpcyBk ZWZpbmUgYXBwZWFycyB0byBiZSB1bnVzZWQuCj4KClllYWgsIG1pc3NlZCByZW1vdmluZyBpdC4K Cj4+ICsKPj4gIHZvaWQKPj4gIGludGVsX2ZpeGVkX3BhbmVsX21vZGUoY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUsCj4+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+PiBAQCAtNTQ0LDYgKzU0OCwxNSBA QCBzdGF0aWMgdTMyIGJ4dF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKPj4gICAgICAgcmV0dXJuIEk5MTVfUkVBRChCWFRfQkxDX1BXTV9EVVRZMSk7Cj4+ ICB9Cj4+Cj4+ICtzdGF0aWMgdTMyIHB3bV9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPj4gK3sKPj4gKyAgICAgc3RydWN0IGludGVsX3BhbmVsICpwYW5l bCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArICAgICBpbnQgZHV0eV9uczsKPj4gKwo+PiArICAg ICBkdXR5X25zID0gcHdtX2dldF9kdXR5X2N5Y2xlKHBhbmVsLT5iYWNrbGlnaHQucHdtKTsKPj4g KyAgICAgcmV0dXJuIERJVl9ST1VORF9VUChkdXR5X25zICogMTAwLCBDUkNfUE1JQ19QV01fUEVS SU9EX05TKTsKPj4gK30KPj4gKwo+PiAgc3RhdGljIHUzMiBpbnRlbF9wYW5lbF9nZXRfYmFja2xp Z2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gIHsKPj4gICAgICAgc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4+IEBAIC02MzIsNiAr NjQ1LDE0IEBAIHN0YXRpYyB2b2lkIGJ4dF9zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQo+PiAgICAgICBJOTE1X1dSSVRFKEJYVF9CTENf UFdNX0RVVFkxLCBsZXZlbCk7Cj4+ICB9Cj4+Cj4+ICtzdGF0aWMgdm9pZCBwd21fc2V0X2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKPj4gK3sK Pj4gKyAgICAgc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ PiArICAgICBpbnQgZHV0eV9ucyA9IERJVl9ST1VORF9VUChsZXZlbCAqIENSQ19QTUlDX1BXTV9Q RVJJT0RfTlMsIDEwMCk7Cj4+ICsKPj4gKyAgICAgcHdtX2NvbmZpZyhwYW5lbC0+YmFja2xpZ2h0 LnB3bSwgZHV0eV9ucywgQ1JDX1BNSUNfUFdNX1BFUklPRF9OUyk7Cj4+ICt9Cj4+ICsKPj4gIHN0 YXRpYyB2b2lkCj4+ICBpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQo+PiAgewo+PiBAQCAtNzY5LDYg Kzc5MCwxNiBAQCBzdGF0aWMgdm9pZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAgICAgICBJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NU TDEsIHRtcCAmIH5CWFRfQkxDX1BXTV9FTkFCTEUpOwo+PiAgfQo+Pgo+PiArc3RhdGljIHZvaWQg cHdtX2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK Pj4gK3sKPj4gKyAgICAgc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBh bmVsOwo+PiArCj4+ICsgICAgIC8qIERpc2FibGUgdGhlIGJhY2tsaWdodCAqLwo+PiArICAgICBw d21fY29uZmlnKHBhbmVsLT5iYWNrbGlnaHQucHdtLCAwLCBDUkNfUE1JQ19QV01fUEVSSU9EX05T KTsKPj4gKyAgICAgdXNsZWVwX3JhbmdlKDIwMDAsIDMwMDApOwo+PiArICAgICBwd21fZGlzYWJs ZShwYW5lbC0+YmFja2xpZ2h0LnB3bSk7Cj4+ICt9Cj4+ICsKPj4gIHZvaWQgaW50ZWxfcGFuZWxf ZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAg ewo+PiAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsK Pj4gQEAgLTEwMDIsNiArMTAzMywxNCBAQCBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICAgICAgIEk5MTVfV1JJVEUo QlhUX0JMQ19QV01fQ1RMMSwgcHdtX2N0bCB8IEJYVF9CTENfUFdNX0VOQUJMRSk7Cj4+ICB9Cj4+ Cj4+ICtzdGF0aWMgdm9pZCBwd21fZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCj4+ICt7Cj4+ICsgICAgIHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwg PSAmY29ubmVjdG9yLT5wYW5lbDsKPj4gKwo+PiArICAgICBwd21fZW5hYmxlKHBhbmVsLT5iYWNr bGlnaHQucHdtKTsKPj4gKyAgICAgaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChj b25uZWN0b3IsIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOwo+PiArfQo+PiArCj4+ICB2b2lkIGlu dGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+PiAgewo+PiAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5i YXNlLmRldjsKPj4gQEAgLTEzNzgsNiArMTQxNyw0MCBAQCBieHRfc2V0dXBfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHVudXNlZCkKPj4gICAg ICAgcmV0dXJuIDA7Cj4+ICB9Cj4+Cj4+ICtzdGF0aWMgaW50IHB3bV9zZXR1cF9iYWNrbGlnaHQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0gcGlwZSBwaXBlKQo+PiArewo+PiArICAgICBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gKyAgICAgc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArICAgICBpbnQgcmV0dmFsID0gLTE7Cj4K PiBObyBuZWVkIHRvIGluaXRpYWxpemUgaXQuCj4KPj4gKwo+PiArICAgICAvKiBHZXQgdGhlIFBX TSBjaGlwIGZvciBiYWNrbGlnaHQgY29udHJvbCAqLwo+PiArICAgICBwYW5lbC0+YmFja2xpZ2h0 LnB3bSA9IHB3bV9nZXQoZGV2LT5kZXYsICJwd21fYmFja2xpZ2h0Iik7Cj4+ICsgICAgIGlmIChJ U19FUlIocGFuZWwtPmJhY2tsaWdodC5wd20pKSB7Cj4+ICsgICAgICAgICAgICAgRFJNX0VSUk9S KCJGYWlsZWQgdG8gb3duIHRoZSBwd20gY2hpcFxuIik7Cj4+ICsgICAgICAgICAgICAgcGFuZWwt PmJhY2tsaWdodC5wd20gPSBOVUxMOwo+PiArICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+ PiArICAgICB9Cj4+ICsKPj4gKyAgICAgcmV0dmFsID0gcHdtX2NvbmZpZyhwYW5lbC0+YmFja2xp Z2h0LnB3bSwgQ1JDX1BNSUNfUFdNX1BFUklPRF9OUywKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICBDUkNfUE1JQ19QV01fUEVSSU9EX05TKTsKPj4gKyAgICAgaWYgKHJldHZhbCA8IDApIHsK Pj4gKyAgICAgICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byBjb25maWd1cmUgdGhlIHB3bSBj aGlwXG4iKTsKPj4gKyAgICAgICAgICAgICBwd21fcHV0KHBhbmVsLT5iYWNrbGlnaHQucHdtKTsK Pj4gKyAgICAgICAgICAgICBwYW5lbC0+YmFja2xpZ2h0LnB3bSA9IE5VTEw7Cj4+ICsgICAgICAg ICAgICAgcmV0dXJuIHJldHZhbDsKPj4gKyAgICAgfQo+PiArCj4+ICsgICAgIHBhbmVsLT5iYWNr bGlnaHQubWluID0gMDsgLyogMCUgKi8KPj4gKyAgICAgcGFuZWwtPmJhY2tsaWdodC5tYXggPSAx MDA7IC8qIDEwMCUgKi8KPj4gKyAgICAgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IERJVl9ST1VO RF9VUCgKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3bV9nZXRfZHV0eV9jeWNs ZShwYW5lbC0+YmFja2xpZ2h0LnB3bSkgKiAxMDAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDUkNfUE1JQ19QV01fUEVSSU9EX05TKTsKPj4gKyAgICAgcGFuZWwtPmJhY2tsaWdo dC5lbmFibGVkID0gcGFuZWwtPmJhY2tsaWdodC5sZXZlbCAhPSAwOwo+PiArCj4+ICsgICAgIHJl dHVybiAwOwo+PiArfQo+PiArCj4+ICBpbnQgaW50ZWxfcGFuZWxfc2V0dXBfYmFja2xpZ2h0KHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGVudW0gcGlwZSBwaXBlKQo+PiAgewo+PiAg ICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4+IEBAIC0xNDIx LDYgKzE0OTQsMTAgQEAgdm9pZCBpbnRlbF9wYW5lbF9kZXN0cm95X2JhY2tsaWdodChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICppbnRlbF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPj4gICAg ICAgc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZpbnRlbF9jb25uZWN0b3ItPnBhbmVsOwo+ Pgo+PiArICAgICAvKiBkaXNwb3NlIG9mIHRoZSBwd20gKi8KPj4gKyAgICAgaWYgKHBhbmVsLT5i YWNrbGlnaHQucHdtKQo+PiArICAgICAgICAgICAgIHB3bV9wdXQocGFuZWwtPmJhY2tsaWdodC5w d20pOwo+PiArCj4+ICAgICAgIHBhbmVsLT5iYWNrbGlnaHQucHJlc2VudCA9IGZhbHNlOwo+PiAg fQo+Pgo+PiBAQCAtMTQ0OCwxMSArMTUyNSwxOSBAQCB2b2lkIGludGVsX3BhbmVsX2luaXRfYmFj a2xpZ2h0X2Z1bmNzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgICAgICAgICAgICAgZGV2 X3ByaXYtPmRpc3BsYXkuc2V0X2JhY2tsaWdodCA9IHBjaF9zZXRfYmFja2xpZ2h0Owo+PiAgICAg ICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5LmdldF9iYWNrbGlnaHQgPSBwY2hfZ2V0X2JhY2ts aWdodDsKPj4gICAgICAgfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPj4gLSAgICAg ICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPSB2bHZfc2V0dXBfYmFj a2xpZ2h0Owo+PiAtICAgICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGln aHQgPSB2bHZfZW5hYmxlX2JhY2tsaWdodDsKPj4gLSAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlz cGxheS5kaXNhYmxlX2JhY2tsaWdodCA9IHZsdl9kaXNhYmxlX2JhY2tsaWdodDsKPj4gLSAgICAg ICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5zZXRfYmFja2xpZ2h0ID0gdmx2X3NldF9iYWNrbGln aHQ7Cj4+IC0gICAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2JhY2tsaWdodCA9IHZs dl9nZXRfYmFja2xpZ2h0Owo+PiArICAgICAgICAgICAgIGlmIChkZXZfcHJpdi0+dmJ0Lmhhc19t aXBpKSB7Cj4KPiBEbyBhbGwgVkxWIERTSSBkZXNpbnMgdXNlIHRoZSBQTUlDIGZvciBiYWNrbGln aHQsIG9yIGlzIHRoZXJlCj4gc29tZXRoaW5nIG1vcmUgc3BlY2lmaWMgaW4gVkJUIHdlIGNvdWxk IGxvb2sgYXQ/Cj4KCk5vLCBWTFYgZGVzaWducyBjYW4gYWN0dWFsbHkgYWxzbyB1c2UgTFBTUyBQ V00gYXMgd2VsbCBhcyBESVNQTEFZX1BXTS4KSW5mYWN0IHdlIGhhZCBhIGNhc2Ugd2hlcmUgZXZl biBmb3IgZURQLCBjdXN0b21lciBkZXNpZ24gdXNlZCBMUFNTLiBTbwp0aGlzIGZsYWcgaW4gVkJU IGZvciBtaXBpX2NvbmZpZyBibG9jayAicHdtX2JsYyIgaW5kaWNhdGUgdGhlIHNhbWUgZm9yCm5v dy4gQnV0IHRvZGF5IHRoaXMgaXMgb25seSBQTUlDIFZzIExQU1MuIFRoZXJlIGlzIGFub3RoZXIg dXBkYXRlCnBlbmRpbmcgd2hlcmUgd2UgaGF2ZSBmdWxsIGZsZXhpYmlsaXR5IGluIFZCVCB0byBk ZWZpbmUgUE1JQyBvciBMUFNTCm9yIERJU1BMQVlfUFdNIHRvIGhhbmRsZSB0aGUgZURQIGNhc2Ug dGhhdCBJIG1lbnRpb25lZCBhYm92ZS4KCj4gQW5kIHdoYXQgYWJvdXQgQ0hUPwoKSXRzIHRoZSBz YW1lIGFzIEkgZGVzY3JpYmVkIGFib3ZlLiBCdXQgdGhlbiBiZXlvbmQgQ0hULCB0aGVyZSBpcwpl ZmZvcnQgdG8gdW5pZnkgdGhpcyBhbGwgYXMgb25seSBvbmUgU29DIFBXTS4KCj4KPiBPdGh3ZXJ3 aXNlIHRoaW5ncyBzZWVtIHJlYXNvbmFibGUsIHNvIHdpdGggdGhlIHRoZQo+IGludGVsX3BhbmVs X3NldHVwX2JhY2tsaWdodCgpIHBpcGUgdGhpbmcgZml4ZWQgdGhpcyBwYXRjaCBpcwo+IFJldmll d2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ Cj4gSSBhbHNvIGdhdmUgdGhlIGVudGlyZSBzZXJpZXMgYSBnbyBvbiBteSBGRlJEOCBhbmQgaXQg YXBwZWFycyB0byB3b3JrCj4ganVzdCBmaW5lLCBzbyB5b3UgY2FuIGFsc28gYWRkCj4gVGVzdGVk LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IHRv IGFsbCB0aGUgcGF0Y2hlcyBpZiB5b3Ugd2FudC4KClRoYW5rcyBhIGxvdCBmb3IgdGVzdGluZyBp dCBvdXQuCgpSZWdhcmRzClNob2JoaXQKCj4KPj4gKyAgICAgICAgICAgICAgICAgICAgIGRldl9w cml2LT5kaXNwbGF5LnNldHVwX2JhY2tsaWdodCA9IHB3bV9zZXR1cF9iYWNrbGlnaHQ7Cj4+ICsg ICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5lbmFibGVfYmFja2xpZ2h0ID0g cHdtX2VuYWJsZV9iYWNrbGlnaHQ7Cj4+ICsgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ ZGlzcGxheS5kaXNhYmxlX2JhY2tsaWdodCA9IHB3bV9kaXNhYmxlX2JhY2tsaWdodDsKPj4gKyAg ICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5LnNldF9iYWNrbGlnaHQgPSBwd21f c2V0X2JhY2tsaWdodDsKPj4gKyAgICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5 LmdldF9iYWNrbGlnaHQgPSBwd21fZ2V0X2JhY2tsaWdodDsKPj4gKyAgICAgICAgICAgICB9IGVs c2Ugewo+PiArICAgICAgICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuc2V0dXBfYmFj a2xpZ2h0ID0gdmx2X3NldHVwX2JhY2tsaWdodDsKPj4gKyAgICAgICAgICAgICAgICAgICAgIGRl dl9wcml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGlnaHQgPSB2bHZfZW5hYmxlX2JhY2tsaWdodDsK Pj4gKyAgICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5LmRpc2FibGVfYmFja2xp Z2h0ID0gdmx2X2Rpc2FibGVfYmFja2xpZ2h0Owo+PiArICAgICAgICAgICAgICAgICAgICAgZGV2 X3ByaXYtPmRpc3BsYXkuc2V0X2JhY2tsaWdodCA9IHZsdl9zZXRfYmFja2xpZ2h0Owo+PiArICAg ICAgICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2JhY2tsaWdodCA9IHZsdl9n ZXRfYmFja2xpZ2h0Owo+PiArICAgICAgICAgICAgIH0KPj4gICAgICAgfSBlbHNlIGlmIChJU19H RU40KGRldikpIHsKPj4gICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNr bGlnaHQgPSBpOTY1X3NldHVwX2JhY2tsaWdodDsKPj4gICAgICAgICAgICAgICBkZXZfcHJpdi0+ ZGlzcGxheS5lbmFibGVfYmFja2xpZ2h0ID0gaTk2NV9lbmFibGVfYmFja2xpZ2h0Owo+PiAtLQo+ PiAxLjkuMQo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo+Cj4gLS0KPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbCBPVEMKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751414AbbFYMIz (ORCPT ); Thu, 25 Jun 2015 08:08:55 -0400 Received: from mail-ig0-f182.google.com ([209.85.213.182]:34728 "EHLO mail-ig0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751495AbbFYMIv convert rfc822-to-8bit (ORCPT ); Thu, 25 Jun 2015 08:08:51 -0400 MIME-Version: 1.0 In-Reply-To: <20150625084841.GZ5176@intel.com> References: <1434970465-12687-1-git-send-email-shobhit.kumar@intel.com> <1434970465-12687-8-git-send-email-shobhit.kumar@intel.com> <20150625084841.GZ5176@intel.com> Date: Thu, 25 Jun 2015 17:38:50 +0530 Message-ID: Subject: Re: [Intel-gfx] [v2 7/7] drm/i915: Backlight control using CRC PMIC based PWM driver From: Shobhit Kumar To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Shobhit Kumar , Alexandre Courbot , Paul Bolle , Samuel Ortiz , linux-pwm , Jani Nikula , Povilas Staniulis , intel-gfx , Paul Gortmaker , linux-kernel , dri-devel , linux-gpio , Brain WrecK , Thierry Reding , David Airlie , Daniel Vetter , Lee Jones , Linus Walleij , Chih-Wei Huang Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 25, 2015 at 2:18 PM, Ville Syrjälä wrote: > On Mon, Jun 22, 2015 at 04:24:25PM +0530, Shobhit Kumar wrote: >> Use the CRC PWM device in intel_panel.c and add new MIPI backlight >> specififc callbacks >> >> v2: Modify to use pwm_config callback >> v3: Addressed Jani's comments >> - Renamed all function as pwm_* instead of vlv_* >> - Call intel_panel_actually_set_backlight in enable function >> - Return -ENODEV in case pwm_get fails >> - in case pwm_config error return error cdoe from pwm_config >> - Cleanup pwm in intel_panel_destroy_backlight >> >> CC: Samuel Ortiz >> Cc: Linus Walleij >> Cc: Alexandre Courbot >> Cc: Thierry Reding >> Signed-off-by: Shobhit Kumar >> --- >> drivers/gpu/drm/i915/intel_drv.h | 4 ++ >> drivers/gpu/drm/i915/intel_dsi.c | 6 +++ >> drivers/gpu/drm/i915/intel_panel.c | 95 ++++++++++++++++++++++++++++++++++++-- >> 3 files changed, 100 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h >> index 2afb31a..561c17f 100644 >> --- a/drivers/gpu/drm/i915/intel_drv.h >> +++ b/drivers/gpu/drm/i915/intel_drv.h >> @@ -182,6 +182,10 @@ struct intel_panel { >> bool enabled; >> bool combination_mode; /* gen 2/4 only */ >> bool active_low_pwm; >> + >> + /* PWM chip */ >> + struct pwm_device *pwm; >> + >> struct backlight_device *device; >> } backlight; >> >> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c >> index c4db74a..be8722c 100644 >> --- a/drivers/gpu/drm/i915/intel_dsi.c >> +++ b/drivers/gpu/drm/i915/intel_dsi.c >> @@ -402,6 +402,8 @@ static void intel_dsi_enable(struct intel_encoder *encoder) >> >> intel_dsi_port_enable(encoder); >> } >> + >> + intel_panel_enable_backlight(intel_dsi->attached_connector); >> } >> >> static void intel_dsi_pre_enable(struct intel_encoder *encoder) >> @@ -466,6 +468,8 @@ static void intel_dsi_pre_disable(struct intel_encoder *encoder) >> >> DRM_DEBUG_KMS("\n"); >> >> + intel_panel_disable_backlight(intel_dsi->attached_connector); >> + >> if (is_vid_mode(intel_dsi)) { >> /* Send Shutdown command to the panel in LP mode */ >> for_each_dsi_port(port, intel_dsi->ports) >> @@ -1132,6 +1136,8 @@ void intel_dsi_init(struct drm_device *dev) >> } >> >> intel_panel_init(&intel_connector->panel, fixed_mode, NULL); >> + intel_panel_setup_backlight(connector, >> + (intel_encoder->crtc_mask = (1 << PIPE_A)) ? PIPE_A : PIPE_B); > ^ > > Whoops. But since the PWM backlight doesn't need the initial pipe for > anything you can actually just pass INVALID_PIPE here. > You are right, its unused, but I thought passing right value still made sense. Otherwise it makes it look like I am setting up back-light for invalid pipe, when the real meaning is something like DONTCARE_PIPE >> >> return; >> >> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c >> index 7d83527..2aa30db 100644 >> --- a/drivers/gpu/drm/i915/intel_panel.c >> +++ b/drivers/gpu/drm/i915/intel_panel.c >> @@ -32,8 +32,12 @@ >> >> #include >> #include >> +#include >> #include "intel_drv.h" >> >> +#define CRC_PMIC_PWM_PERIOD_NS 21333 >> +#define CRC_PMIC_PWM_STEPS 255 > > This define appears to be unused. > Yeah, missed removing it. >> + >> void >> intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode, >> struct drm_display_mode *adjusted_mode) >> @@ -544,6 +548,15 @@ static u32 bxt_get_backlight(struct intel_connector *connector) >> return I915_READ(BXT_BLC_PWM_DUTY1); >> } >> >> +static u32 pwm_get_backlight(struct intel_connector *connector) >> +{ >> + struct intel_panel *panel = &connector->panel; >> + int duty_ns; >> + >> + duty_ns = pwm_get_duty_cycle(panel->backlight.pwm); >> + return DIV_ROUND_UP(duty_ns * 100, CRC_PMIC_PWM_PERIOD_NS); >> +} >> + >> static u32 intel_panel_get_backlight(struct intel_connector *connector) >> { >> struct drm_device *dev = connector->base.dev; >> @@ -632,6 +645,14 @@ static void bxt_set_backlight(struct intel_connector *connector, u32 level) >> I915_WRITE(BXT_BLC_PWM_DUTY1, level); >> } >> >> +static void pwm_set_backlight(struct intel_connector *connector, u32 level) >> +{ >> + struct intel_panel *panel = &connector->panel; >> + int duty_ns = DIV_ROUND_UP(level * CRC_PMIC_PWM_PERIOD_NS, 100); >> + >> + pwm_config(panel->backlight.pwm, duty_ns, CRC_PMIC_PWM_PERIOD_NS); >> +} >> + >> static void >> intel_panel_actually_set_backlight(struct intel_connector *connector, u32 level) >> { >> @@ -769,6 +790,16 @@ static void bxt_disable_backlight(struct intel_connector *connector) >> I915_WRITE(BXT_BLC_PWM_CTL1, tmp & ~BXT_BLC_PWM_ENABLE); >> } >> >> +static void pwm_disable_backlight(struct intel_connector *connector) >> +{ >> + struct intel_panel *panel = &connector->panel; >> + >> + /* Disable the backlight */ >> + pwm_config(panel->backlight.pwm, 0, CRC_PMIC_PWM_PERIOD_NS); >> + usleep_range(2000, 3000); >> + pwm_disable(panel->backlight.pwm); >> +} >> + >> void intel_panel_disable_backlight(struct intel_connector *connector) >> { >> struct drm_device *dev = connector->base.dev; >> @@ -1002,6 +1033,14 @@ static void bxt_enable_backlight(struct intel_connector *connector) >> I915_WRITE(BXT_BLC_PWM_CTL1, pwm_ctl | BXT_BLC_PWM_ENABLE); >> } >> >> +static void pwm_enable_backlight(struct intel_connector *connector) >> +{ >> + struct intel_panel *panel = &connector->panel; >> + >> + pwm_enable(panel->backlight.pwm); >> + intel_panel_actually_set_backlight(connector, panel->backlight.level); >> +} >> + >> void intel_panel_enable_backlight(struct intel_connector *connector) >> { >> struct drm_device *dev = connector->base.dev; >> @@ -1378,6 +1417,40 @@ bxt_setup_backlight(struct intel_connector *connector, enum pipe unused) >> return 0; >> } >> >> +static int pwm_setup_backlight(struct intel_connector *connector, >> + enum pipe pipe) >> +{ >> + struct drm_device *dev = connector->base.dev; >> + struct intel_panel *panel = &connector->panel; >> + int retval = -1; > > No need to initialize it. > >> + >> + /* Get the PWM chip for backlight control */ >> + panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight"); >> + if (IS_ERR(panel->backlight.pwm)) { >> + DRM_ERROR("Failed to own the pwm chip\n"); >> + panel->backlight.pwm = NULL; >> + return -ENODEV; >> + } >> + >> + retval = pwm_config(panel->backlight.pwm, CRC_PMIC_PWM_PERIOD_NS, >> + CRC_PMIC_PWM_PERIOD_NS); >> + if (retval < 0) { >> + DRM_ERROR("Failed to configure the pwm chip\n"); >> + pwm_put(panel->backlight.pwm); >> + panel->backlight.pwm = NULL; >> + return retval; >> + } >> + >> + panel->backlight.min = 0; /* 0% */ >> + panel->backlight.max = 100; /* 100% */ >> + panel->backlight.level = DIV_ROUND_UP( >> + pwm_get_duty_cycle(panel->backlight.pwm) * 100, >> + CRC_PMIC_PWM_PERIOD_NS); >> + panel->backlight.enabled = panel->backlight.level != 0; >> + >> + return 0; >> +} >> + >> int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe) >> { >> struct drm_device *dev = connector->dev; >> @@ -1421,6 +1494,10 @@ void intel_panel_destroy_backlight(struct drm_connector *connector) >> struct intel_connector *intel_connector = to_intel_connector(connector); >> struct intel_panel *panel = &intel_connector->panel; >> >> + /* dispose of the pwm */ >> + if (panel->backlight.pwm) >> + pwm_put(panel->backlight.pwm); >> + >> panel->backlight.present = false; >> } >> >> @@ -1448,11 +1525,19 @@ void intel_panel_init_backlight_funcs(struct drm_device *dev) >> dev_priv->display.set_backlight = pch_set_backlight; >> dev_priv->display.get_backlight = pch_get_backlight; >> } else if (IS_VALLEYVIEW(dev)) { >> - dev_priv->display.setup_backlight = vlv_setup_backlight; >> - dev_priv->display.enable_backlight = vlv_enable_backlight; >> - dev_priv->display.disable_backlight = vlv_disable_backlight; >> - dev_priv->display.set_backlight = vlv_set_backlight; >> - dev_priv->display.get_backlight = vlv_get_backlight; >> + if (dev_priv->vbt.has_mipi) { > > Do all VLV DSI desins use the PMIC for backlight, or is there > something more specific in VBT we could look at? > No, VLV designs can actually also use LPSS PWM as well as DISPLAY_PWM. Infact we had a case where even for eDP, customer design used LPSS. So this flag in VBT for mipi_config block "pwm_blc" indicate the same for now. But today this is only PMIC Vs LPSS. There is another update pending where we have full flexibility in VBT to define PMIC or LPSS or DISPLAY_PWM to handle the eDP case that I mentioned above. > And what about CHT? Its the same as I described above. But then beyond CHT, there is effort to unify this all as only one SoC PWM. > > Othwerwise things seem reasonable, so with the the > intel_panel_setup_backlight() pipe thing fixed this patch is > Reviewed-by: Ville Syrjälä > > I also gave the entire series a go on my FFRD8 and it appears to work > just fine, so you can also add > Tested-by: Ville Syrjälä > to all the patches if you want. Thanks a lot for testing it out. Regards Shobhit > >> + dev_priv->display.setup_backlight = pwm_setup_backlight; >> + dev_priv->display.enable_backlight = pwm_enable_backlight; >> + dev_priv->display.disable_backlight = pwm_disable_backlight; >> + dev_priv->display.set_backlight = pwm_set_backlight; >> + dev_priv->display.get_backlight = pwm_get_backlight; >> + } else { >> + dev_priv->display.setup_backlight = vlv_setup_backlight; >> + dev_priv->display.enable_backlight = vlv_enable_backlight; >> + dev_priv->display.disable_backlight = vlv_disable_backlight; >> + dev_priv->display.set_backlight = vlv_set_backlight; >> + dev_priv->display.get_backlight = vlv_get_backlight; >> + } >> } else if (IS_GEN4(dev)) { >> dev_priv->display.setup_backlight = i965_setup_backlight; >> dev_priv->display.enable_backlight = i965_enable_backlight; >> -- >> 1.9.1 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Ville Syrjälä > Intel OTC > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx