From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thulasimani, Sivakumar" Subject: Re: [PATCH 7/8] drm/i915: Move max voltage and pre emphasis to intel_dp_link_training.c Date: Mon, 19 Oct 2015 11:43:16 +0530 Message-ID: <562489FC.7010000@intel.com> References: <1441715280-11623-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1441715280-11623-8-git-send-email-ander.conselvan.de.oliveira@intel.com> <20150908130147.GE29811@intel.com> <56247C43.8040307@intel.com> <1445234379.3042.22.camel@gmail.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 3597A6E68D for ; Sun, 18 Oct 2015 23:13:22 -0700 (PDT) In-Reply-To: <1445234379.3042.22.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org, "Bride, Jim" List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxMC8xOS8yMDE1IDExOjI5IEFNLCBBbmRlciBDb25zZWx2YW4gRGUgT2xpdmVpcmEgd3Jv dGU6Cj4gT24gTW9uLCAyMDE1LTEwLTE5IGF0IDEwOjQ0ICswNTMwLCBUaHVsYXNpbWFuaSwgU2l2 YWt1bWFyIHdyb3RlOgo+PiBBcyBhbiBGWUksIGJvdGggb2YgdGhlc2UgZnVuY3Rpb25zIG5lZWQg dG8gYmUgcmV3cml0dGVuIHdoZW4gd2Ugd2FudCB0aGUKPj4gY29kZSB0byBiZQo+PiBjb21wbGlh bnQgdG8gRFAgc3BlYy4KPj4gV2Ugc2hvdWxkIHJlYWQgdGhlIHByZS1lbXBoYXNpcyBnaXZlbiBi eSB0aGUgcGFuZWwgYW5kIGlmIHZ3aW5nIGV4ZWVkcwo+PiBtYXggdmFsdWUKPj4gd2Ugc2hvdWxk IHVzZSB0aGUgbWF4IHZzd2luZyBzdXBwb3J0ZWQgZm9yIHRoYXQgcHJlLWVtcGhhc2lzIGJ1dCBj dXJyZW50Cj4+IGNvZGUKPj4gaXMgb3Bwb3NpdGUgb2YgdGhhdC4gIHlvdSBjYW4gcmVhZCBtb3Jl IGRldGFpbGVkIGxvZ2ljIGluIHNlY3Rpb24KPj4gIjMuNS4xLjIgTGluayBUcmFpbmluZyIKPj4g aW4gRFAgU3BlYy4KPiBZZWFoLCB0aGUgc3BlYyBpcyBwcmV0dHkgY2xlYXIgb24gdGhhdC4KPgo+ Cj4+IGJ5IHRoZSB3YXkgc2FtZSBpcyB0cnVlIGZvciBtdWNoIG9mIHRoZSBsaW5rIHRyYWluaW5n IGxvZ2ljIGFuZCByZWxhdGVkCj4+IGZ1bmN0aW9ucwo+IERvIHlvdSBoYXZlIGEgbGlzdCBvZiBv dGhlciBzcGVjIHZpb2xhdGlvbnM/IEknbSBhd2FyZSB0aGF0IHdlIGRvbid0IGZhbGxiYWNrIHRv Cj4gbG93ZXIgYmFuZHdpZHRoIHdoZW4gbGluayB0cmFpbmluZyBmYWlscywgYnV0IHRoYXQgcHJv YmxlbSBjYW4ndCBiZSBzb2x2ZWQgd2l0aAo+IHRoZSBkcml2ZXIgYWxvbmUuIFNpbmNlIHdlIGFs cmVhZHkgcGljayB0aGUgbG93ZXN0IGJhbmR3aWR0aCB0aGF0IGNhbiBzdXBwb3J0Cj4gdGhlIG1v ZGUgY2hvc2VuIGJ5IHVzZXJzcGFjZSwgdGhlIGZhbGxiYWNrIG5lZWRzIHRvIGFsbG93IGl0IHRv IGNob29zZSBhIG5ldwo+IG1vZGUuCj4KPiBUaGVyZSdzIGJlZW4gc29tZSBkaXNjdXNzaW9uIG9u IGhvdyB0byBzb2x2ZSB0aGlzLCBidXQgSSBkb24ndCBrbm93IGlmIHRoZXJlIHdhcwo+IGFueSBj b25jbHVzaW9ucy4gT25lIG9mIHRoZSBwb3NzaWJpbGl0aWVzIHdhcyB0byBzZW5kIGFuIHVldmVu dCB0byB1c2Vyc3BhY2UgdG8KPiB0ZWxsIGl0IHRvIHRvIGNob29zZSBhIHNtYWxsZXIgbW9kZS4K aGVyZSBpcyBhIGxpc3Qgb2YgY2hhbmdlcyBpIGhhZCB0byBkbyBmb3IgbG9jYWwgYnJhbmNoLCB0 aGF0IGkgc2hvdWxkIGJlIAp1cHN0cmVhbWluZyBpbiB0aGUgZnV0dXJlCgpkcm0vaTkxNTogRml4 IHN3aW5nICYgZW1waGFzaXMgdXNhZ2UgKHRoaXMgaXMgdGhlIHBhdGNoIGZvciBpc3N1ZSBpIAp0 YWxrZWQgYWJvdXQgYWJvdmUpCmRybS9pOTE1OiBFUSByZXRyeSBtdXN0IGJlIDUgdGltZXMgb25s eQpkcm0vaTkxNTogU3RhcnQgbGluayB0cmFpbmluZyBmcm9tIG1heCBsaW5rIHJhdGUKZHJtL2k5 MTU6IEZpeCBDbG9jayByZWNvdmVyeSBzZXF1ZW5jZSAoIGZpeGVzIHRoZSB3aG9sZSBjbG9jayBy ZWNvdmVyeSAKdG8gYmUgcGVyIHNwZWMpCmRybS9pOTE1OiBGaXggRVEgc2VxdWVuY2UgaW4gTGlu ayB0cmFpbmluZyAoZml4ZXMgdGhlIHdob2xlIEVRIHRvIGJlIHBlciAKc3BlYykKZHJtL2k5MTU6 IENoZWNrIEVRIG9ubHkgaWYgQ1IgcGFzc2VkICAoVGhpcyBzZWVtcyB0byBiZSBpbiBwbGFjZSBp biB5b3VyIApjaGFuZ2VzKQoKQWxsIHRoZXNlIGFyZSBqdXN0IHJlbGF0ZWQgdG8gbGluayB0cmFp bmluZywgaSBoYXZlIGJlZW4gYXNrZWQgZm9yIGxpc3QgCm9mIGlzc3VlcyByZWNlbnRseQphcyB3 ZWxsLCBzbyBpIHdpbGwgcHJvYmFibHkgZmlsZSBlYWNoIG9mIHRoZW0gaW4gYnVnemlsbGEvZnJl ZWRlc2t0b3Agc28gCnNvbWVvbmUKd2lsbCB0cmFjayBpdC4KCnJlZ2FyZHMsClNpdmFrdW1hcgo+ Cj4+IGkgZG9uJ3Qga25vdyBpZiBzdWNoIHJld3JpdGluZyBzaG91bGQgYmUgZG9uZSBhZnRlciBm aXhpbmcgdGhvc2Ugb3IKPj4gYmVmb3JlIDooLgo+IEkgaGF2ZSBwb3N0ZWQgYSBuZXcgdmVyc2lv biBvZiB0aGUgcmVmYWN0b3JpbmcgcGF0Y2hlcyB3aGljaCBJIGJlbGlldmVkIGFyZQo+IHJlYWR5 IHRvIGdvLiBTbyBJJ2QgZ28gZm9yIGdldHRpbmcgdGhvc2UgY2hhbmdlcyBpbiBhbmQgZml4IHRo ZSBtYXggdm9sdGFnZSB2cy4KPiBwcmUtZW1waGFzaXMgcHJvYmxlbSBvbiB0b3Agb2YgdGhhdC4K Pgo+IFRoYW5rcywKPiBBbmRlcgo+Cj4+IHJlZ2FyZHMsCj4+IFNpdmFrdW1hci4KPj4KPj4gT24g OS84LzIwMTUgNjozMSBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4gT24gVHVlLCBTZXAg MDgsIDIwMTUgYXQgMDM6Mjc6NThQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJh IHdyb3RlOgo+Pj4+IFNvIGxpbmsgdHJhaW5pbmcgdGVzdHMgY2FuIHVzZSByZWFsIGhhcmR3YXJl IGxpbWl0cy4KPj4+IFRoZXNlIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIF9zaWdu YWxfbGV2ZWxzKCkgZnVuY3Rpb25zLCBzbwo+Pj4gbW92aW5nIHRoZW0gdG8gYSBzZXBhcmF0ZSBm aWxlIGlzIGEgYml0IHF1ZXN0aW9uYWJsZS4KPj4+Cj4+PiBJIHN1Z2dlc3QgdGhhdCB3ZSBzaG91 bGQgYXR0ZW1wdCB0byByZXN0cnVjdHVyZSB0aGlzIGluZm9ybWF0aW9uIGFzCj4+PiBzb21lIGtp bmQgb2YgdGFibGVzLCBmcm9tIHdoaWNoIHdlIGNhbiBsb29rIHVwIHRoZSBtYXggdmFsdWVzIGFz Cj4+PiB3ZWxsIGFzIHRoZSBoYXJkd2FyZSBzcGVjaWZpYyB2YWx1ZXMgZm9yIGVhY2ggc2V0dGlu Zy4KPj4+Cj4+PiBUaGF0IG9mIGNvdXJzZSB3b24ndCBzb2x2ZSB5b3VyIHByb2JsZW0uIFNvIGZh ciBJIGRvbid0IGtub3cgd2hhdCB5b3VyCj4+PiB0ZXN0IGV2ZW4gZG9lcyBhbmQgd2h5IGRvZXMg aXQgbmVlZCB0aGlzIGluZm9ybWF0aW9uLCBzbyBJIGd1ZXNzIEknbGwKPj4+IG5lZWQgdG8gcmVh ZCBvbi4uLgo+Pj4KPj4+PiAtLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jICAgICAgICAgICAgICAgfCA5OSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiAtLS0tLS0K Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfCA5 Mgo+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAxMSArLS0KPj4+PiAgICAzIGZpbGVzIGNo YW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+Pj4gaW5kZXggNTc3ODA1OS4uZGE4N2FlZiAxMDA2NDQK Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+Pj4+IEBAIC0xMTEsMTMgKzExMSw2IEBAIHN0 YXRpYyBib29sIGlzX2VkcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+Pj4+ICAgIAlyZXR1 cm4gaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQOwo+Pj4+ICAg IH0KPj4+PiAgICAKPj4+PiAtc3RhdGljIHN0cnVjdCBkcm1fZGV2aWNlICppbnRlbF9kcF90b19k ZXYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4+PiAtewo+Pj4+IC0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+Pj4+IGRwX3RvX2RpZ19wb3J0KGludGVs X2RwKTsKPj4+PiAtCj4+Pj4gLQlyZXR1cm4gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7 Cj4+Pj4gLX0KPj4+PiAtCj4+Pj4gICAgc3RhdGljIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfYXR0 YWNoZWRfZHAoc3RydWN0IGRybV9jb25uZWN0b3IKPj4+PiAqY29ubmVjdG9yKQo+Pj4+ICAgIHsK Pj4+PiAgICAJcmV0dXJuIGVuY190b19pbnRlbF9kcCgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihj b25uZWN0b3IpCj4+Pj4gLT5iYXNlKTsKPj4+PiBAQCAtMzA1NCw5OCArMzA0Nyw2IEBAIGludGVs X2RwX2dldF9saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+Pj4+IHVpbnQ4 X3QgbGlua19zdGF0dXNbRFBfTElOS18KPj4+PiAgICAJCQkJICAgICAgIERQX0xJTktfU1RBVFVT X1NJWkUpID09Cj4+Pj4gRFBfTElOS19TVEFUVVNfU0laRTsKPj4+PiAgICB9Cj4+Pj4gICAgCj4+ Pj4gLS8qIFRoZXNlIGFyZSBzb3VyY2Utc3BlY2lmaWMgdmFsdWVzLiAqLwo+Pj4+IC11aW50OF90 Cj4+Pj4gLWludGVsX2RwX3ZvbHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ Pj4gLXsKPj4+PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50 ZWxfZHApOwo+Pj4+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPj4+PiAtCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApLT5wb3J0Owo+Pj4+IC0KPj4+PiAtCWlmIChJU19CUk9YVE9OKGRldikpCj4+Pj4gLQkJcmV0 dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsKPj4+PiAtCWVsc2UgaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPj4+PiAtCQlpZiAoZGV2X3ByaXYtPmVkcF9sb3dfdnN3 aW5nICYmIHBvcnQgPT0gUE9SVF9BKQo+Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9T V0lOR19MRVZFTF8zOwo+Pj4+IC0JCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVM XzI7Cj4+Pj4gLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPj4+PiAtCQlyZXR1cm4g RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwo+Pj4+IC0JZWxzZSBpZiAoSVNfR0VONyhk ZXYpICYmIHBvcnQgPT0gUE9SVF9BKQo+Pj4+IC0JCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NX SU5HX0xFVkVMXzI7Cj4+Pj4gLQllbHNlIGlmIChIQVNfUENIX0NQVChkZXYpICYmIHBvcnQgIT0g UE9SVF9BKQo+Pj4+IC0JCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM7Cj4+ Pj4gLQllbHNlCj4+Pj4gLQkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsK Pj4+PiAtfQo+Pj4+IC0KPj4+PiAtdWludDhfdAo+Pj4+IC1pbnRlbF9kcF9wcmVfZW1waGFzaXNf bWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3QKPj4+PiB2b2x0YWdlX3N3aW5n KQo+Pj4+IC17Cj4+Pj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKTsKPj4+PiAtCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApLT5wb3J0Owo+Pj4+IC0KPj4+PiAtCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7 Cj4+Pj4gLQkJc3dpdGNoICh2b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19N QVNLKSB7Cj4+Pj4gLQkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA6Cj4+Pj4g LQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8zOwo+Pj4+IC0JCWNhc2UgRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xOgo+Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VN UEhfTEVWRUxfMjsKPj4+PiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjoK Pj4+PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE7Cj4+Pj4gLQkJY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM6Cj4+Pj4gLQkJCXJldHVybiBEUF9UUkFJTl9Q UkVfRU1QSF9MRVZFTF8wOwo+Pj4+IC0JCWRlZmF1bHQ6Cj4+Pj4gLQkJCXJldHVybiBEUF9UUkFJ Tl9QUkVfRU1QSF9MRVZFTF8wOwo+Pj4+IC0JCX0KPj4+PiAtCX0gZWxzZSBpZiAoSVNfSEFTV0VM TChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7Cj4+Pj4gLQkJc3dpdGNoICh2b2x0YWdlX3N3 aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLKSB7Cj4+Pj4gLQkJY2FzZSBEUF9UUkFJ Tl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA6Cj4+Pj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1Q SF9MRVZFTF8zOwo+Pj4+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xOgo+ Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMjsKPj4+PiAtCQljYXNlIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjoKPj4+PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BS RV9FTVBIX0xFVkVMXzE7Cj4+Pj4gLQkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVM XzM6Cj4+Pj4gLQkJZGVmYXVsdDoKPj4+PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xF VkVMXzA7Cj4+Pj4gLQkJfQo+Pj4+IC0JfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsK Pj4+PiAtCQlzd2l0Y2ggKHZvbHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX01B U0spIHsKPj4+PiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKPj4+PiAt CQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM7Cj4+Pj4gLQkJY2FzZSBEUF9UUkFJ Tl9WT0xUQUdFX1NXSU5HX0xFVkVMXzE6Cj4+Pj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1Q SF9MRVZFTF8yOwo+Pj4+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+ Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPj4+PiAtCQljYXNlIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzoKPj4+PiAtCQlkZWZhdWx0Ogo+Pj4+IC0JCQly ZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKPj4+PiAtCQl9Cj4+Pj4gLQl9IGVsc2Ug aWYgKElTX0dFTjcoZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkgewo+Pj4+IC0JCXN3aXRjaCAodm9s dGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewo+Pj4+IC0JCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5f UFJFX0VNUEhfTEVWRUxfMjsKPj4+PiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVW RUxfMToKPj4+PiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjoKPj4+PiAt CQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE7Cj4+Pj4gLQkJZGVmYXVsdDoKPj4+ PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4+Pj4gLQkJfQo+Pj4+IC0J fSBlbHNlIHsKPj4+PiAtCQlzd2l0Y2ggKHZvbHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9WT0xUQUdF X1NXSU5HX01BU0spIHsKPj4+PiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxf MDoKPj4+PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI7Cj4+Pj4gLQkJY2Fz ZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzE6Cj4+Pj4gLQkJCXJldHVybiBEUF9UUkFJ Tl9QUkVfRU1QSF9MRVZFTF8yOwo+Pj4+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19M RVZFTF8yOgo+Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPj4+PiAt CQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzoKPj4+PiAtCQlkZWZhdWx0Ogo+ Pj4+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKPj4+PiAtCQl9Cj4+Pj4g LQl9Cj4+Pj4gLX0KPj4+PiAtCj4+Pj4gICAgc3RhdGljIHVpbnQzMl90IHZsdl9zaWduYWxfbGV2 ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+Pj4gICAgewo+Pj4+ICAgIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4+Pj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPj4+PiBpbmRl eCBmMzNjYmJiLi44ZDI3ZGNlIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+Pj4+IEBAIC0yMyw2ICsyMyw5OCBAQAo+Pj4+ICAg IAo+Pj4+ICAgICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPj4+PiAgICAKPj4+PiArLyogVGhlc2Ug YXJlIHNvdXJjZS1zcGVjaWZpYyB2YWx1ZXMuICovCj4+Pj4gK3N0YXRpYyB1aW50OF90Cj4+Pj4g K2ludGVsX2RwX3ZvbHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+Pj4gK3sK Pj4+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHAp Owo+Pj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPj4+PiArCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5w b3J0Owo+Pj4+ICsKPj4+PiArCWlmIChJU19CUk9YVE9OKGRldikpCj4+Pj4gKwkJcmV0dXJuIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsKPj4+PiArCWVsc2UgaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDkpIHsKPj4+PiArCQlpZiAoZGV2X3ByaXYtPmVkcF9sb3dfdnN3aW5nICYm IHBvcnQgPT0gUE9SVF9BKQo+Pj4+ICsJCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19M RVZFTF8zOwo+Pj4+ICsJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI7Cj4+ Pj4gKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPj4+PiArCQlyZXR1cm4gRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwo+Pj4+ICsJZWxzZSBpZiAoSVNfR0VONyhkZXYpICYm IHBvcnQgPT0gUE9SVF9BKQo+Pj4+ICsJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xF VkVMXzI7Cj4+Pj4gKwllbHNlIGlmIChIQVNfUENIX0NQVChkZXYpICYmIHBvcnQgIT0gUE9SVF9B KQo+Pj4+ICsJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM7Cj4+Pj4gKwll bHNlCj4+Pj4gKwkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsKPj4+PiAr fQo+Pj4+ICsKPj4+PiArc3RhdGljIHVpbnQ4X3QKPj4+PiAraW50ZWxfZHBfcHJlX2VtcGhhc2lz X21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90Cj4+Pj4gdm9sdGFnZV9zd2lu ZykKPj4+PiArewo+Pj4+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2Rl dihpbnRlbF9kcCk7Cj4+Pj4gKwllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVs X2RwKS0+cG9ydDsKPj4+PiArCj4+Pj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkg ewo+Pj4+ICsJCXN3aXRjaCAodm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdf TUFTSykgewo+Pj4+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+Pj4+ ICsJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMzsKPj4+PiArCQljYXNlIERQX1RS QUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMToKPj4+PiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9F TVBIX0xFVkVMXzI7Cj4+Pj4gKwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6 Cj4+Pj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOwo+Pj4+ICsJCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOgo+Pj4+ICsJCQlyZXR1cm4gRFBfVFJBSU5f UFJFX0VNUEhfTEVWRUxfMDsKPj4+PiArCQlkZWZhdWx0Ogo+Pj4+ICsJCQlyZXR1cm4gRFBfVFJB SU5fUFJFX0VNUEhfTEVWRUxfMDsKPj4+PiArCQl9Cj4+Pj4gKwl9IGVsc2UgaWYgKElTX0hBU1dF TEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+Pj4+ICsJCXN3aXRjaCAodm9sdGFnZV9z d2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewo+Pj4+ICsJCWNhc2UgRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+Pj4+ICsJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VN UEhfTEVWRUxfMzsKPj4+PiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMToK Pj4+PiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI7Cj4+Pj4gKwkJY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6Cj4+Pj4gKwkJCXJldHVybiBEUF9UUkFJTl9Q UkVfRU1QSF9MRVZFTF8xOwo+Pj4+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZF TF8zOgo+Pj4+ICsJCWRlZmF1bHQ6Cj4+Pj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9M RVZFTF8wOwo+Pj4+ICsJCX0KPj4+PiArCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7 Cj4+Pj4gKwkJc3dpdGNoICh2b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19N QVNLKSB7Cj4+Pj4gKwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA6Cj4+Pj4g KwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8zOwo+Pj4+ICsJCWNhc2UgRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xOgo+Pj4+ICsJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VN UEhfTEVWRUxfMjsKPj4+PiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjoK Pj4+PiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE7Cj4+Pj4gKwkJY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM6Cj4+Pj4gKwkJZGVmYXVsdDoKPj4+PiArCQkJ cmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4+Pj4gKwkJfQo+Pj4+ICsJfSBlbHNl IGlmIChJU19HRU43KGRldikgJiYgcG9ydCA9PSBQT1JUX0EpIHsKPj4+PiArCQlzd2l0Y2ggKHZv bHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX01BU0spIHsKPj4+PiArCQljYXNl IERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKPj4+PiArCQkJcmV0dXJuIERQX1RSQUlO X1BSRV9FTVBIX0xFVkVMXzI7Cj4+Pj4gKwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xF VkVMXzE6Cj4+Pj4gKwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6Cj4+Pj4g KwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOwo+Pj4+ICsJCWRlZmF1bHQ6Cj4+ Pj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOwo+Pj4+ICsJCX0KPj4+PiAr CX0gZWxzZSB7Cj4+Pj4gKwkJc3dpdGNoICh2b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFH RV9TV0lOR19NQVNLKSB7Cj4+Pj4gKwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVM XzA6Cj4+Pj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOwo+Pj4+ICsJCWNh c2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xOgo+Pj4+ICsJCQlyZXR1cm4gRFBfVFJB SU5fUFJFX0VNUEhfTEVWRUxfMjsKPj4+PiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdf TEVWRUxfMjoKPj4+PiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE7Cj4+Pj4g KwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM6Cj4+Pj4gKwkJZGVmYXVsdDoK Pj4+PiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4+Pj4gKwkJfQo+Pj4+ ICsJfQo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICAgIHN0YXRpYyB2b2lkCj4+Pj4gICAgaW50ZWxfZ2V0 X2FkanVzdF90cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+Pj4+ICAgIAkJICAgICAg IGNvbnN0IHVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV0pCj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+Pj4+IGluZGV4IDI5YWU0YmIuLjY3MWEyMGYgMTAw NjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+Pj4+IEBAIC0xMjE2LDE1ICsxMjE2 LDE4IEBAIGludGVsX2RwX3Byb2dyYW1fbGlua190cmFpbmluZ19wYXR0ZXJuKHN0cnVjdAo+Pj4+ IGludGVsX2RwICppbnRlbF9kcCwKPj4+PiAgICB2b2lkCj4+Pj4gICAgaW50ZWxfZHBfdXBkYXRl X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4+Pj4gICAgdm9pZCBp bnRlbF9kcF9zZXRfaWRsZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ Pj4+IC11aW50OF90Cj4+Pj4gLWludGVsX2RwX3ZvbHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApOwo+Pj4+IC11aW50OF90Cj4+Pj4gLWludGVsX2RwX3ByZV9lbXBoYXNpc19tYXgo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdAo+Pj4+IHZvbHRhZ2Vfc3dpbmcpOwo+ Pj4+ICAgIHZvaWQgaW50ZWxfZHBfY29tcHV0ZV9yYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIGludCBwb3J0X2Nsb2NrLAo+Pj4+ICAgIAkJCSAgIHVpbnQ4X3QgKmxpbmtfYncsIHVpbnQ4 X3QgKnJhdGVfc2VsZWN0KTsKPj4+PiAgICBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19o YnIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Pj4+ICAgIGJvb2wKPj4+PiAgICBpbnRlbF9k cF9nZXRfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdAo+Pj4+ IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdKTsKPj4+PiArc3RhdGljIGlubGluZSBz dHJ1Y3QgZHJtX2RldmljZSAqaW50ZWxfZHBfdG9fZGV2KHN0cnVjdCBpbnRlbF9kcAo+Pj4+ICpp bnRlbF9kcCkKPj4+PiArewo+Pj4+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPQo+Pj4+IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPj4+PiArCj4+Pj4gKwly ZXR1cm4gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4+Pj4gK30KPj4+PiArCj4+Pj4g ICAgCj4+Pj4gICAgLyogaW50ZWxfZHBfbXN0LmMgKi8KPj4+PiAgICBpbnQgaW50ZWxfZHBfbXN0 X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwK Pj4+PiBpbnQgY29ubl9pZCk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=