From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/1] drm/i915: Add Backlight Control using DPCD for eDP connectors Date: Thu, 29 Oct 2015 11:35:54 +0200 Message-ID: <87h9lanhj9.fsf@intel.com> References: <1443623767-11389-1-git-send-email-yetundex.adebisi@intel.com> <1443623767-11389-2-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 33A446E39D for ; Thu, 29 Oct 2015 02:32:23 -0700 (PDT) In-Reply-To: <1443623767-11389-2-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: intel-gfx@lists.freedesktop.org Cc: Yetunde Adebisi , Deepak M List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAzMCBTZXAgMjAxNSwgWWV0dW5kZSBBZGViaXNpIDx5ZXR1bmRleC5hZGViaXNpQGlu dGVsLmNvbT4gd3JvdGU6Cj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGVEUCBiYWNrbGln aHQgY29udHJvbCB1c2luZyBEUENEIHJlZ2lzdGVycyB0bwo+IGJhY2tsaWdodCBob29rcyBpbiBp bnRlbF9wYW5lbC4KPgo+IEl0IGNoZWNrcyBmb3IgYmFja2xpZ2h0IGNvbnRyb2wgb3ZlciBBVVgg Y2hhbm5lbCBjYXBhYmlsaXR5IGFuZCBzZXRzIHVwCj4gZnVuY3Rpb24gcG9pbnRlcnMgdG8gZ2V0 IGFuZCBzZXQgdGhlIGJhY2tsaWdodCBicmlnaHRuZXNzIGxldmVsIGlmCj4gc3VwcG9ydGVkLgo+ Cj4gQ2M6IEJvYiBQYWF1d2UgPGJvYi5qLnBhYXV3ZUBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlr dWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gQ2M6IERlZXBhayBNIDxtLmRlZXBha0BpbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogWWV0dW5kZSBBZGViaXNpIDx5ZXR1bmRleC5hZGViaXNp QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICB8 IDE4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jIHwgICA1ICstCj4gIGluY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCAgICAg ICAgfCAgIDYgKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAxOTggaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggZmExYTUyNC4uZmM0Yjg5 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC02MjU5LDMgKzYyNTksMTg4IEBA IHZvaWQgaW50ZWxfZHBfbXN0X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCX0K PiAgCX0KPiAgfQoKSSB0aGluayBJJ2QgbGlrZSBhbGwgb2YgdGhlIGJlbG93IGluIGEgc2VwYXJh dGUgZmlsZS4gaW50ZWxfZHAuYyBpcwphbHJlYWR5IHdheSB0b28gY3Jvd2RlZDsgdGhpcyBpcyBh IGxvZ2ljYWwgc2V0IHRvIGhhdmUgc2VwYXJhdGVseS4KCmludGVsX2RwX2F1eF9iYWNrbGlnaHQu YyA/Cgo+ICsKPiArc3RhdGljIHVpbnQ4X3QgcmVhZF9hdXhfYmFja2xpZ2h0X21vZGVfc2V0X3Jl ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICt7Cj4gKwl1aW50OF90IGRwY2RfYnVmID0g MDsKPiArCj4gKwlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsCj4g KwkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsCj4gKwkJCSZkcGNkX2J1Ziwg c2l6ZW9mKGRwY2RfYnVmKSkgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFk IERQQ0QgcmVnaXN0ZXIgMHgleFxuIiwKPiArCQkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRf UkVHSVNURVIpOwoKWW91IG9ubHkgbmVlZCB0aGlzIG9uY2UsIEknZCBqdXN0IG9wZW4gY29kZSBp dCB3aGVyZSBpdCdzIG5lZWRlZC4KCj4gKwo+ICsJcmV0dXJuIGRwY2RfYnVmOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgYm9vbCBnZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoc3RydWN0IGRybV9kcF9hdXgg KmF1eCkKCkF0IGEgcXVpY2sgcmVhZCBfZW5hYmxlIGF0IHRoZSBlbmQgaXMgY29uZnVzaW5nLCB3 aGVuIHlvdSdyZSBub3QKZW5hYmxpbmcgYnV0IHJhdGhlciBnZXR0aW5nIHRoZSBlbmFibGVkIHN0 YXR1cy4KCmlzX2F1eF9iYWNrbGlnaHRfZW5hYmxlZCgpID8KCj4gK3sKPiArCXVpbnQ4X3QgcmVh ZF92YWwgPSAwOwo+ICsKPiArCWlmIChpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZShhdXgsIERQX0VE UF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIsCj4gKwkJCSZyZWFkX3ZhbCwgc2l6ZW9mKHJlYWRf dmFsKSkgPCAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgRFBDRCByZWdp c3RlciAweCV4XG4iLAo+ICsJCQkJRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUik7Cj4g KwkJfQo+ICsJcmV0dXJuIHJlYWRfdmFsICYgRFBfRURQX0JBQ0tMSUdIVF9FTkFCTEU7Cj4gK30K PiArCj4gK3N0YXRpYyB2b2lkIHNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLCBib29sIGVuYWJsZSkKPiArewo+ICsJdWludDhfdCByZWdfdmFsID0gMDsK PiArCj4gKwlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsCj4gKwkJ CQlEUF9FRFBfRElTUExBWV9DT05UUk9MX1JFR0lTVEVSLAo+ICsJCQkJJnJlZ192YWwsIHNpemVv ZihyZWdfdmFsKSkgPCAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgRFBD RCByZWdpc3RlciAweCV4XG4iLAo+ICsJCQkJRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RF Uik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsJaWYgKGVuYWJsZSkKPiArCQlyZWdfdmFsIHw9IERQ X0VEUF9CQUNLTElHSFRfRU5BQkxFOwo+ICsJZWxzZQo+ICsJCXJlZ192YWwgJj0gfihEUF9FRFBf QkFDS0xJR0hUX0VOQUJMRSk7Cj4gKwo+ICsJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxf ZHAtPmF1eCwgRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUiwKPiArCQkJcmVnX3ZhbCkg PCAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvICVzIGF1eCBiYWNrbGlnaHRcbiIs Cj4gKwkJCQllbmFibGUgPyAiZW5hYmxlIiA6ICJkaXNhYmxlIik7Cj4gKwl9Cj4gK30KPiArCj4g Ky8qKgo+ICsgKiBSZWFkIHRoZSBjdXJyZW50IGJhY2tsaWdodCB2YWx1ZSBmcm9tIERQQ0QgcmVn aXN0ZXIocykgYmFzZWQKPiArICogb24gaWYgOC1iaXQoTVNCKSBvciAxNi1iaXQoTVNCIGFuZCBM U0IpIHZhbHVlcyBhcmUgc3VwcG9ydGVkCgpUaGlzIGlzIG5vdCBrZXJuZWwtZG9jIHN0eWxlIGNv bW1lbnQsIHBsZWFzZSB1c2UgLyogaW5zdGVhZCBvZiAvKiouCgo+ICsgKi8KPiArc3RhdGljIHVp bnQzMl90IGludGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0 dGFjaGVkX2RwKCZjb25uZWN0b3ItPmJhc2UpOwo+ICsJdWludDE2X3QgcmVhZF92YWwgPSAwOwo+ ICsKPiArCWlmIChpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPiArCQkJ RFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQiwKPiArCQkJJnJlYWRfdmFsLCBzaXplb2Yo cmVhZF92YWwpKSA8IDApIHsKPiArCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVhZCBEUENE IHJlZ2lzdGVyIDB4JXhcbiIsCj4gKwkJCQlEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfTVNC KTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCWlmIChpbnRlbF9kcC0+YXV4X2JsY191c2VfbHNi KSB7Cj4gKwkJdWludDhfdCB2YWxfbHNiID0gMDsKPiArCj4gKwkJaWYgKGludGVsX2RwX2RwY2Rf cmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+ICsJCQkJRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRO RVNTX0xTQiwKPiArCQkJCSZ2YWxfbHNiLCBzaXplb2YodmFsX2xzYikpIDwgMCkgewo+ICsJCQlE Uk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVhZCBEUENEIHJlZ2lzdGVyIDB4JXhcbiIsCj4gKwkJ CQkJRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0xTQik7Cj4gKwkJCXJldHVybiAwOwo+ICsJ CX0KPiArCQlyZWFkX3ZhbCA9IChyZWFkX3ZhbCA8PCA4IHwgdmFsX2xzYik7Cj4gKwl9CgpQbGVh c2UgcmV3cml0ZSB0aGlzIHRvIHVzZSBvbmx5IG9uZSByZWFkLiBNYXliZSBwYXJhbWV0ZXJpemUg dGhlIGxlbmd0aAp0byByZWFkICgxIG9yIDIgYnl0ZXMpIHNvIHlvdSBvbmx5IGhhdmUgb25lIGNh bGwgdG8gZHBjZF9yZWFkLCBhbmQgdGhlbgp1c2UgZWl0aGVyIDEgb3IgMiBieXRlcyBmcm9tIHRo ZSByZXN1bHQgYnVmLgoKPiArCj4gKwlyZXR1cm4gcmVhZF92YWw7Cj4gK30KPiArCj4gKy8qKgo+ ICsgKiBTZW5kcyB0aGUgY3VycmVudCBiYWNrbGlnaHQgbGV2ZWwgb3ZlciB0aGUgYXV4IGNoYW5u ZWwsIGNoZWNraW5nIGlmIGl0cyB1c2luZwo+ICsgKiA4LWJpdCBvciAxNiBiaXQgdmFsdWUgKE1T QiBhbmQgTFNCKQoKVGhpcyBpcyBub3Qga2VybmVsLWRvYyBzdHlsZSBjb21tZW50LCBwbGVhc2Ug dXNlIC8qIGluc3RlYWQgb2YgLyoqLgoKPiArICovCj4gK3N0YXRpYyB2b2lkCj4gK2ludGVsX2Rw X2F1eF9zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMy IGxldmVsKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNo ZWRfZHAoJmNvbm5lY3Rvci0+YmFzZSk7Cj4gKwl1aW50OF90IHZhbHNbMl0gPSB7IDB4MCB9Owo+ ICsKPiArCXZhbHNbMF0gPSBsZXZlbDsKPiArCURSTV9ERUJVR19LTVMoIkxldmVsIDB4JXhcbiIs IGxldmVsKTsKPiArCj4gKwkvKiBXcml0ZSB0aGUgTVNCIGFuZC9vciBMU0IgKi8KPiArCSBpZiAo aW50ZWxfZHAtPmF1eF9ibGNfdXNlX2xzYikgewo+ICsJCXZhbHNbMF0gPSAobGV2ZWwgJiAweEZG MDApID4+IDg7Cj4gKwkJdmFsc1sxXSA9IChsZXZlbCAmIDB4RkYpOwo+ICsJCWlmIChkcm1fZHBf ZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsCj4gKwkJCQlEUF9FRFBfQkFDS0xJR0hUX0JSSUdI VE5FU1NfTFNCLCB2YWxzWzFdKSA8IDApIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRv IHdyaXRlIGF1eCBiYWNrbGlnaHQgbGV2ZWxcbiIpOwo+ICsJCQlyZXR1cm47Cj4gKwkJfQo+ICsJ IH0KPiArCWlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9CQUNL TElHSFRfQlJJR0hUTkVTU19NU0IsCj4gKwkJCXZhbHNbMF0pIDwgMCkgewo+ICsJCURSTV9ERUJV R19LTVMoIkZhaWxlZCB0byB3cml0ZSBhdXggYmFja2xpZ2h0IGxldmVsXG4iKTsKPiArCQlyZXR1 cm47Cj4gKwl9CgpQbGVhc2UgcmV3cml0ZSB0aGlzIHRvIHVzZSBvbmx5IG9uZSB3cml0ZSwgc2Ft ZSBhcyBmb3IgcmVhZC4KCj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9lbmFi bGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJ c2V0X2F1eF9iYWNrbGlnaHRfZW5hYmxlKGludGVsX2F0dGFjaGVkX2RwKCZjb25uZWN0b3ItPmJh c2UpLCB0cnVlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2Rpc2FibGVf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc2V0 X2F1eF9iYWNrbGlnaHRfZW5hYmxlKGludGVsX2F0dGFjaGVkX2RwKCZjb25uZWN0b3ItPmJhc2Up LCBmYWxzZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaW50ZWxfZHBfYXV4X3NldHVwX2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgICBlbnVt IHBpcGUgcGlwZSkKPiArewo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0 dGFjaGVkX2RwKCZjb25uZWN0b3ItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5l bCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICsKPiArCWlmICghaW50ZWxfZHBfYXV4X2Rpc3BsYXlf Y29udHJvbF9jYXBhYmxlKGNvbm5lY3RvcikpIHsKPiArCQlEUk1fREVCVUdfS01TKCJCYWNrbGln aHQgY29udHJvbCBvdmVyIEFVWCBub3Qgc3VwcG9ydGVkXG4iKTsKPiArCQlyZXR1cm4gLUVOT0RF VjsKPiArCX0KClRoZSBhYm92ZSBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2UgeW91IGRvbid0IGVu ZCB1cCBoZXJlIHVubGVzcyB0aGUgY2FsbApyZXR1cm5zIHRydWUgaW4gdGhlIGZpcnN0IHBsYWNl LiBZb3UgZG8gdGhlIGF1eCByZWFkcyBhbmQgbG9nZ2luZwp0d2ljZS4gUGxlYXNlIHJlbW92ZSB0 aGUgYWJvdmUgY2hlY2suCgo+ICsKPiArCWlmIChpbnRlbF9kcC0+YXV4X2JsY191c2VfbHNiKQo+ ICsJCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gMHhGRkZGOwo+ICsJZWxzZQo+ICsJCXBhbmVsLT5i YWNrbGlnaHQubWF4ID0gMHhGRjsKPiArCj4gKwlwYW5lbC0+YmFja2xpZ2h0Lm1pbiA9IDA7Cj4g Kwo+ICsJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IGludGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0 KGNvbm5lY3Rvcik7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQgPSBnZXRfYXV4X2JhY2ts aWdodF9lbmFibGUoJmludGVsX2RwLT5hdXgpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ ICt2b2lkIGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFu ZWwgPSAmaW50ZWxfY29ubmVjdG9yLT5wYW5lbDsKPiArCj4gKwlwYW5lbC0+YmFja2xpZ2h0LnNl dHVwID0gaW50ZWxfZHBfYXV4X3NldHVwX2JhY2tsaWdodDsKPiArCXBhbmVsLT5iYWNrbGlnaHQu ZW5hYmxlID0gaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+YmFja2xp Z2h0LmRpc2FibGUgPSBpbnRlbF9kcF9hdXhfZGlzYWJsZV9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+ YmFja2xpZ2h0LnNldCA9IGludGVsX2RwX2F1eF9zZXRfYmFja2xpZ2h0Owo+ICsJcGFuZWwtPmJh Y2tsaWdodC5nZXQgPSBpbnRlbF9kcF9hdXhfZ2V0X2JhY2tsaWdodDsKPiArfQo+ICsKPiArYm9v bCBpbnRlbF9kcF9hdXhfZGlzcGxheV9jb250cm9sX2NhcGFibGUoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50 ZWxfYXR0YWNoZWRfZHAoJmNvbm5lY3Rvci0+YmFzZSk7Cj4gKwl1aW50OF90IGRwY2RfZWRwWzJd ID0geyAweDAgfTsKPiArCj4gKwkvKiBDaGVjayB0aGUgIGVEUCBEaXNwbGF5IGNvbnRyb2wgY2Fw YWJpbGl0aWVzIHJlZ2lzdGVycyB0byBkZXRlcm1pbmUgaWYKPiArCSAqIHRoZSBwYW5lbCBjYW4g c3VwcG9ydCBiYWNrbGlnaHQgY29udHJvbCBvdmVyIHRoZSBhdXggY2hhbm5lbCovCj4gKwlpZiAo aW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsIERQX0VEUF9HRU5FUkFMX0NB UF8xLAo+ICsJCQlkcGNkX2VkcCwgc2l6ZW9mKGRwY2RfZWRwKSkgPCAwKSB7Cj4gKwkJRFJNX0RF QlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgRFBDRCBEaXNwbGF5IENvbnRyb2wgcmVnaXN0ZXJzXG4i KTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9CgpJIHRoaW5rIGl0IHdvdWxkIGJlIG1vcmUgdXNl ZnVsIHRvIHJlYWQgMyBieXRlcyB3aGVuIGludGVsX2RwX2dldF9kcGNkCnJlYWRzIERQX0VEUF9E UENEX1JFViwgYW5kIHN0b3JlIHRoYXQgaW4gaW50ZWxfZHAsIG1heWJlIGFzIC0+ZHBjZF9lZHAK b3Igc29tZXRoaW5nLiBJdCdzIGZhc3RlciB0byBoYXZlIGZld2VyIHJlYWRzLCBhbmQgaXQncyBt b3JlIGdlbmVyaWMgdG8KaGF2ZSB0aGF0IGluc3RlYWQgb2YgYWRkaW5nIGludGVsX2RwLT5hdXhf YmxjX3VzZV9sc2IuCgo+ICsJRFJNX0RFQlVHX0tNUygiRURQIERQQ0QgOiAlKnBoXG4iLCAoaW50 KSBzaXplb2YoZHBjZF9lZHApLCBkcGNkX2VkcCk7CgpBbHNvIGRvIHRoaXMgYXQgaW50ZWxfZHBf Z2V0X2RwY2QuCgo+ICsKPiArCWlmIChkcGNkX2VkcFswXSAmIERQX0VEUF9UQ09OX0JBQ0tMSUdI VF9BREpVU1RNRU5UX0NBUEFCTEUgJiYKPiArCQkJKGRwY2RfZWRwWzBdICYgRFBfRURQX0JBQ0tM SUdIVF9BVVhfRU5BQkxFX0NBUEFCTEUpICYmCj4gKwkJCShkcGNkX2VkcFsxXSAmIERQX0VEUF9C QUNLTElHSFRfQlJJR0hUTkVTU19BVVhfU0VUX0NBUEFCTEUpICYmCj4gKwkJCSgocmVhZF9hdXhf YmFja2xpZ2h0X21vZGVfc2V0X3JlZyhpbnRlbF9kcCkgJgo+ICsJCQkJCURQX0VEUF9CQUNLTElH SFRfQlJJR0hUTkVTU19DVExfTU9ERV9EUENEX01BU0spKSkgewoKVGhpcyB3aWxsIGVuYWJsZSBh dXggYmFja2xpZ2h0IGNvbnRyb2wgYWxzbyBmb3IgdGhlIHB3bSAqIGRwY2QgcHJvZHVjdApjb250 cm9sIG1vZGUuIEkgZG9uJ3QgdGhpbmsgeW91IGhhbmRsZSB0aGF0IHlldCwgc28gcGxlYXNlIGNo ZWNrIChyZWcgJgozKSA9PSAyLCB3aXRoIHRoZSBwcm9wZXIgI2RlZmluZXMgb2YgY291cnNlLgoK PiArCj4gKwkJRFJNX0RFQlVHX0tNUygiQVVYIEJhY2tsaWdodCBDb250cm9sIFN1cHBvcnRlZCFc biIpOwo+ICsKPiArCQlpZiAoZHBjZF9lZHBbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5F U1NfQllURV9DT1VOVCkKPiArCQkJaW50ZWxfZHAtPmF1eF9ibGNfdXNlX2xzYiA9IHRydWU7Cj4g Kwo+ICsJCXJldHVybiB0cnVlOwo+ICsJfQo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCAzNWE2NWNhLi5kYWNiYzM3IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNzQ3LDYgKzc0Nyw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7 Cj4gIAl1bnNpZ25lZCBsb25nIGxhc3RfcG93ZXJfY3ljbGU7Cj4gIAl1bnNpZ25lZCBsb25nIGxh c3RfcG93ZXJfb247Cj4gIAl1bnNpZ25lZCBsb25nIGxhc3RfYmFja2xpZ2h0X29mZjsKPiArCWJv b2wgYXV4X2JsY191c2VfbHNiOwo+ICAKPiAgCXN0cnVjdCBub3RpZmllcl9ibG9jayBlZHBfbm90 aWZpZXI7Cj4gIAo+IEBAIC0xMjIxLDYgKzEyMjIsOCBAQCB2b2lkIGludGVsX2VkcF9kcnJzX2lu dmFsaWRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQl1bnNpZ25lZCBmcm9udGJ1ZmZl cl9iaXRzKTsKPiAgdm9pZCBpbnRlbF9lZHBfZHJyc19mbHVzaChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiAgdm9pZCBoc3dfZHBfc2V0X2RkaV9w bGxfc2VsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gK2Jvb2wgaW50 ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7Cj4gK3ZvaWQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gIAo+ICAvKiBpbnRlbF9k cF9tc3QuYyAqLwo+ICBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5faWQpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGFuZWwuYwo+IGluZGV4IDlhZGI2MmIuLjA0ZWZmMzQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BhbmVsLmMKPiBAQCAtMTY4NSw3ICsxNjg1LDEwIEBAIGludGVsX3BhbmVs X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpCj4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRldjsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0J aWYgKElTX0JST1hUT04oZGV2KSkgewo+ICsJaWYgKGludGVsX2Nvbm5lY3Rvci0+YmFzZS5jb25u ZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQICYmCj4gKwkJaW50ZWxfZHBfYXV4 X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxlKGludGVsX2Nvbm5lY3RvcikpIHsKPiArCQkJaW50ZWxf ZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKGludGVsX2Nvbm5lY3Rvcik7CgpJJ2QgbWFrZSB0 aGlzIHN0ZXAgc2VwYXJhdGUgZnJvbSB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgaWYgbGFkZGVkLCBh bmQgaWYKdGhlIGF1eCBpbml0IGZ1bmN0aW9uIHJldHVybnMgd2l0aG91dCBlcnJvcnMsIHlvdSBy ZXR1cm4gZWFybHkgZnJvbQppbnRlbF9wYW5lbF9pbml0X2JhY2tsaWdodF9mdW5jcy4gVGhlIGZ1 bmN0aW9uIGNvdWxkIGludGVybmFsbHkgY2hlY2sKZm9yIGNhcGFiaWxpdGllcyBldGMuIHNvIHlv dSBvbmx5IG5lZWQgdG8gZXhwb3NlIG9uZSBmdW5jIG91dHNpZGUgb2YgdGhlCm1vZHVsZS4KCj4g Kwl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuc2V0 dXAgPSBieHRfc2V0dXBfYmFja2xpZ2h0Owo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0g Ynh0X2VuYWJsZV9iYWNrbGlnaHQ7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gYnh0 X2Rpc2FibGVfYmFja2xpZ2h0Owo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKPiBpbmRleCA5ZWM0NzE2Li43MzY3 ZTFhIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ICsrKyBiL2lu Y2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+IEBAIC00NTUsMTYgKzQ1NSwyMiBAQAo+ICAjIGRl ZmluZSBEUF9FRFBfMTQJCQkgICAgMHgwMwo+ICAKPiAgI2RlZmluZSBEUF9FRFBfR0VORVJBTF9D QVBfMQkJICAgIDB4NzAxCj4gKyNkZWZpbmUgRFBfRURQX1RDT05fQkFDS0xJR0hUX0FESlVTVE1F TlRfQ0FQQUJMRSAgICAgICgxIDw8IDApCj4gKyNkZWZpbmUgRFBfRURQX0JBQ0tMSUdIVF9BVVhf RU5BQkxFX0NBUEFCTEUgICAgICAgICAgICgxIDw8IDIpCj4gIAo+ICAjZGVmaW5lIERQX0VEUF9C QUNLTElHSFRfQURKVVNUTUVOVF9DQVAgICAgIDB4NzAyCj4gKyNkZWZpbmUgRFBfRURQX0JBQ0tM SUdIVF9CUklHSFRORVNTX0FVWF9TRVRfQ0FQQUJMRSAgICgxIDw8IDEpCj4gKyNkZWZpbmUgRFBf RURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0JZVEVfQ09VTlQgICAgICAgICgxIDw8IDIpCj4gIAo+ ICAjZGVmaW5lIERQX0VEUF9HRU5FUkFMX0NBUF8yCQkgICAgMHg3MDMKPiAgCj4gICNkZWZpbmUg RFBfRURQX0dFTkVSQUxfQ0FQXzMJCSAgICAweDcwNCAgICAvKiBlRFAgMS40ICovCj4gIAo+ICAj ZGVmaW5lIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIgICAgIDB4NzIwCj4gKyNkZWZp bmUgRFBfRURQX0JBQ0tMSUdIVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDAp Cj4gIAo+ICAjZGVmaW5lIERQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIgIDB4NzIx Cj4gKyNkZWZpbmUgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0NUTF9NT0RFX0RQQ0RfTUFT SyAweDIKPiAgCj4gICNkZWZpbmUgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQiAgICAg MHg3MjIKPiAgI2RlZmluZSBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfTFNCICAgICAweDcy MwoKQXMgSSBzYWlkIGluIG15IGVhcmxpZXIgcmV2aWV3LCB0aGUgY2hhbmdlcyB0byB0aGlzIGZp bGUgbXVzdCBiZQpzZXBhcmF0ZSwgYW5kIG5lZWQgdG8gYmUgcG9zdGVkIHRvIGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QuIEkndmUgbm93IGRvbmUKdGhpcywgYWRkaW5nIGFsbCBvZiB0aGUgb3RoZXIg cmVsZXZhbnQgZGVmaW5lcyBhcyB3ZWxsOgoKaHR0cDovL3BhdGNod29yay5mcmVlZGVza3RvcC5v cmcvcGF0Y2gvbXNnaWQvMTQ0NjEwOTM4OC00MzAxLTEtZ2l0LXNlbmQtZW1haWwtamFuaS5uaWt1 bGFAaW50ZWwuY29tCgpCUiwKSmFuaS4KCgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNv dXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=