From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/3] drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) Date: Sun, 8 May 2016 18:24:07 +0200 Message-ID: <20160508162407.GG27098@phenom.ffwll.local> References: <1461669918-4851-1-git-send-email-yetundex.adebisi@intel.com> <1461669918-4851-4-git-send-email-yetundex.adebisi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 71C116E03A for ; Sun, 8 May 2016 16:24:09 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id r12so16822531wme.0 for ; Sun, 08 May 2016 09:24:09 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1461669918-4851-4-git-send-email-yetundex.adebisi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Yetunde Adebisi Cc: Jani Nikula , intel-gfx@lists.freedesktop.org, isg-gms@eclists.intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBcHIgMjYsIDIwMTYgYXQgMTI6MjU6MThQTSArMDEwMCwgWWV0dW5kZSBBZGViaXNp IHdyb3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBlRFAgYmFja2xpZ2h0IGNvbnRy b2wgdXNpbmcgRFBDRCByZWdpc3RlcnMgdG8KPiBiYWNrbGlnaHQgaG9va3MgaW4gaW50ZWxfcGFu ZWwuCj4gCj4gSXQgY2hlY2tzIGZvciBiYWNrbGlnaHQgY29udHJvbCBvdmVyIEFVWCBjaGFubmVs IGNhcGFiaWxpdHkgYW5kIHNldHMgdXAKPiBmdW5jdGlvbiBwb2ludGVycyB0byBnZXQgYW5kIHNl dCB0aGUgYmFja2xpZ2h0IGJyaWdodG5lc3MgbGV2ZWwgaWYKPiBzdXBwb3J0ZWQuCj4gCj4gdjI6 IE1vdmVkIGJhY2tsaWdodCBmdW5jdGlvbnMgZnJvbSBpbnRlbF9kcC5jIGludG8gYSBuZXcgZmls ZQo+IGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYy4gQWxzbyBtb3ZlZCByZWFkaW5nIG9mIGVEUCBk aXNwbGF5IGNvbnRyb2wKPiByZWdpc3RlcnMgdG8gaW50ZWxfZHBfZ2V0X2RwY2QKPiAKPiB2Mzog Q29ycmVjdCBzb21lIGZvcm1hdHRpbmcgbWlzdGFrZXMKPiAKPiB2NDogVXBkYXRlZCB0byB1c2Ug QVVYIGJhY2tsaWdodCBjb250cm9sIGlmIFBXTSBjb250cm9sIGlzIG5vdCBwb3NzaWJsZQo+IAko SmFuaSkKPiB2NTogTW92ZWQgY2FsbCB0byBpbml0aWFsaXplIGJhY2tsaWdodCByZWdpc3RlcnMg dG8gZHBfYXV4X3NldHVwX2JhY2tsaWdodAo+IHY2OiBDaGVjayBEUF9FRFBfQkFDS0xJR0hUX1BJ Tl9FTkFCTEVfQ0FQIGlzIGRpc2FibGVkIGJlZm9yZSBzZXR0aW5nIHVwIEFVWAo+IGJhY2tsaWdo dCBjb250cm9sLiBUbyBmaXggQkxNX1BXTV9FTkFCTEUgaWd0IHRlc3Qgd2FybmluZ3Mgb24gYmR3 X3VsdHJhCj4gdjc6IEFkZCBlbmFibGVfZHBjZF9iYWNrbGlnaHQgbW9kdWxlIHBhcmFtZXRlci4K PiB2ODogUmViYXNlIG9udG8gbGF0ZXN0IGRybS1pbnRlbC1uaWdodGx5IGJyYW5jaAo+IHY5OiBS ZW1vdmUgcmVmZXJlbmNlcyB0byBpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZQo+ICAgICBTcGxpdCBh ZGRpdGlvbiBlZHBfZHBjZCB2YXJpYWJsZSBpbnRvIGEgc2VwYXJhdGUgcGF0Y2gKPiAKPiBDYzog Qm9iIFBhYXV3ZSA8Ym9iLmoucGFhdXdlQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBZZXR1bmRlIEFkZWJpc2kgPHll dHVuZGV4LmFkZWJpc2lAaW50ZWwuY29tPgoKSnVzdCBhIHF1aWNrIGNvbW1lbnQgc2luY2UgSSdt IHR5cGluZyB0aGUgcmVndWxhciBjaGFuZ2Vsb2cgc3VtbWFyaWVzOiBJCnRoaW5rIHRoZSBiYWNr bGlnaHQgZHJpdmVyIGluIGhlcmUgd291bGQgaGF2ZSBiZWVuIHJlYWwgbmljZSBhcyBhIGdlbmVy aWMKdGhpbmcgb24gdG9wIG9mIHRoZSBkcCBhdXggbGlicmFyeS4gQnV0IG9rIGlmIHRoZSBuZXh0 IHBlcnNvbiBnZXRzIHRvIGRvCnRoYXQsIHRvbyA7LSkKLURhbmllbAoKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyAgICAgICAgICAgIHwgICA0ICsKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIHwgMTczICsrKysrKysrKysr KysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAg ICAgICAgICB8ICAgMyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAg ICAgICAgICB8ICAgNCArCj4gIDYgZmlsZXMgY2hhbmdlZCwgMTg2IGluc2VydGlvbnMoKykKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNr bGlnaHQuYwo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gaW5kZXggMGI4OGJhMC4uNzIzYzUwMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gQEAgLTgxLDYgKzgxLDcgQEAgaTkxNS15ICs9IGR2 b19jaDcwMTcubyBcCj4gIAkgIGR2b190ZnA0MTAubyBcCj4gIAkgIGludGVsX2NydC5vIFwKPiAg CSAgaW50ZWxfZGRpLm8gXAo+ICsJICBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0Lm8gXAo+ICAJICBp bnRlbF9kcF9saW5rX3RyYWluaW5nLm8gXAo+ICAJICBpbnRlbF9kcF9tc3QubyBcCj4gIAkgIGlu dGVsX2RwLm8gXAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFt cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYwo+IGluZGV4IDE3NzlmMDIu LjM4M2MwNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKPiBAQCAtNTgsNiAr NTgsNyBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gewo+ICAJLmd1 Y19sb2dfbGV2ZWwgPSAtMSwKPiAgCS5lbmFibGVfZHBfbXN0ID0gdHJ1ZSwKPiAgCS5pbmplY3Rf bG9hZF9mYWlsdXJlID0gMCwKPiArCS5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPSBmYWxzZSwKPiAg fTsKPiAgCj4gIG1vZHVsZV9wYXJhbV9uYW1lZChtb2Rlc2V0LCBpOTE1Lm1vZGVzZXQsIGludCwg MDQwMCk7Cj4gQEAgLTIxMCwzICsyMTEsNiBAQCBNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9kcF9t c3QsCj4gIG1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoaW5qZWN0X2xvYWRfZmFpbHVyZSwgaTkx NS5pbmplY3RfbG9hZF9mYWlsdXJlLCB1aW50LCAwNDAwKTsKPiAgTU9EVUxFX1BBUk1fREVTQyhp bmplY3RfbG9hZF9mYWlsdXJlLAo+ICAJIkZvcmNlIGFuIGVycm9yIGFmdGVyIGEgbnVtYmVyIG9m IGZhaWx1cmUgY2hlY2sgcG9pbnRzICgwOmRpc2FibGVkIChkZWZhdWx0KSwgTjpmb3JjZSBmYWls dXJlIGF0IHRoZSBOdGggZmFpbHVyZSBjaGVjayBwb2ludCkiKTsKPiArbW9kdWxlX3BhcmFtX25h bWVkKGVuYWJsZV9kcGNkX2JhY2tsaWdodCwgaTkxNS5lbmFibGVfZHBjZF9iYWNrbGlnaHQsIGJv b2wsIDA2MDApOwo+ICtNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9kcGNkX2JhY2tsaWdodCwKPiAr CSJFbmFibGUgc3VwcG9ydCBmb3IgRFBDRCBiYWNrbGlnaHQgY29udHJvbCAoZGVmYXVsdDpmYWxz ZSkiKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKPiBpbmRleCAwMmJjMjc4Li42NWU3 M2RkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCj4gQEAgLTYxLDYgKzYxLDcg QEAgc3RydWN0IGk5MTVfcGFyYW1zIHsKPiAgCWJvb2wgdmVyYm9zZV9zdGF0ZV9jaGVja3M7Cj4g IAlib29sIG51Y2xlYXJfcGFnZWZsaXA7Cj4gIAlib29sIGVuYWJsZV9kcF9tc3Q7Cj4gKwlib29s IGVuYWJsZV9kcGNkX2JhY2tsaWdodDsKPiAgfTsKPiAgCj4gIGV4dGVybiBzdHJ1Y3QgaTkxNV9w YXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcF9hdXhfYmFja2xpZ2h0LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAuLjk4NGZiMGQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jCj4gQEAgLTAsMCArMSwxNzMgQEAKPiArLyoKPiArICog Q29weXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4g KyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBT b2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZU V0FSRS4KPiArICoKPiArICovCj4gKwo+ICsjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4gKwo+ICtz dGF0aWMgdm9pZCBzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwgYm9vbCBlbmFibGUpCj4gK3sKPiArCXVpbnQ4X3QgcmVnX3ZhbCA9IDA7Cj4gKwo+ICsJ aWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LCBEUF9FRFBfRElTUExBWV9DT05U Uk9MX1JFR0lTVEVSLAo+ICsJCQkmcmVnX3ZhbCkgPCAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygi RmFpbGVkIHRvIHJlYWQgRFBDRCByZWdpc3RlciAweCV4XG4iLAo+ICsJCQkJRFBfRURQX0RJU1BM QVlfQ09OVFJPTF9SRUdJU1RFUik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsJaWYgKGVuYWJsZSkK PiArCQlyZWdfdmFsIHw9IERQX0VEUF9CQUNLTElHSFRfRU5BQkxFOwo+ICsJZWxzZQo+ICsJCXJl Z192YWwgJj0gfihEUF9FRFBfQkFDS0xJR0hUX0VOQUJMRSk7Cj4gKwo+ICsJaWYgKGRybV9kcF9k cGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwgRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RF UiwKPiArCQkJcmVnX3ZhbCkgIT0gMSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byAl cyBhdXggYmFja2xpZ2h0XG4iLAo+ICsJCQkJZW5hYmxlID8gImVuYWJsZSIgOiAiZGlzYWJsZSIp Owo+ICsJfQo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBSZWFkIHRoZSBjdXJyZW50IGJhY2tsaWdodCB2 YWx1ZSBmcm9tIERQQ0QgcmVnaXN0ZXIocykgYmFzZWQKPiArICogb24gaWYgOC1iaXQoTVNCKSBv ciAxNi1iaXQoTVNCIGFuZCBMU0IpIHZhbHVlcyBhcmUgc3VwcG9ydGVkCj4gKyAqLwo+ICtzdGF0 aWMgdWludDMyX3QgaW50ZWxfZHBfYXV4X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5j X3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVuY29kZXItPmJhc2UpOwo+ICsJdWludDhfdCByZWFk X3ZhbFsyXSA9IHsgMHgwIH07Cj4gKwl1aW50MTZfdCBsZXZlbCA9IDA7Cj4gKwo+ICsJaWYgKGRy bV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVT U19NU0IsCj4gKwkJCSZyZWFkX3ZhbCwgc2l6ZW9mKHJlYWRfdmFsKSkgPCAwKSB7Cj4gKwkJRFJN X0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgRFBDRCByZWdpc3RlciAweCV4XG4iLAo+ICsJCQkJ RFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQik7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4g KwlsZXZlbCA9IHJlYWRfdmFsWzBdOwo+ICsJaWYgKGludGVsX2RwLT5lZHBfZHBjZFsyXSAmIERQ X0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19CWVRFX0NPVU5UKQo+ICsJCWxldmVsID0gKHJlYWRf dmFsWzBdIDw8IDggfCByZWFkX3ZhbFsxXSk7Cj4gKwo+ICsJcmV0dXJuIGxldmVsOwo+ICt9Cj4g Kwo+ICsvKgo+ICsgKiBTZW5kcyB0aGUgY3VycmVudCBiYWNrbGlnaHQgbGV2ZWwgb3ZlciB0aGUg YXV4IGNoYW5uZWwsIGNoZWNraW5nIGlmIGl0cyB1c2luZwo+ICsgKiA4LWJpdCBvciAxNiBiaXQg dmFsdWUgKE1TQiBhbmQgTFNCKQo+ICsgKi8KPiArc3RhdGljIHZvaWQKPiAraW50ZWxfZHBfYXV4 X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2 ZWwpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAo JmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwl1aW50OF90IHZhbHNbMl0gPSB7IDB4MCB9 Owo+ICsKPiArCXZhbHNbMF0gPSBsZXZlbDsKPiArCj4gKwkvKiBXcml0ZSB0aGUgTVNCIGFuZC9v ciBMU0IgKi8KPiArCSBpZiAoaW50ZWxfZHAtPmVkcF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdI VF9CUklHSFRORVNTX0JZVEVfQ09VTlQpIHsKPiArCQl2YWxzWzBdID0gKGxldmVsICYgMHhGRjAw KSA+PiA4Owo+ICsJCXZhbHNbMV0gPSAobGV2ZWwgJiAweEZGKTsKPiArCX0KPiArCWlmIChkcm1f ZHBfZHBjZF93cml0ZSgmaW50ZWxfZHAtPmF1eCwgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNT X01TQiwKPiArCQkJdmFscywgc2l6ZW9mKHZhbHMpKSA8IDApIHsKPiArCQlEUk1fREVCVUdfS01T KCJGYWlsZWQgdG8gd3JpdGUgYXV4IGJhY2tsaWdodCBsZXZlbFxuIik7Cj4gKwkJcmV0dXJuOwo+ ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFz ZSk7Cj4gKwl1aW50OF90IGRwY2RfYnVmID0gMDsKPiArCj4gKwlzZXRfYXV4X2JhY2tsaWdodF9l bmFibGUoaW50ZWxfZHAsIHRydWUpOwo+ICsKPiArCWlmICgoZHJtX2RwX2RwY2RfcmVhZGIoJmlu dGVsX2RwLT5hdXgsCj4gKwkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsICZk cGNkX2J1ZikgPT0gMSkgJiYKPiArCQkJKChkcGNkX2J1ZiAmIERQX0VEUF9CQUNLTElHSFRfQ09O VFJPTF9NT0RFX01BU0spID09Cj4gKwkJCQkJRFBfRURQX0JBQ0tMSUdIVF9DT05UUk9MX01PREVf UFJFU0VUKSkKPiArCQlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9C QUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsCj4gKwkJCQkoZHBjZF9idWYgfCBEUF9FRFBfQkFD S0xJR0hUX0NPTlRST0xfTU9ERV9EUENEKSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVs X2RwX2F1eF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gK3sKPiArCXNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShlbmNfdG9faW50ZWxfZHAoJmNv bm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSksIGZhbHNlKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBp bnRlbF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiArCQkJZW51bSBwaXBlIHBpcGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gKwo+ICsJaW50 ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoY29ubmVjdG9yKTsKPiArCj4gKwlpZiAoaW50ZWxf ZHAtPmVkcF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0JZVEVfQ09VTlQp Cj4gKwkJcGFuZWwtPmJhY2tsaWdodC5tYXggPSAweEZGRkY7Cj4gKwllbHNlCj4gKwkJcGFuZWwt PmJhY2tsaWdodC5tYXggPSAweEZGOwo+ICsKPiArCXBhbmVsLT5iYWNrbGlnaHQubWluID0gMDsK PiArCXBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBpbnRlbF9kcF9hdXhfZ2V0X2JhY2tsaWdodChj b25uZWN0b3IpOwo+ICsKPiArCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlZCA9IHBhbmVsLT5iYWNr bGlnaHQubGV2ZWwgIT0gMDsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGJv b2wKPiAraW50ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKPiArCj4gKwkvKiBD aGVjayB0aGUgIGVEUCBEaXNwbGF5IGNvbnRyb2wgY2FwYWJpbGl0aWVzIHJlZ2lzdGVycyB0byBk ZXRlcm1pbmUgaWYKPiArCSAqIHRoZSBwYW5lbCBjYW4gc3VwcG9ydCBiYWNrbGlnaHQgY29udHJv bCBvdmVyIHRoZSBhdXggY2hhbm5lbAo+ICsJICovCj4gKwlpZiAoaW50ZWxfZHAtPmVkcF9kcGNk WzFdICYgRFBfRURQX1RDT05fQkFDS0xJR0hUX0FESlVTVE1FTlRfQ0FQICYmCj4gKwkJCShpbnRl bF9kcC0+ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX0FVWF9FTkFCTEVfQ0FQKSAmJgo+ ICsJCQkhKChpbnRlbF9kcC0+ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX1BJTl9FTkFC TEVfQ0FQKSB8fAo+ICsJCQkJCShpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJ R0hUX0JSSUdIVE5FU1NfUFdNX1BJTl9DQVApKSkgewo+ICsKPiArCQlEUk1fREVCVUdfS01TKCJB VVggQmFja2xpZ2h0IENvbnRyb2wgU3VwcG9ydGVkIVxuIik7Cj4gKwkJcmV0dXJuIHRydWU7Cj4g Kwl9Cj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9kcF9hdXhfaW5pdF9i YWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFu ZWw7Cj4gKwo+ICsJaWYoIWk5MTUuZW5hYmxlX2RwY2RfYmFja2xpZ2h0KQo+ICsJCXJldHVybiAt RU5PREVWOwo+ICsKPiArCWlmICghaW50ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxl KGludGVsX2Nvbm5lY3RvcikpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJcGFuZWwtPmJh Y2tsaWdodC5zZXR1cCA9IGludGVsX2RwX2F1eF9zZXR1cF9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+ YmFja2xpZ2h0LmVuYWJsZSA9IGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0Owo+ICsJcGFu ZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gaW50ZWxfZHBfYXV4X2Rpc2FibGVfYmFja2xpZ2h0Owo+ ICsJcGFuZWwtPmJhY2tsaWdodC5zZXQgPSBpbnRlbF9kcF9hdXhfc2V0X2JhY2tsaWdodDsKPiAr CXBhbmVsLT5iYWNrbGlnaHQuZ2V0ID0gaW50ZWxfZHBfYXV4X2dldF9iYWNrbGlnaHQ7Cj4gKwo+ ICsJcmV0dXJuIDA7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDk5ZGI4 YmIuLmNiODlhMzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xMzM3LDYg KzEzMzcsOSBAQCBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19oYnIyKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApOwo+ICBib29sCj4gIGludGVsX2RwX2dldF9saW5rX3N0YXR1cyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVT X1NJWkVdKTsKPiAgCj4gKy8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyAqLwo+ICtpbnQgaW50 ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3Rvcik7Cj4gKwo+ICAvKiBpbnRlbF9kcF9tc3QuYyAqLwo+ICBpbnQgaW50ZWxf ZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCwgaW50IGNvbm5faWQpOwo+ICB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAo c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGFuZWwuYwo+IGluZGV4IGEwNzg4NzYuLmJkMzE0ODEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BhbmVsLmMKPiBAQCAtMTcxOCw2ICsxNzE4LDEwIEBAIGludGVsX3BhbmVs X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpCj4gIAkJY29u dGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBwYW5lbCk7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5k ZXYpOwo+ICAKPiArCWlmIChjb25uZWN0b3ItPmJhc2UuY29ubmVjdG9yX3R5cGUgPT0gRFJNX01P REVfQ09OTkVDVE9SX2VEUCAmJgo+ICsJCQlpbnRlbF9kcF9hdXhfaW5pdF9iYWNrbGlnaHRfZnVu Y3MoY29ubmVjdG9yKSA9PSAwKQo+ICsJCXJldHVybjsKPiArCj4gIAlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpIHsKPiAgCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gYnh0X3NldHVwX2JhY2ts aWdodDsKPiAgCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4dF9lbmFibGVfYmFja2xpZ2h0 Owo+IC0tIAo+IDEuOS4zCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==