From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thulasimani, Sivakumar" Subject: Re: [PATCH 2/2] drm/i915: Add Backlight Control using DPCD for eDP connectors (v6) Date: Mon, 8 Feb 2016 14:26:52 +0530 Message-ID: <56B85854.8040709@intel.com> References: <1454674733-7279-1-git-send-email-yetundex.adebisi@intel.com> <1454674733-7279-3-git-send-email-yetundex.adebisi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 4FDD06E09E for ; Mon, 8 Feb 2016 00:56:55 -0800 (PST) In-Reply-To: <1454674733-7279-3-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 , intel-gfx@lists.freedesktop.org Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org CgpPbiAyLzUvMjAxNiA1OjQ4IFBNLCBZZXR1bmRlIEFkZWJpc2kgd3JvdGU6Cj4gVGhpcyBwYXRj aCBhZGRzIHN1cHBvcnQgZm9yIGVEUCBiYWNrbGlnaHQgY29udHJvbCB1c2luZyBEUENEIHJlZ2lz dGVycyB0bwo+IGJhY2tsaWdodCBob29rcyBpbiBpbnRlbF9wYW5lbC4KPgo+IEl0IGNoZWNrcyBm b3IgYmFja2xpZ2h0IGNvbnRyb2wgb3ZlciBBVVggY2hhbm5lbCBjYXBhYmlsaXR5IGFuZCBzZXRz IHVwCj4gZnVuY3Rpb24gcG9pbnRlcnMgdG8gZ2V0IGFuZCBzZXQgdGhlIGJhY2tsaWdodCBicmln aHRuZXNzIGxldmVsIGlmCj4gc3VwcG9ydGVkLgo+Cj4gdjI6IE1vdmVkIGJhY2tsaWdodCBmdW5j dGlvbnMgZnJvbSBpbnRlbF9kcC5jIGludG8gYSBuZXcgZmlsZQo+IGludGVsX2RwX2F1eF9iYWNr bGlnaHQuYy4gQWxzbyBtb3ZlZCByZWFkaW5nIG9mIGVEUCBkaXNwbGF5IGNvbnRyb2wKPiByZWdp c3RlcnMgdG8gaW50ZWxfZHBfZ2V0X2RwY2QKPgo+IHYzOiBDb3JyZWN0IHNvbWUgZm9ybWF0dGlu ZyBtaXN0YWtlcwo+Cj4gdjQ6IFVwZGF0ZWQgdG8gdXNlIEFVWCBiYWNrbGlnaHQgY29udHJvbCBp ZiBQV00gY29udHJvbCBpcyBub3QgcG9zc2libGUKPiAJKEphbmkpCj4gdjU6IE1vdmVkIGNhbGwg dG8gaW5pdGlhbGl6ZSBiYWNrbGlnaHQgcmVnaXN0ZXJzIHRvIGRwX2F1eF9zZXR1cF9iYWNrbGln aHQKPiB2NjogQ2hlY2sgRFBfRURQX0JBQ0tMSUdIVF9QSU5fRU5BQkxFX0NBUCBpcyBkaXNhYmxl ZCBiZWZvcmUgc2V0dGluZyB1cCBBVVgKPiBiYWNrbGlnaHQgY29udHJvbC4gVG8gZml4IEJMTV9Q V01fRU5BQkxFIGlndCB0ZXN0IHdhcm5pbmdzIG9uIGJkd191bHRyYQo+Cj4gVGhpcyBwYXRjaCBk ZXBlbmRzIG9uIGh0dHA6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzY0MjUzLwo+ Cj4gQ2M6IEJvYiBQYWF1d2UgPGJvYi5qLnBhYXV3ZUBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlr dWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gQWNrZWQtYnk6IEplc3NlIEJhcm5lcyA8amJh cm5lc0B2aXJ0dW91c2dlZWsub3JnPgo+IFNpZ25lZC1vZmYtYnk6IFlldHVuZGUgQWRlYmlzaSA8 eWV0dW5kZXguYWRlYmlzaUBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgICAgICAgICAgICAgIHwgIDE3ICsrLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIHwgMTcwICsrKysrKysrKysrKysrKysrKysr KysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAg fCAgIDYgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyAgICAgICAgICAg IHwgICA0ICsKPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTkyIGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfYXV4X2JhY2tsaWdodC5jCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv TWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IGluZGV4IDA4NTFkZTA3 Li40MTI1MGNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBAQCAtNzcsNiArNzcsNyBAQCBp OTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKPiAgIAkgIGR2b190ZnA0MTAubyBcCj4gICAJICBpbnRl bF9jcnQubyBcCj4gICAJICBpbnRlbF9kZGkubyBcCj4gKwkgIGludGVsX2RwX2F1eF9iYWNrbGln aHQubyBcCj4gICAJICBpbnRlbF9kcF9saW5rX3RyYWluaW5nLm8gXAo+ICAgCSAgaW50ZWxfZHBf bXN0Lm8gXAo+ICAgCSAgaW50ZWxfZHAubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5k ZXggYTA3M2YwNC4uOWY4NjcyZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0z MTgzLDcgKzMxODMsNyBAQCBzdGF0aWMgdm9pZCBjaHZfZHBfcG9zdF9wbGxfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgICAqIFNpbmtzIGFyZSAqc3VwcG9zZWQqIHRv IGNvbWUgdXAgd2l0aGluIDFtcyBmcm9tIGFuIG9mZiBzdGF0ZSwgYnV0IHdlJ3JlIGFsc28KPiAg ICAqIHN1cHBvc2VkIHRvIHJldHJ5IDMgdGltZXMgcGVyIHRoZSBzcGVjLgo+ICAgICovCj4gLXN0 YXRpYyBzc2l6ZV90Cj4gK3NzaXplX3QKPiAgIGludGVsX2RwX2RwY2RfcmVhZF93YWtlKHN0cnVj dCBkcm1fZHBfYXV4ICphdXgsIHVuc2lnbmVkIGludCBvZmZzZXQsCj4gICAJCQl2b2lkICpidWZm ZXIsIHNpemVfdCBzaXplKQo+ICAgewo+IEBAIC0zODUwLDcgKzM4NTAsNiBAQCBpbnRlbF9kcF9n ZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JdWludDhf dCByZXY7Cj4gICAKPiAgIAlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5h dXgsIDB4MDAwLCBpbnRlbF9kcC0+ZHBjZCwKPiAgIAkJCQkgICAgc2l6ZW9mKGludGVsX2RwLT5k cGNkKSkgPCAwKQo+IEBAIC0zODg2LDYgKzM4ODUsMTUgQEAgaW50ZWxfZHBfZ2V0X2RwY2Qoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgIAkJCURSTV9ERUJVR19LTVMoIlBTUjIgJXMgb24g c2luayIsCj4gICAJCQkJZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQgPyAic3VwcG9ydGVkIiA6 ICJub3Qgc3VwcG9ydGVkIik7Cj4gICAJCX0KPiArCj4gKwkJLyogUmVhZCB0aGUgZURQIERpc3Bs YXkgY29udHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzICovCj4gKwkJbWVtc2V0KGludGVsX2Rw LT5lZHBfZHBjZCwgMCwgc2l6ZW9mKGludGVsX2RwLT5lZHBfZHBjZCkpOwo+ICsJCWlmICgoaW50 ZWxfZHAtPmRwY2RbRFBfRURQX0NPTkZJR1VSQVRJT05fQ0FQXSAmIERQX0RQQ0RfRElTUExBWV9D T05UUk9MX0NBUEFCTEUpICYmCj4gKwkJCQkoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVs X2RwLT5hdXgsIERQX0VEUF9EUENEX1JFViwKPiArCQkJCQkJaW50ZWxfZHAtPmVkcF9kcGNkLCBz aXplb2YoaW50ZWxfZHAtPmVkcF9kcGNkKSkgPT0KPiArCQkJCQkJCQlzaXplb2YoaW50ZWxfZHAt PmVkcF9kcGNkKSkpCj4gKwkJCURSTV9ERUJVR19LTVMoIkVEUCBEUENEIDogJSpwaFxuIiwgKGlu dCkgc2l6ZW9mKGludGVsX2RwLT5lZHBfZHBjZCksCj4gKwkJCQkJaW50ZWxfZHAtPmVkcF9kcGNk KTsKPiAgIAl9Cj4gICAKPiAgIAlEUk1fREVCVUdfS01TKCJEaXNwbGF5IFBvcnQgVFBTMyBzdXBw b3J0OiBzb3VyY2UgJXMsIHNpbmsgJXNcbiIsCj4gQEAgLTM4OTMsMTAgKzM5MDEsNyBAQCBpbnRl bF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgCQkgICAgICB5ZXNu byhkcm1fZHBfdHBzM19zdXBwb3J0ZWQoaW50ZWxfZHAtPmRwY2QpKSk7Cj4gICAKPiAgIAkvKiBJ bnRlcm1lZGlhdGUgZnJlcXVlbmN5IHN1cHBvcnQgKi8KPiAtCWlmIChpc19lZHAoaW50ZWxfZHAp ICYmCj4gLQkgICAgKGludGVsX2RwLT5kcGNkW0RQX0VEUF9DT05GSUdVUkFUSU9OX0NBUF0gJglE UF9EUENEX0RJU1BMQVlfQ09OVFJPTF9DQVBBQkxFKSAmJgo+IC0JICAgIChpbnRlbF9kcF9kcGNk X3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwgRFBfRURQX0RQQ0RfUkVWLCAmcmV2LCAxKSA9PSAx KSAmJgo+IC0JICAgIChyZXYgPj0gMHgwMykpIHsgLyogZURwIHYxLjQgb3IgaGlnaGVyICovCj4g KwlpZiAoaXNfZWRwKGludGVsX2RwKSAmJiAoaW50ZWxfZHAtPmVkcF9kcGNkWzBdID49IDB4MDMp KSB7IC8qIGVEcCB2MS40IG9yIGhpZ2hlciAqLwo+ICAgCQlfX2xlMTYgc2lua19yYXRlc1tEUF9N QVhfU1VQUE9SVEVEX1JBVEVTXTsKPiAgIAkJaW50IGk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwLi5hNTM2MWQ2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYwo+IEBAIC0wLDAgKzEsMTcwIEBA Cj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE1IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4g KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ICsgKiBT b2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsg KiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImludGVsX2Ry di5oIgo+ICsKPiArc3RhdGljIHZvaWQgc2V0X2F1eF9iYWNrbGlnaHRfZW5hYmxlKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgZW5hYmxlKQo+ICt7Cj4gKwl1aW50OF90IHJlZ192YWwg PSAwOwo+ICsKPiArCWlmIChpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwg RFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUiwKPiArCQkJJnJlZ192YWwsIHNpemVvZihy ZWdfdmFsKSkgPCAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgRFBDRCBy ZWdpc3RlciAweCV4XG4iLAo+ICsJCQkJRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUik7 Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsJaWYgKGVuYWJsZSkKPiArCQlyZWdfdmFsIHw9IERQX0VE UF9CQUNLTElHSFRfRU5BQkxFOwo+ICsJZWxzZQo+ICsJCXJlZ192YWwgJj0gfihEUF9FRFBfQkFD S0xJR0hUX0VOQUJMRSk7Cj4gKwo+ICsJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAt PmF1eCwgRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUiwKPiArCQkJcmVnX3ZhbCkgPCAw KSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvICVzIGF1eCBiYWNrbGlnaHRcbiIsCj4g KwkJCQllbmFibGUgPyAiZW5hYmxlIiA6ICJkaXNhYmxlIik7Cj4gKwl9Cj4gK30KPiArCj4gKy8q Cj4gKyAqIFJlYWQgdGhlIGN1cnJlbnQgYmFja2xpZ2h0IHZhbHVlIGZyb20gRFBDRCByZWdpc3Rl cihzKSBiYXNlZAo+ICsgKiBvbiBpZiA4LWJpdChNU0IpIG9yIDE2LWJpdChNU0IgYW5kIExTQikg dmFsdWVzIGFyZSBzdXBwb3J0ZWQKPiArICovCj4gK3N0YXRpYyB1aW50MzJfdCBpbnRlbF9kcF9h dXhfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sK PiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rv ci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwl1aW50OF90IHJlYWRfdmFsWzJdID0geyAweDAgfTsKPiAr CXVpbnQxNl90IGxldmVsID0gMDsKPiArCj4gKwlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2Uo JmludGVsX2RwLT5hdXgsIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19NU0IsCj4gKwkJCSZy ZWFkX3ZhbCwgc2l6ZW9mKHJlYWRfdmFsKSkgPCAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRmFp bGVkIHRvIHJlYWQgRFBDRCByZWdpc3RlciAweCV4XG4iLAo+ICsJCQkJRFBfRURQX0JBQ0tMSUdI VF9CUklHSFRORVNTX01TQik7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwlsZXZlbCA9IHJlYWRf dmFsWzBdOwo+ICsJaWYgKGludGVsX2RwLT5lZHBfZHBjZFsyXSAmIERQX0VEUF9CQUNLTElHSFRf QlJJR0hUTkVTU19CWVRFX0NPVU5UKQo+ICsJCWxldmVsID0gKHJlYWRfdmFsWzBdIDw8IDggfCBy ZWFkX3ZhbFsxXSk7Cj4gKwo+ICsJcmV0dXJuIGxldmVsOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBT ZW5kcyB0aGUgY3VycmVudCBiYWNrbGlnaHQgbGV2ZWwgb3ZlciB0aGUgYXV4IGNoYW5uZWwsIGNo ZWNraW5nIGlmIGl0cyB1c2luZwo+ICsgKiA4LWJpdCBvciAxNiBiaXQgdmFsdWUgKE1TQiBhbmQg TFNCKQo+ICsgKi8KPiArc3RhdGljIHZvaWQKPiAraW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5j b2Rlci0+YmFzZSk7Cj4gKwl1aW50OF90IHZhbHNbMl0gPSB7IDB4MCB9Owo+ICsKPiArCXZhbHNb MF0gPSBsZXZlbDsKPiArCj4gKwkvKiBXcml0ZSB0aGUgTVNCIGFuZC9vciBMU0IgKi8KPiArCSBp ZiAoaW50ZWxfZHAtPmVkcF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0JZ VEVfQ09VTlQpIHsKPiArCQl2YWxzWzBdID0gKGxldmVsICYgMHhGRjAwKSA+PiA4Owo+ICsJCXZh bHNbMV0gPSAobGV2ZWwgJiAweEZGKTsKPiArCX0KPiArCWlmIChkcm1fZHBfZHBjZF93cml0ZSgm aW50ZWxfZHAtPmF1eCwgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQiwKPiArCQkJdmFs cywgc2l6ZW9mKHZhbHMpKSA8IDApIHsKPiArCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gd3Jp dGUgYXV4IGJhY2tsaWdodCBsZXZlbFxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwl1aW50OF90 IGRwY2RfYnVmID0gMDsKPiArCj4gKwlzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoaW50ZWxfZHAs IHRydWUpOwo+ICsKPiArCWlmICgoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5h dXgsCj4gKwkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsICZkcGNkX2J1Ziwg MSkgPT0gMSkgJiYKPiArCQkJKChkcGNkX2J1ZiAmIERQX0VEUF9CQUNLTElHSFRfQ09OVFJPTF9N T0RFX01BU0spID09Cj4gKwkJCQkJRFBfRURQX0JBQ0tMSUdIVF9DT05UUk9MX01PREVfUFJFU0VU KSkKPiArCQlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9CQUNLTElH SFRfTU9ERV9TRVRfUkVHSVNURVIsCj4gKwkJCQkoZHBjZF9idWYgfCBEUF9FRFBfQkFDS0xJR0hU X0NPTlRST0xfTU9ERV9EUENEKSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1 eF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4g K3sKPiArCXNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rv ci0+ZW5jb2Rlci0+YmFzZSksIGZhbHNlKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBpbnRlbF9k cF9hdXhfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiArCQkJZW51bSBwaXBlIHBpcGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gKwo+ICsJaW50ZWxfZHBf YXV4X2VuYWJsZV9iYWNrbGlnaHQoY29ubmVjdG9yKTsKPiArCj4gKwlpZiAoaW50ZWxfZHAtPmVk cF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0JZVEVfQ09VTlQpCj4gKwkJ cGFuZWwtPmJhY2tsaWdodC5tYXggPSAweEZGRkY7Cj4gKwllbHNlCj4gKwkJcGFuZWwtPmJhY2ts aWdodC5tYXggPSAweEZGOwo+ICsKPiArCXBhbmVsLT5iYWNrbGlnaHQubWluID0gMDsKPiArCXBh bmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBpbnRlbF9kcF9hdXhfZ2V0X2JhY2tsaWdodChjb25uZWN0 b3IpOwo+ICsKPiArCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlZCA9IHBhbmVsLT5iYWNrbGlnaHQu bGV2ZWwgIT0gMDsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wKPiAr aW50ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190 b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKPiArCj4gKwkvKiBDaGVjayB0 aGUgIGVEUCBEaXNwbGF5IGNvbnRyb2wgY2FwYWJpbGl0aWVzIHJlZ2lzdGVycyB0byBkZXRlcm1p bmUgaWYKPiArCSAqIHRoZSBwYW5lbCBjYW4gc3VwcG9ydCBiYWNrbGlnaHQgY29udHJvbCBvdmVy IHRoZSBhdXggY2hhbm5lbAo+ICsJICovCj4gKwlpZiAoaW50ZWxfZHAtPmVkcF9kcGNkWzFdICYg RFBfRURQX1RDT05fQkFDS0xJR0hUX0FESlVTVE1FTlRfQ0FQICYmCj4gKwkJCShpbnRlbF9kcC0+ ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX0FVWF9FTkFCTEVfQ0FQKSAmJgo+ICsJCQkh KChpbnRlbF9kcC0+ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX1BJTl9FTkFCTEVfQ0FQ KSB8fAo+ICsJCQkJCShpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJR0hUX0JS SUdIVE5FU1NfUFdNX1BJTl9DQVApKSkgewo+ICsKPiArCQlEUk1fREVCVUdfS01TKCJBVVggQmFj a2xpZ2h0IENvbnRyb2wgU3VwcG9ydGVkIVxuIik7Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4g KwlyZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9kcF9hdXhfaW5pdF9iYWNrbGln aHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICt7Cj4g KwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFuZWw7Cj4g Kwo+ICsJaWYgKCFpbnRlbF9kcF9hdXhfZGlzcGxheV9jb250cm9sX2NhcGFibGUoaW50ZWxfY29u bmVjdG9yKSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlwYW5lbC0+YmFja2xpZ2h0LnNl dHVwID0gaW50ZWxfZHBfYXV4X3NldHVwX2JhY2tsaWdodDsKPiArCXBhbmVsLT5iYWNrbGlnaHQu ZW5hYmxlID0gaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+YmFja2xp Z2h0LmRpc2FibGUgPSBpbnRlbF9kcF9hdXhfZGlzYWJsZV9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+ YmFja2xpZ2h0LnNldCA9IGludGVsX2RwX2F1eF9zZXRfYmFja2xpZ2h0Owo+ICsJcGFuZWwtPmJh Y2tsaWdodC5nZXQgPSBpbnRlbF9kcF9hdXhfZ2V0X2JhY2tsaWdodDsKPiArCj4gKwlyZXR1cm4g MDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggOTNiYTE0YS4uZTE5ZWUy MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTc2MSw2ICs3NjEsNyBAQCBz dHJ1Y3QgaW50ZWxfZHAgewo+ICAgCXVpbnQ4X3QgZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV07 Cj4gICAJdWludDhfdCBwc3JfZHBjZFtFRFBfUFNSX1JFQ0VJVkVSX0NBUF9TSVpFXTsKPiAgIAl1 aW50OF90IGRvd25zdHJlYW1fcG9ydHNbRFBfTUFYX0RPV05TVFJFQU1fUE9SVFNdOwo+ICsJdWlu dDhfdCBlZHBfZHBjZFtFRFBfRElTUExBWV9DVExfQ0FQX1NJWkVdOwo+ICAgCS8qIHNpbmsgcmF0 ZXMgYXMgcmVwb3J0ZWQgYnkgRFBfU1VQUE9SVEVEX0xJTktfUkFURVMgKi8KPiAgIAl1aW50OF90 IG51bV9zaW5rX3JhdGVzOwo+ICAgCWludCBzaW5rX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFU RVNdOwo+IEBAIC0xMjg3LDYgKzEyODgsMTEgQEAgdm9pZCBpbnRlbF9kcF9jb21wdXRlX3JhdGUo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHBvcnRfY2xvY2ssCj4gICBib29sIGludGVs X2RwX3NvdXJjZV9zdXBwb3J0c19oYnIyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICAg Ym9vbAo+ICAgaW50ZWxfZHBfZ2V0X2xpbmtfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIHVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV0pOwo+ICtzc2l6ZV90 IGludGVsX2RwX2RwY2RfcmVhZF93YWtlKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsIHVuc2lnbmVk IGludCBvZmZzZXQsCj4gKwkJdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7Cj4gKwo+ICsvKiBp bnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgKi8KPiAraW50IGludGVsX2RwX2F1eF9pbml0X2JhY2ts aWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwo+ICAg Cj4gICAvKiBpbnRlbF9kcF9tc3QuYyAqLwo+ICAgaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2lu aXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsIGludCBjb25uX2lk KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiBpbmRleCAyMWVlNjQ3Li45NDFjNmZl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gQEAgLTE3MjAsNiArMTcyMCwx MCBAQCBpbnRlbF9wYW5lbF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwg KnBhbmVsKQo+ICAgCQljb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3Is IHBhbmVsKTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAgCj4gKwlpZiAoY29ubmVjdG9yLT5iYXNlLmNvbm5l Y3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFAgJiYKPiArCQkJaW50ZWxfZHBfYXV4 X2luaXRfYmFja2xpZ2h0X2Z1bmNzKGNvbm5lY3RvcikgPT0gMCkKPiArCQlyZXR1cm47Cj4gKwpj YW4gd2UgbWFrZSB0aGlzIGZlYXR1cmUgdG8gYmUgZW5hYmxlZCBleHBsaWNpdGx5IHJhdGhlciB0 aGFuIGlmIHRoZSBwYW5lbApzdXBwb3J0cyBpdCA/IHdlIGhhdmUgbmV2ZXIgY2hlY2tlZCBmb3Ig dGhlc2UgZHBjZCByZWdpc3RlcnMgdGlsbCBub3cgCmFuZCBpdCBpcwpxdWl0ZSBwb3NzaWJsZSBm b3IgYW55IG9uZSBwYW5lbCB0byBwYXNzIHRoaXMgZXZlbiB0aG91Z2ggd2UKYXJlIHVzaW5nIGl0 IHdpdGggUFdNIGJhc2VkIGNvbnRyb2wgYXQgcHJlc2VudC4gaS5lIHdlIGtlZXAgUFNSIGRpc2Fi bGVkCnN0aWxsIHNpbmNlIGl0IGlzIG5vdCB3b3JraW5nIGFsd2F5cywgd2h5IHNob3VsZCB3ZSBl bmFibGUgdGhpcyBieSAKZGVmYXVsdCA6KS4KCmkgdW5kZXJzdGFuZCBpIGFtIGxhdGUgdG8gdGhp cyB0aHJlYWQsIGJ1dCBnb29kIHRvIGNoZWNrIGxhdGUgYXQtbGVhc3QuCmRpZCB5b3UgdGVzdCB3 aXRoIERQU1QgZGlzYWJsZWQgb3IgZG9lcyB0aGlzIGFmZmVjdCB0aGUgcGFuZWwgdXNhYmlsaXR5 CndpdGggZHBzdCBlbmFibGVkIG9yIGRpc2FibGVkID8KU2l2YWt1bWFyCj4gICAJaWYgKElTX0JS T1hUT04oZGV2X3ByaXYpKSB7Cj4gICAJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBieHRfc2V0 dXBfYmFja2xpZ2h0Owo+ICAgCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4dF9lbmFibGVf YmFja2xpZ2h0OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==