From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sivakumar Thulasimani Subject: Re: [PATCH] drm/i915: Retry port as HDMI if dp_is_edp turns out to be false Date: Mon, 10 Aug 2015 11:35:40 +0530 Message-ID: <55C83F34.2050902@intel.com> References: <1439122373-16425-1-git-send-email-chris@chris-wilson.co.uk> <20150809140923.GA4871@wunner.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id D5A916E1A1 for ; Sun, 9 Aug 2015 23:05:43 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Lin, Mengdong" , Lukas Wunner , "intel-gfx@lists.freedesktop.org" Cc: "Luo, Focus" , "Lu, Han" List-Id: intel-gfx@lists.freedesktop.org aGkgTWVuZ2RvbmcsCiAgICAgaXMgdGhlcmUgYW55IHJlYXNvbiB3aHkgeW91IGNhbm5vdCBtb2Rp ZnkgVkJUID8gdW5sZXNzIGl0IGlzIApzaGlwcGVkIHZlcnNpb24geW91CmNhbiBqdXN0IGZsYXNo IHRoZSBtb2RpZmllZCBWQlQgYWxvbmcgd2l0aCBCSU9TLgoKQ2hyaXMsCiAgICAgaSB3b3VsZCBi ZSBldmVuIG1vcmUgc3VycHJpc2VkIGlmIFZCSU9TL0dPUCBjYW4gZW5hYmxlIHNvbWUgZGlzcGxh eSAKd2hlbiBpdCBpcwpjb25maWd1cmVkIGluY29ycmVjdGx5IGluIFZCVC4gR2l2ZSBtZSBhIGRh eSB0byBjaGVjayB3aXRoIHNvbWVvbmUgaWYgCnRoaXMgaXMgZXZlbgpwb3NzaWJsZSBpbiB0aGF0 IGxldmVsLgoKT24gOC8xMC8yMDE1IDg6MDAgQU0sIExpbiwgTWVuZ2Rvbmcgd3JvdGU6Cj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IEludGVsLWdmeCBbbWFpbHRvOmludGVs LWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZ10gT24gQmVoYWxmIE9mCj4+IEx1a2Fz IFd1bm5lcgo+PiBIaSwKPj4KPj4gT24gU3VuLCBBdWcgMDksIDIwMTUgYXQgMDE6MTI6NTNQTSAr MDEwMCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+Pj4gV2UgZm9sbG93IHRoZSBWQlQgYXMgdG8gd2hl dGhlciBhIERESSBwb3J0IGlzIHVzZWQgZm9yIGVEUCBhbmQgaWYgc28sCj4+PiBkbyBub3QgYXR0 YWNoIGEgSERNSSBlbmNvZGVyIHRvIGl0LiBIb3dldmVyIHRoZXJlIGFyZSBtYWNoaW5lcyBmb3IK Pj4+IHdoaWNoIHRoZSBWQlQgZURQIGZsYWcgaXMgYSBsaWUgKHNob2NraW5nISkgYW5kIHdlIGZh aWwgdG8gZGV0ZWN0IGEgZURQIGxpbmsuCj4+PiBGdXJ0aGVybW9yZSwgb24gdGhvc2UgbWFjaGlu ZXMgdGhlIEhETUkgaXMgY29ubmVjdGVkIHRvIHRoYXQgRERJIHBvcnQKPj4+IGJ1dCB3ZSBpZ25v cmUgaXQuCj4+Pgo+Pj4gSWYgd2UgcmVvcmRlciBvdXIgcG9ydCBpbml0aWFsaXNhdGlvbiB0byB0 cnkgdGhlIGVEUCBzZXR1cCBmaXJzdCBhbmQKPj4+IGlmIHRoYXQgZmFpbHMgd2UgY2FuIHRyZWF0 IGl0IGFzIGEgbm9ybWFsIERQIHBvcnQgYWxvbmcgd2l0aCBhIEhETUkKPj4+IG91dHB1dC4gVG8g YWNjb21wbGlzaCB0aGlzLCB3ZSBoYXZlIHRvIGRlbGF5IHJlZ2lzdGVyaW5nIHRoZSBEUAo+Pj4g Y29ubmVjdG9yL2VuY29kZXIgdW50aWwgYWZ0ZXIgd2UgZXN0YWJsaXNoIGl0cyBmaW5hbCB0eXBl Lgo+IFNvcnJ5IHRvIGp1bXAgaW4uIENvdWxkIHRoaXMgaGVscCBhbm90aGVyIHVzZSBjYXNlIGFz IGJlbG93ID8KPgo+IFdlIGhhdmUgc29tZSBCeXRyYWlsIG1hY2hpbmUgKEJheWxleSBCYXkpLCB3 ZSBhcHBsaWVkIEhXIHJld29yayB0byBkaXNhYmxlIGVEUCBjb25uZWN0aXZpdHkgdG8gRERJMSBh bmQgZW5hYmxlIERQIG9uIERESSAxLgo+IEJ1dCB3ZSBmb3VuZCB0aGUgaTkxNSBkcml2ZXIgc3Rp bGwgdGFrZSB0aGlzIERESSBhcyBlRFAsIG5vdCBEUC4gd2Ugc3VzcGVjdCBpdCdzIGJlY2F1c2Ug VkJUIHN0aWxsIHRha2VzIGl0IGFzIERQIGFuZCBzbyBpOTE1IGRyaXZlciBqdXN0IGZvbGxvd3Mu Cj4KPiBJZiB3ZSBkb24ndCB3YW50IHRvIHJldmlzZSBWQlQgaW4gQklPUyBhZnRlciBldmVyeSBy ZXdvcmssIGlzIHRoZXJlIGFueSBvdGhlciB3YXkgdG8gbGV0IGk5MTUgZGV0ZWN0IHRoaXMgaXMg YSBEUCBsaW5rPwo+Cj4gVGhhbmtzCj4gTWVuZ2RvbmcKPgo+Pj4gQnVnemlsbGE6IGh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzMxCj4+IFRoZSBleGlzdGlu ZyBjb2RlIHNlZW1zIHZlcnkgY2FyZWZ1bGx5IGNyYWZ0ZWQsIHRha2luZyBpbnRvIGFjY291bnQg dGhlCj4+IGRpZmZlcmVuY2VzIGJldHdlZW0gdmFyaW91cyBHUFUgZ2VuZXJhdGlvbnMgZXRjLCBz aHVmZmxpbmcgdGhhdCBhcm91bmQKPj4gbWlnaHQgcmlzayBicmVha2FnZS4gRldJVywgSSdtIHdv bmRlcmluZyBpZiBqdXN0IGFkZGluZyBhIHF1aXJrIGZvciB0aGlzIHNpbmdsZQo+PiBEZWxsIHdv cmtzdGF0aW9uIG1pZ2h0IGJlIGp1c3RpZmllZD8KPj4KPj4gQmVzdCByZWdhcmRzLAo+Pgo+PiBM dWthcwo+Pgo+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4+PiBDYzogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5v cmc+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg IDI3ICsrKystLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8 IDEyNwo+PiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDYgKy0KPj4+ICAgMyBmaWxlcyBjaGFu Z2VkLCA3OSBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+PiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gaW5kZXggMGJjZDFiMWFiYTRmLi5hYWI4ZGZk MWY4YTUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gQEAg LTEzOTQxLDcgKzEzOTQxLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1 Y3QKPj4+IGRybV9kZXZpY2UgKmRldikgIHsKPj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+PiAgIAlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcjsKPj4+IC0JYm9vbCBkcGRfaXNfZWRwID0gZmFsc2U7Cj4+Pgo+Pj4gICAJaW50 ZWxfbHZkc19pbml0KGRldik7Cj4+Pgo+Pj4gQEAgLTEzOTgzLDMxICsxMzk4MiwzMyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zZXR1cF9vdXRwdXRzKHN0cnVjdAo+PiBkcm1fZGV2aWNlICpkZXYpCj4+ PiAgIAkJCWludGVsX2RkaV9pbml0KGRldiwgUE9SVF9EKTsKPj4+ICAgCX0gZWxzZSBpZiAoSEFT X1BDSF9TUExJVChkZXYpKSB7Cj4+PiAgIAkJaW50IGZvdW5kOwo+Pj4gLQkJZHBkX2lzX2VkcCA9 IGludGVsX2RwX2lzX2VkcChkZXYsIFBPUlRfRCk7Cj4+Pgo+Pj4gICAJCWlmIChoYXNfZWRwX2Eo ZGV2KSkKPj4+ICAgCQkJaW50ZWxfZHBfaW5pdChkZXYsIERQX0EsIFBPUlRfQSk7Cj4+Pgo+Pj4g KwkJZm91bmQgPSAwOwo+Pj4gKwkJLyogUENIIFNEVk9CIG11bHRpcGxleCB3aXRoIEhETUlCICov Cj4+PiAgIAkJaWYgKEk5MTVfUkVBRChQQ0hfSERNSUIpICYgU0RWT19ERVRFQ1RFRCkgewo+Pj4g LQkJCS8qIFBDSCBTRFZPQiBtdWx0aXBsZXggd2l0aCBIRE1JQiAqLwo+Pj4gICAJCQlmb3VuZCA9 IGludGVsX3Nkdm9faW5pdChkZXYsIFBDSF9TRFZPQiwgdHJ1ZSk7Cj4+PiAgIAkJCWlmICghZm91 bmQpCj4+PiAgIAkJCQlpbnRlbF9oZG1pX2luaXQoZGV2LCBQQ0hfSERNSUIsIFBPUlRfQik7Cj4+ PiAtCQkJaWYgKCFmb3VuZCAmJiAoSTkxNV9SRUFEKFBDSF9EUF9CKSAmIERQX0RFVEVDVEVEKSkK Pj4+IC0JCQkJaW50ZWxfZHBfaW5pdChkZXYsIFBDSF9EUF9CLCBQT1JUX0IpOwo+Pj4gICAJCX0K Pj4+ICsJCWlmICghZm91bmQgJiYgSTkxNV9SRUFEKFBDSF9EUF9CKSAmIERQX0RFVEVDVEVEKQo+ Pj4gKwkJCWludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBfQiwgUE9SVF9CKTsKPj4+Cj4+PiAtCQlp ZiAoSTkxNV9SRUFEKFBDSF9IRE1JQykgJiBTRFZPX0RFVEVDVEVEKQo+Pj4gLQkJCWludGVsX2hk bWlfaW5pdChkZXYsIFBDSF9IRE1JQywgUE9SVF9DKTsKPj4+IC0KPj4+IC0JCWlmICghZHBkX2lz X2VkcCAmJiBJOTE1X1JFQUQoUENIX0hETUlEKSAmIFNEVk9fREVURUNURUQpCj4+PiAtCQkJaW50 ZWxfaGRtaV9pbml0KGRldiwgUENIX0hETUlELCBQT1JUX0QpOwo+Pj4gLQo+Pj4gKwkJZm91bmQg PSAwOwo+Pj4gICAJCWlmIChJOTE1X1JFQUQoUENIX0RQX0MpICYgRFBfREVURUNURUQpCj4+PiAt CQkJaW50ZWxfZHBfaW5pdChkZXYsIFBDSF9EUF9DLCBQT1JUX0MpOwo+Pj4gKwkJCWZvdW5kID0g aW50ZWxfZHBfaW5pdChkZXYsIFBDSF9EUF9DLCBQT1JUX0MpOwo+Pj4gKwkJaWYgKGZvdW5kICE9 IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFAgJiYKPj4+ICsJCSAgICBJOTE1X1JFQUQoUENIX0hETUlD KSAmIFNEVk9fREVURUNURUQpCj4+PiArCQkJaW50ZWxfaGRtaV9pbml0KGRldiwgUENIX0hETUlD LCBQT1JUX0MpOwo+Pj4KPj4+ICsJCWZvdW5kID0gMDsKPj4+ICAgCQlpZiAoSTkxNV9SRUFEKFBD SF9EUF9EKSAmIERQX0RFVEVDVEVEKQo+Pj4gLQkJCWludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBf RCwgUE9SVF9EKTsKPj4+ICsJCQlmb3VuZCA9IGludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBfRCwg UE9SVF9EKTsKPj4+ICsJCWlmIChmb3VuZCAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQICYmCj4+ PiArCQkgICAgSTkxNV9SRUFEKFBDSF9IRE1JRCkgJiBTRFZPX0RFVEVDVEVEKQo+Pj4gKwkJCWlu dGVsX2hkbWlfaW5pdChkZXYsIFBDSF9IRE1JRCwgUE9SVF9EKTsKPj4+ICAgCX0gZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4+PiAgIAkJLyoKPj4+ICAgCQkgKiBUaGUgRFBfREVURUNU RUQgYml0IGlzIHRoZSBsYXRjaGVkIHN0YXRlIG9mIHRoZSBEREMgZGlmZiAtLWdpdAo+Pj4gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+Pj4gaW5kZXggMWU2NGE4YzFlN2NiLi44YWRmNTAwZjM5ODkgMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+PiBAQCAtMTAzMSwxNCArMTAzMSwxMyBAQCBpbnRlbF9k cF9hdXhfdHJhbnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKPj4gc3RydWN0IGRybV9kcF9h dXhfbXNnICptc2cpCj4+PiAgIAlyZXR1cm4gcmV0Owo+Pj4gICB9Cj4+Pgo+Pj4gLXN0YXRpYyB2 b2lkCj4+PiArc3RhdGljIGludAo+Pj4gICBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yCj4+PiAqY29ubmVjdG9yKSAgewo+ Pj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7 Cj4+PiAgIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKPj4+ICAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPnBvcnQ7Cj4+PiAgIAljb25zdCBjaGFyICpuYW1lID0gTlVMTDsKPj4+IC0JaW50IHJldDsK Pj4+Cj4+PiAgIAlzd2l0Y2ggKHBvcnQpIHsKPj4+ICAgCWNhc2UgUE9SVF9BOgo+Pj4gQEAgLTEw ODAsMjAgKzEwNzksNyBAQCBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+PiBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+PiAgIAlEUk1fREVC VUdfS01TKCJyZWdpc3RlcmluZyAlcyBidXMgZm9yICVzXG4iLCBuYW1lLAo+Pj4gICAJCSAgICAg IGNvbm5lY3Rvci0+YmFzZS5rZGV2LT5rb2JqLm5hbWUpOwo+Pj4KPj4+IC0JcmV0ID0gZHJtX2Rw X2F1eF9yZWdpc3RlcigmaW50ZWxfZHAtPmF1eCk7Cj4+PiAtCWlmIChyZXQgPCAwKSB7Cj4+PiAt CQlEUk1fRVJST1IoImRybV9kcF9hdXhfcmVnaXN0ZXIoKSBmb3IgJXMgZmFpbGVkICglZClcbiIs Cj4+PiAtCQkJICBuYW1lLCByZXQpOwo+Pj4gLQkJcmV0dXJuOwo+Pj4gLQl9Cj4+PiAtCj4+PiAt CXJldCA9IHN5c2ZzX2NyZWF0ZV9saW5rKCZjb25uZWN0b3ItPmJhc2Uua2Rldi0+a29iaiwKPj4+ IC0JCQkJJmludGVsX2RwLT5hdXguZGRjLmRldi5rb2JqLAo+Pj4gLQkJCQlpbnRlbF9kcC0+YXV4 LmRkYy5kZXYua29iai5uYW1lKTsKPj4+IC0JaWYgKHJldCA8IDApIHsKPj4+IC0JCURSTV9FUlJP Uigic3lzZnNfY3JlYXRlX2xpbmsoKSBmb3IgJXMgZmFpbGVkICglZClcbiIsIG5hbWUsIHJldCk7 Cj4+PiAtCQlkcm1fZHBfYXV4X3VucmVnaXN0ZXIoJmludGVsX2RwLT5hdXgpOwo+Pj4gLQl9Cj4+ PiArCXJldHVybiBkcm1fZHBfYXV4X3JlZ2lzdGVyKCZpbnRlbF9kcC0+YXV4KTsKPj4+ICAgfQo+ Pj4KPj4+ICAgc3RhdGljIHZvaWQKPj4+IEBAIC01MDE5LDYgKzUwMDUsMTAgQEAgYm9vbCBpbnRl bF9kcF9pc19lZHAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gZW51bSBwb3J0IHBvcnQpCj4+ PiAgIAkJW1BPUlRfRF0gPSBQT1JUX0lEUEQsCj4+PiAgIAl9Owo+Pj4KPj4+ICsJLyogZURQIG9u bHkgb24gcG9ydCBCIGFuZC9vciBDIG9uIHZsdi9jaHYgKi8KPj4+ICsJaWYgKElTX1ZBTExFWVZJ RVcoZGV2X3ByaXYpICYmICEocG9ydCA9PSBQT1JUX0IgfHwgcG9ydCA9PSBQT1JUX0MpKQo+Pj4g KwkJcmV0dXJuIGZhbHNlOwo+Pj4gKwo+Pj4gICAJaWYgKHBvcnQgPT0gUE9SVF9BKQo+Pj4gICAJ CXJldHVybiB0cnVlOwo+Pj4KPj4+IEBAIC01NjcwLDkgKzU2NjAsNiBAQCBzdGF0aWMgYm9vbCBp bnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0Cj4+IGludGVsX2RwICppbnRlbF9kcCwKPj4+ ICAgCXN0cnVjdCBlZGlkICplZGlkOwo+Pj4gICAJZW51bSBwaXBlIHBpcGUgPSBJTlZBTElEX1BJ UEU7Cj4+Pgo+Pj4gLQlpZiAoIWlzX2VkcChpbnRlbF9kcCkpCj4+PiAtCQlyZXR1cm4gdHJ1ZTsK Pj4+IC0KPj4+ICAgCXBwc19sb2NrKGludGVsX2RwKTsKPj4+ICAgCWludGVsX2VkcF9wYW5lbF92 ZGRfc2FuaXRpemUoaW50ZWxfZHApOwo+Pj4gICAJcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4+PiBA QCAtNTc2Miw3ICs1NzQ5LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9y KHN0cnVjdAo+PiBpbnRlbF9kcCAqaW50ZWxfZHAsCj4+PiAgIAlyZXR1cm4gdHJ1ZTsKPj4+ICAg fQo+Pj4KPj4+IC1ib29sCj4+PiAraW50Cj4+PiAgIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+Pj4gICAJCQlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpICB7IEBAIC01NzcyLDYKPj4gKzU3NTks NyBAQAo+Pj4gaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsCj4+PiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxf ZW5jb2Rlci0+YmFzZS5kZXY7Cj4+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdf cG9ydC0+cG9ydDsKPj4+ICsJaW50IHJldDsKPj4+ICAgCWludCB0eXBlOwo+Pj4KPj4+ICAgCWlu dGVsX2RwLT5wcHNfcGlwZSA9IElOVkFMSURfUElQRTsKPj4+IEBAIC01ODAyLDM0ICs1NzkwLDE0 IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdAo+PiBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0LAo+Pj4gICAJZWxzZQo+Pj4gICAJCXR5cGUgPSBEUk1fTU9ERV9DT05O RUNUT1JfRGlzcGxheVBvcnQ7Cj4+Pgo+Pj4gLQkvKgo+Pj4gLQkgKiBGb3IgZURQIHdlIGFsd2F5 cyBzZXQgdGhlIGVuY29kZXIgdHlwZSB0byBJTlRFTF9PVVRQVVRfRURQLCBidXQKPj4+IC0JICog Zm9yIERQIHRoZSBlbmNvZGVyIHR5cGUgY2FuIGJlIHNldCBieSB0aGUgY2FsbGVyIHRvCj4+PiAt CSAqIElOVEVMX09VVFBVVF9VTktOT1dOIGZvciBEREksIHNvIGRvbid0IHJld3JpdGUgaXQuCj4+ PiAtCSAqLwo+Pj4gLQlpZiAodHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+Pj4gLQkJ aW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9FRFA7Cj4+PiAtCj4+PiAtCS8qIGVE UCBvbmx5IG9uIHBvcnQgQiBhbmQvb3IgQyBvbiB2bHYvY2h2ICovCj4+PiAtCWlmIChXQVJOX09O KElTX1ZBTExFWVZJRVcoZGV2KSAmJiBpc19lZHAoaW50ZWxfZHApICYmCj4+PiAtCQkgICAgcG9y dCAhPSBQT1JUX0IgJiYgcG9ydCAhPSBQT1JUX0MpKQo+Pj4gLQkJcmV0dXJuIGZhbHNlOwo+Pj4g LQo+Pj4gICAJRFJNX0RFQlVHX0tNUygiQWRkaW5nICVzIGNvbm5lY3RvciBvbiBwb3J0ICVjXG4i LAo+Pj4gICAJCQl0eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFAgPyAiZURQIiA6ICJEUCIs Cj4+PiAgIAkJCXBvcnRfbmFtZShwb3J0KSk7Cj4+Pgo+Pj4gLQlkcm1fY29ubmVjdG9yX2luaXQo ZGV2LCBjb25uZWN0b3IsICZpbnRlbF9kcF9jb25uZWN0b3JfZnVuY3MsIHR5cGUpOwo+Pj4gLQlk cm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLAo+PiAmaW50ZWxfZHBfY29ubmVjdG9y X2hlbHBlcl9mdW5jcyk7Cj4+PiAtCj4+PiAgIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2Vk ID0gdHJ1ZTsKPj4+ICAgCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gMDsKPj4+Cj4+ PiAtCUlOSVRfREVMQVlFRF9XT1JLKCZpbnRlbF9kcC0+cGFuZWxfdmRkX3dvcmssCj4+PiAtCQkJ ICBlZHBfcGFuZWxfdmRkX3dvcmspOwo+Pj4gLQo+Pj4gLQlpbnRlbF9jb25uZWN0b3JfYXR0YWNo X2VuY29kZXIoaW50ZWxfY29ubmVjdG9yLCBpbnRlbF9lbmNvZGVyKTsKPj4+IC0JZHJtX2Nvbm5l Y3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+Pj4gKwlJTklUX0RFTEFZRURfV09SSygmaW50ZWxf ZHAtPnBhbmVsX3ZkZF93b3JrLAo+PiBlZHBfcGFuZWxfdmRkX3dvcmspOwo+Pj4gICAJaWYgKEhB U19EREkoZGV2KSkKPj4+ICAgCQlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9Cj4+IGlu dGVsX2RkaV9jb25uZWN0b3JfZ2V0X2h3X3N0YXRlOwo+Pj4gQEAgLTU4NTUsNyArNTgyMyw3IEBA IGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPj4gKmlu dGVsX2RpZ19wb3J0LAo+Pj4gICAJCUJVRygpOwo+Pj4gICAJfQo+Pj4KPj4+IC0JaWYgKGlzX2Vk cChpbnRlbF9kcCkpIHsKPj4+ICsJaWYgKHR5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkg ewo+Pj4gICAJCXBwc19sb2NrKGludGVsX2RwKTsKPj4+ICAgCQlpbnRlbF9kcF9pbml0X3BhbmVs X3Bvd2VyX3RpbWVzdGFtcHMoaW50ZWxfZHApOwo+Pj4gICAJCWlmIChJU19WQUxMRVlWSUVXKGRl dikpCj4+PiBAQCAtNTg2NSw3ICs1ODMzLDQ5IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0 cnVjdAo+PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+Pj4gICAJCXBwc191 bmxvY2soaW50ZWxfZHApOwo+Pj4gICAJfQo+Pj4KPj4+IC0JaW50ZWxfZHBfYXV4X2luaXQoaW50 ZWxfZHAsIGludGVsX2Nvbm5lY3Rvcik7Cj4+PiArCXJldCA9IGludGVsX2RwX2F1eF9pbml0KGlu dGVsX2RwLCBpbnRlbF9jb25uZWN0b3IpOwo+Pj4gKwlpZiAocmV0IDwgMCkgewo+Pj4gKwkJRFJN X0VSUk9SKCJyZWdpc3RlcmluZyBEUC1BVVggY2hhbm5lbCBmb3IgJXMgZmFpbGVkICglZClcbiIs Cj4+PiArCQkJICBpbnRlbF9kcC0+YXV4Lm5hbWUsIHJldCk7Cj4+PiArCQlyZXR1cm4gMDsKPj4+ ICsJfQo+Pj4gKwo+Pj4gKwlpZiAodHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQICYmCj4+ PiArCSAgICAhaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKGludGVsX2RwLCBpbnRlbF9jb25uZWN0 b3IpKSB7Cj4+PiArCQlkcm1fZHBfYXV4X3VucmVnaXN0ZXIoJmludGVsX2RwLT5hdXgpOwo+Pj4g KwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpbnRlbF9kcC0+cGFuZWxfdmRkX3dvcmspOwo+ Pj4gKwkJLyoKPj4+ICsJCSAqIHZkZCBtaWdodCBzdGlsbCBiZSBlbmFibGVkIGRvIHRvIHRoZSBk ZWxheWVkIHZkZCBvZmYuCj4+PiArCQkgKiBNYWtlIHN1cmUgdmRkIGlzIGFjdHVhbGx5IHR1cm5l ZCBvZmYgaGVyZS4KPj4+ICsJCSAqLwo+Pj4gKwkJcHBzX2xvY2soaW50ZWxfZHApOwo+Pj4gKwkJ ZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhpbnRlbF9kcCk7Cj4+PiArCQlwcHNfdW5sb2NrKGludGVs X2RwKTsKPj4+ICsKPj4+ICsJCS8qIERvd25ncmFkZSB0byBhIG5vcm1hbCBEUCBsaW5rICovCj4+ PiArCQl0eXBlID0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0Owo+Pj4gKwl9Cj4+PiAr Cj4+PiArCS8qCj4+PiArCSAqIEZvciBlRFAgd2UgYWx3YXlzIHNldCB0aGUgZW5jb2RlciB0eXBl IHRvIElOVEVMX09VVFBVVF9FRFAsIGJ1dAo+Pj4gKwkgKiBmb3IgRFAgdGhlIGVuY29kZXIgdHlw ZSBjYW4gYmUgc2V0IGJ5IHRoZSBjYWxsZXIgdG8KPj4+ICsJICogSU5URUxfT1VUUFVUX1VOS05P V04gZm9yIERESSwgc28gZG9uJ3QgcmV3cml0ZSBpdC4KPj4+ICsJICovCj4+PiArCWlmICh0eXBl ID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApCj4+PiArCQlpbnRlbF9lbmNvZGVyLT50eXBlID0g SU5URUxfT1VUUFVUX0VEUDsKPj4+ICsKPj4+ICsJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgY29u bmVjdG9yLCAmaW50ZWxfZHBfY29ubmVjdG9yX2Z1bmNzLCB0eXBlKTsKPj4+ICsJZHJtX2Nvbm5l Y3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwKPj4+ICsmaW50ZWxfZHBfY29ubmVjdG9yX2hlbHBl cl9mdW5jcyk7Cj4+PiArCj4+PiArCWludGVsX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2RlcihpbnRl bF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIpOwo+Pj4gKwlkcm1fY29ubmVjdG9yX3JlZ2lzdGVy KGNvbm5lY3Rvcik7Cj4+PiArCj4+PiArCXJldCA9IHN5c2ZzX2NyZWF0ZV9saW5rKCZjb25uZWN0 b3ItPmtkZXYtPmtvYmosCj4+PiArCQkJCSZpbnRlbF9kcC0+YXV4LmRkYy5kZXYua29iaiwKPj4+ ICsJCQkJaW50ZWxfZHAtPmF1eC5kZGMuZGV2LmtvYmoubmFtZSk7Cj4+PiArCWlmIChyZXQgPCAw KQo+Pj4gKwkJRFJNX0VSUk9SKCJzeXNmc19jcmVhdGVfbGluaygpIGZvciAlcyBmYWlsZWQgKCVk KVxuIiwKPj4+ICsJCQkgIGludGVsX2RwLT5hdXgubmFtZSwgcmV0KTsKPj4+Cj4+PiAgIAkvKiBp bml0IE1TVCBvbiBwb3J0cyB0aGF0IGNhbiBzdXBwb3J0IGl0ICovCj4+PiAgIAlpZiAoSEFTX0RQ X01TVChkZXYpICYmCj4+PiBAQCAtNTg3MywyMyArNTg4Myw2IEBAIGludGVsX2RwX2luaXRfY29u bmVjdG9yKHN0cnVjdAo+PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+Pj4g ICAJCWludGVsX2RwX21zdF9lbmNvZGVyX2luaXQoaW50ZWxfZGlnX3BvcnQsCj4+PiAgIAkJCQkJ ICBpbnRlbF9jb25uZWN0b3ItPmJhc2UuYmFzZS5pZCk7Cj4+Pgo+Pj4gLQlpZiAoIWludGVsX2Vk cF9pbml0X2Nvbm5lY3RvcihpbnRlbF9kcCwgaW50ZWxfY29ubmVjdG9yKSkgewo+Pj4gLQkJZHJt X2RwX2F1eF91bnJlZ2lzdGVyKCZpbnRlbF9kcC0+YXV4KTsKPj4+IC0JCWlmIChpc19lZHAoaW50 ZWxfZHApKSB7Cj4+PiAtCQkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpbnRlbF9kcC0+cGFu ZWxfdmRkX3dvcmspOwo+Pj4gLQkJCS8qCj4+PiAtCQkJICogdmRkIG1pZ2h0IHN0aWxsIGJlIGVu YWJsZWQgZG8gdG8gdGhlIGRlbGF5ZWQgdmRkIG9mZi4KPj4+IC0JCQkgKiBNYWtlIHN1cmUgdmRk IGlzIGFjdHVhbGx5IHR1cm5lZCBvZmYgaGVyZS4KPj4+IC0JCQkgKi8KPj4+IC0JCQlwcHNfbG9j ayhpbnRlbF9kcCk7Cj4+PiAtCQkJZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhpbnRlbF9kcCk7Cj4+ PiAtCQkJcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4+PiAtCQl9Cj4+PiAtCQlkcm1fY29ubmVjdG9y X3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPj4+IC0JCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25u ZWN0b3IpOwo+Pj4gLQkJcmV0dXJuIGZhbHNlOwo+Pj4gLQl9Cj4+PiAtCj4+PiAgIAlpbnRlbF9k cF9hZGRfcHJvcGVydGllcyhpbnRlbF9kcCwgY29ubmVjdG9yKTsKPj4+Cj4+PiAgIAkvKiBGb3Ig RzRYIGRlc2t0b3AgY2hpcCwgUEVHX0JBTkRfR0FQX0RBVEEgMzowIG11c3QgZmlyc3QgYmUgd3Jp dHRlbgo+Pj4gQEAgLTU5MDMsMTAgKzU4OTYsMTAgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Io c3RydWN0Cj4+PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+Pj4KPj4+ICAg CWk5MTVfZGVidWdmc19jb25uZWN0b3JfYWRkKGNvbm5lY3Rvcik7Cj4+Pgo+Pj4gLQlyZXR1cm4g dHJ1ZTsKPj4+ICsJcmV0dXJuIHR5cGU7Cj4+PiAgIH0KPj4+Cj4+PiAtdm9pZAo+Pj4gK2ludAo+ Pj4gICBpbnRlbF9kcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBvdXRwdXRfcmVn LCBlbnVtIHBvcnQgcG9ydCkKPj4+IHsKPj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7IEBAIC01OTE0LDE1Cj4+PiArNTkwNywxNiBAQCBp bnRlbF9kcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBvdXRwdXRfcmVnLCBlbnVt Cj4+IHBvcnQgcG9ydCkKPj4+ICAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy Owo+Pj4gICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+Pj4gICAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+Pj4gKwlpbnQgcmV0Owo+Pj4KPj4+ICAgCWlu dGVsX2RpZ19wb3J0ID0ga3phbGxvYyhzaXplb2YoKmludGVsX2RpZ19wb3J0KSwgR0ZQX0tFUk5F TCk7Cj4+PiAgIAlpZiAoIWludGVsX2RpZ19wb3J0KQo+Pj4gLQkJcmV0dXJuOwo+Pj4gKwkJcmV0 dXJuIDA7Cj4+Pgo+Pj4gICAJaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfY29ubmVjdG9yX2FsbG9j KCk7Cj4+PiAgIAlpZiAoIWludGVsX2Nvbm5lY3Rvcikgewo+Pj4gICAJCWtmcmVlKGludGVsX2Rp Z19wb3J0KTsKPj4+IC0JCXJldHVybjsKPj4+ICsJCXJldHVybiAwOwo+Pj4gICAJfQo+Pj4KPj4+ ICAgCWludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7IEBAIC01OTcwLDExICs1 OTY0LDE0IEBACj4+PiBpbnRlbF9kcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBv dXRwdXRfcmVnLCBlbnVtIHBvcnQgcG9ydCkKPj4+ICAgCWludGVsX2RpZ19wb3J0LT5ocGRfcHVs c2UgPSBpbnRlbF9kcF9ocGRfcHVsc2U7Cj4+PiAgIAlkZXZfcHJpdi0+aG90cGx1Zy5pcnFfcG9y dFtwb3J0XSA9IGludGVsX2RpZ19wb3J0Owo+Pj4KPj4+IC0JaWYgKCFpbnRlbF9kcF9pbml0X2Nv bm5lY3RvcihpbnRlbF9kaWdfcG9ydCwgaW50ZWxfY29ubmVjdG9yKSkgewo+Pj4gKwlyZXQgPSBp bnRlbF9kcF9pbml0X2Nvbm5lY3RvcihpbnRlbF9kaWdfcG9ydCwgaW50ZWxfY29ubmVjdG9yKTsK Pj4+ICsJaWYgKHJldCA9PSAwKSB7Cj4+PiAgIAkJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVy KTsKPj4+ICAgCQlrZnJlZShpbnRlbF9kaWdfcG9ydCk7Cj4+PiAgIAkJa2ZyZWUoaW50ZWxfY29u bmVjdG9yKTsKPj4+ICAgCX0KPj4+ICsKPj4+ICsJcmV0dXJuIHJldDsKPj4+ICAgfQo+Pj4KPj4+ ICAgdm9pZCBpbnRlbF9kcF9tc3Rfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KSBkaWZm IC0tZ2l0Cj4+PiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+IGluZGV4IDE4ZmU2ZDhiN2Q5My4uYWRlMWNlODUz NTgzIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiBAQCAtMTE3OSw5ICsx MTc5LDkgQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZQo+Pj4g KmRldik7ICB2b2lkIGFzc2VydF9jc3JfbG9hZGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4+Pgo+Pj4gICAvKiBpbnRlbF9kcC5jICovCj4+PiAtdm9pZCBpbnRlbF9kcF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBvdXRwdXRfcmVnLCBlbnVtIHBvcnQKPj4+ IHBvcnQpOyAtYm9vbCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0Cj4+ICppbnRlbF9kaWdfcG9ydCwKPj4+IC0JCQkgICAgIHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4+PiAraW50IGludGVsX2RwX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IG91dHB1dF9yZWcsIGVudW0gcG9ydAo+Pj4gK3BvcnQpOyBpbnQg aW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydAo+PiAqaW50 ZWxfZGlnX3BvcnQsCj4+PiArCQkJICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3Rvcik7Cj4+PiAgIHZvaWQgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKTsgIHZvaWQKPj4+IGludGVsX2RwX2NvbXBsZXRlX2xpbmtfdHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7ICB2b2lkCj4+PiBpbnRlbF9kcF9zdG9wX2xpbmtf dHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4+PiAtLQo+Pj4gMi41LjAKPj4+Cj4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKcmVnYXJkcywKU2l2YWt1bWFyCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=