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 16:05:31 +0530 Message-ID: <55C87E73.2020404@intel.com> References: <1439122373-16425-1-git-send-email-chris@chris-wilson.co.uk> <20150809140923.GA4871@wunner.de> <55C83F34.2050902@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 911A66E381 for ; Mon, 10 Aug 2015 03:35:34 -0700 (PDT) In-Reply-To: <55C83F34.2050902@intel.com> 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 Q2hyaXMsCiAgICAgQWZ0ZXIgYXNraW5nIGZldyBwZW9wbGUgZm91bmQgdGhhdCB0aGUgc2ltcGxl c3QgZXhwbGFuYXRpb24gYW5kIApwbGF1c2libGUgcm9vdCBjYXVzZQpiZWluZyB0aGF0IFBPUlQg RCBpcyBzZXQgZm9yIGJvdGggZURQIGFuZCBIRE1JIDopLiBpbiB3aGljaCBjYXNlIHRoZSAKcHJv cGVyIGZpeCBpcyAgdG8KY2hlY2sgaW4gaW50ZWxfZHBfaXNfZWRwLCBpZiBQT1JUIEQgaXMgYWdh aW4gc2V0IGZvciBhbnkgb3RoZXIgZGlzcGxheSAKYW5kIHJldHVybiBmYWxzZQppZiB0aGF0IGlz IHRoZSBjYXNlCm9yCmhhdmUgYSBxdWlyayBmb3IgdGhpcyBjb25maWcgc2luY2UgdGhpcyBzZWVt cyB0byBiZSByZXBvcnRlZCBhdGxlYXN0IGZvciAKbm93IGFzIHN1Z2dlc3RlZApieSBMdWthcwoK aSB3b3VsZCByZWNvbW1lbmQgdGhlIGZpcnN0IG1ldGhvZCwgaWYgd2UgY29uZmlybSB0aGUgcm9v dCBjYXVzZSBpcyBhcyAKZXhwbGFpbmVkIGFib3ZlLgoKT24gOC8xMC8yMDE1IDExOjM1IEFNLCBT aXZha3VtYXIgVGh1bGFzaW1hbmkgd3JvdGU6Cj4gaGkgTWVuZ2RvbmcsCj4gICAgIGlzIHRoZXJl IGFueSByZWFzb24gd2h5IHlvdSBjYW5ub3QgbW9kaWZ5IFZCVCA/IHVubGVzcyBpdCBpcyAKPiBz aGlwcGVkIHZlcnNpb24geW91Cj4gY2FuIGp1c3QgZmxhc2ggdGhlIG1vZGlmaWVkIFZCVCBhbG9u ZyB3aXRoIEJJT1MuCj4KPiBDaHJpcywKPiAgICAgaSB3b3VsZCBiZSBldmVuIG1vcmUgc3VycHJp c2VkIGlmIFZCSU9TL0dPUCBjYW4gZW5hYmxlIHNvbWUgCj4gZGlzcGxheSB3aGVuIGl0IGlzCj4g Y29uZmlndXJlZCBpbmNvcnJlY3RseSBpbiBWQlQuIEdpdmUgbWUgYSBkYXkgdG8gY2hlY2sgd2l0 aCBzb21lb25lIGlmIAo+IHRoaXMgaXMgZXZlbgo+IHBvc3NpYmxlIGluIHRoYXQgbGV2ZWwuCj4K PiBPbiA4LzEwLzIwMTUgODowMCBBTSwgTGluLCBNZW5nZG9uZyB3cm90ZToKPj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tCj4+PiBGcm9tOiBJbnRlbC1nZnggW21haWx0bzppbnRlbC1nZngt Ym91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9uIAo+Pj4gQmVoYWxmIE9mCj4+PiBMdWth cyBXdW5uZXIKPj4+IEhpLAo+Pj4KPj4+IE9uIFN1biwgQXVnIDA5LCAyMDE1IGF0IDAxOjEyOjUz UE0gKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPj4+PiBXZSBmb2xsb3cgdGhlIFZCVCBhcyB0 byB3aGV0aGVyIGEgRERJIHBvcnQgaXMgdXNlZCBmb3IgZURQIGFuZCBpZiBzbywKPj4+PiBkbyBu b3QgYXR0YWNoIGEgSERNSSBlbmNvZGVyIHRvIGl0LiBIb3dldmVyIHRoZXJlIGFyZSBtYWNoaW5l cyBmb3IKPj4+PiB3aGljaCB0aGUgVkJUIGVEUCBmbGFnIGlzIGEgbGllIChzaG9ja2luZyEpIGFu ZCB3ZSBmYWlsIHRvIGRldGVjdCBhIAo+Pj4+IGVEUCBsaW5rLgo+Pj4+IEZ1cnRoZXJtb3JlLCBv biB0aG9zZSBtYWNoaW5lcyB0aGUgSERNSSBpcyBjb25uZWN0ZWQgdG8gdGhhdCBEREkgcG9ydAo+ Pj4+IGJ1dCB3ZSBpZ25vcmUgaXQuCj4+Pj4KPj4+PiBJZiB3ZSByZW9yZGVyIG91ciBwb3J0IGlu aXRpYWxpc2F0aW9uIHRvIHRyeSB0aGUgZURQIHNldHVwIGZpcnN0IGFuZAo+Pj4+IGlmIHRoYXQg ZmFpbHMgd2UgY2FuIHRyZWF0IGl0IGFzIGEgbm9ybWFsIERQIHBvcnQgYWxvbmcgd2l0aCBhIEhE TUkKPj4+PiBvdXRwdXQuIFRvIGFjY29tcGxpc2ggdGhpcywgd2UgaGF2ZSB0byBkZWxheSByZWdp c3RlcmluZyB0aGUgRFAKPj4+PiBjb25uZWN0b3IvZW5jb2RlciB1bnRpbCBhZnRlciB3ZSBlc3Rh Ymxpc2ggaXRzIGZpbmFsIHR5cGUuCj4+IFNvcnJ5IHRvIGp1bXAgaW4uIENvdWxkIHRoaXMgaGVs cCBhbm90aGVyIHVzZSBjYXNlIGFzIGJlbG93ID8KPj4KPj4gV2UgaGF2ZSBzb21lIEJ5dHJhaWwg bWFjaGluZSAoQmF5bGV5IEJheSksIHdlIGFwcGxpZWQgSFcgcmV3b3JrIHRvIAo+PiBkaXNhYmxl IGVEUCBjb25uZWN0aXZpdHkgdG8gRERJMSBhbmQgZW5hYmxlIERQIG9uIERESSAxLgo+PiBCdXQg d2UgZm91bmQgdGhlIGk5MTUgZHJpdmVyIHN0aWxsIHRha2UgdGhpcyBEREkgYXMgZURQLCBub3Qg RFAuIHdlIAo+PiBzdXNwZWN0IGl0J3MgYmVjYXVzZSBWQlQgc3RpbGwgdGFrZXMgaXQgYXMgRFAg YW5kIHNvIGk5MTUgZHJpdmVyIGp1c3QgCj4+IGZvbGxvd3MuCj4+Cj4+IElmIHdlIGRvbid0IHdh bnQgdG8gcmV2aXNlIFZCVCBpbiBCSU9TIGFmdGVyIGV2ZXJ5IHJld29yaywgaXMgdGhlcmUgCj4+ IGFueSBvdGhlciB3YXkgdG8gbGV0IGk5MTUgZGV0ZWN0IHRoaXMgaXMgYSBEUCBsaW5rPwo+Pgo+ PiBUaGFua3MKPj4gTWVuZ2RvbmcKPj4KPj4+PiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVk ZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgzMzEKPj4+IFRoZSBleGlzdGluZyBjb2RlIHNl ZW1zIHZlcnkgY2FyZWZ1bGx5IGNyYWZ0ZWQsIHRha2luZyBpbnRvIGFjY291bnQgdGhlCj4+PiBk aWZmZXJlbmNlcyBiZXR3ZWVtIHZhcmlvdXMgR1BVIGdlbmVyYXRpb25zIGV0Yywgc2h1ZmZsaW5n IHRoYXQgYXJvdW5kCj4+PiBtaWdodCByaXNrIGJyZWFrYWdlLiBGV0lXLCBJJ20gd29uZGVyaW5n IGlmIGp1c3QgYWRkaW5nIGEgcXVpcmsgZm9yIAo+Pj4gdGhpcyBzaW5nbGUKPj4+IERlbGwgd29y a3N0YXRpb24gbWlnaHQgYmUganVzdGlmaWVkPwo+Pj4KPj4+IEJlc3QgcmVnYXJkcywKPj4+Cj4+ PiBMdWthcwo+Pj4KPj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Cj4+Pj4gQ2M6IEplc3NlIEJhcm5lcyA8amJhcm5lc0B2aXJ0dW91 c2dlZWsub3JnPgo+Pj4+IC0tLQo+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgIDI3ICsrKystLS0tCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jICAgICAgfCAxMjcKPj4+ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4+ Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAgNiArLQo+Pj4+ICAgMyBm aWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4+IGluZGV4IDBiY2QxYjFh YmE0Zi4uYWFiOGRmZDFmOGE1IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+Pj4+IEBAIC0xMzk0MSw3ICsxMzk0MSw2IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nl dHVwX291dHB1dHMoc3RydWN0Cj4+Pj4gZHJtX2RldmljZSAqZGV2KSAgewo+Pj4+ICAgICAgIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+Pj4g ICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4+Pj4gLSAgICBib29sIGRwZF9p c19lZHAgPSBmYWxzZTsKPj4+Pgo+Pj4+ICAgICAgIGludGVsX2x2ZHNfaW5pdChkZXYpOwo+Pj4+ Cj4+Pj4gQEAgLTEzOTgzLDMxICsxMzk4MiwzMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9v dXRwdXRzKHN0cnVjdAo+Pj4gZHJtX2RldmljZSAqZGV2KQo+Pj4+ICAgICAgICAgICAgICAgaW50 ZWxfZGRpX2luaXQoZGV2LCBQT1JUX0QpOwo+Pj4+ICAgICAgIH0gZWxzZSBpZiAoSEFTX1BDSF9T UExJVChkZXYpKSB7Cj4+Pj4gICAgICAgICAgIGludCBmb3VuZDsKPj4+PiAtICAgICAgICBkcGRf aXNfZWRwID0gaW50ZWxfZHBfaXNfZWRwKGRldiwgUE9SVF9EKTsKPj4+Pgo+Pj4+ICAgICAgICAg ICBpZiAoaGFzX2VkcF9hKGRldikpCj4+Pj4gICAgICAgICAgICAgICBpbnRlbF9kcF9pbml0KGRl diwgRFBfQSwgUE9SVF9BKTsKPj4+Pgo+Pj4+ICsgICAgICAgIGZvdW5kID0gMDsKPj4+PiArICAg ICAgICAvKiBQQ0ggU0RWT0IgbXVsdGlwbGV4IHdpdGggSERNSUIgKi8KPj4+PiAgICAgICAgICAg aWYgKEk5MTVfUkVBRChQQ0hfSERNSUIpICYgU0RWT19ERVRFQ1RFRCkgewo+Pj4+IC0gICAgICAg ICAgICAvKiBQQ0ggU0RWT0IgbXVsdGlwbGV4IHdpdGggSERNSUIgKi8KPj4+PiAgICAgICAgICAg ICAgIGZvdW5kID0gaW50ZWxfc2R2b19pbml0KGRldiwgUENIX1NEVk9CLCB0cnVlKTsKPj4+PiAg ICAgICAgICAgICAgIGlmICghZm91bmQpCj4+Pj4gICAgICAgICAgICAgICAgICAgaW50ZWxfaGRt aV9pbml0KGRldiwgUENIX0hETUlCLCBQT1JUX0IpOwo+Pj4+IC0gICAgICAgICAgICBpZiAoIWZv dW5kICYmIChJOTE1X1JFQUQoUENIX0RQX0IpICYgRFBfREVURUNURUQpKQo+Pj4+IC0gICAgICAg ICAgICAgICAgaW50ZWxfZHBfaW5pdChkZXYsIFBDSF9EUF9CLCBQT1JUX0IpOwo+Pj4+ICAgICAg ICAgICB9Cj4+Pj4gKyAgICAgICAgaWYgKCFmb3VuZCAmJiBJOTE1X1JFQUQoUENIX0RQX0IpICYg RFBfREVURUNURUQpCj4+Pj4gKyAgICAgICAgICAgIGludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBf QiwgUE9SVF9CKTsKPj4+Pgo+Pj4+IC0gICAgICAgIGlmIChJOTE1X1JFQUQoUENIX0hETUlDKSAm IFNEVk9fREVURUNURUQpCj4+Pj4gLSAgICAgICAgICAgIGludGVsX2hkbWlfaW5pdChkZXYsIFBD SF9IRE1JQywgUE9SVF9DKTsKPj4+PiAtCj4+Pj4gLSAgICAgICAgaWYgKCFkcGRfaXNfZWRwICYm IEk5MTVfUkVBRChQQ0hfSERNSUQpICYgU0RWT19ERVRFQ1RFRCkKPj4+PiAtICAgICAgICAgICAg aW50ZWxfaGRtaV9pbml0KGRldiwgUENIX0hETUlELCBQT1JUX0QpOwo+Pj4+IC0KPj4+PiArICAg ICAgICBmb3VuZCA9IDA7Cj4+Pj4gICAgICAgICAgIGlmIChJOTE1X1JFQUQoUENIX0RQX0MpICYg RFBfREVURUNURUQpCj4+Pj4gLSAgICAgICAgICAgIGludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBf QywgUE9SVF9DKTsKPj4+PiArICAgICAgICAgICAgZm91bmQgPSBpbnRlbF9kcF9pbml0KGRldiwg UENIX0RQX0MsIFBPUlRfQyk7Cj4+Pj4gKyAgICAgICAgaWYgKGZvdW5kICE9IERSTV9NT0RFX0NP Tk5FQ1RPUl9lRFAgJiYKPj4+PiArICAgICAgICAgICAgSTkxNV9SRUFEKFBDSF9IRE1JQykgJiBT RFZPX0RFVEVDVEVEKQo+Pj4+ICsgICAgICAgICAgICBpbnRlbF9oZG1pX2luaXQoZGV2LCBQQ0hf SERNSUMsIFBPUlRfQyk7Cj4+Pj4KPj4+PiArICAgICAgICBmb3VuZCA9IDA7Cj4+Pj4gICAgICAg ICAgIGlmIChJOTE1X1JFQUQoUENIX0RQX0QpICYgRFBfREVURUNURUQpCj4+Pj4gLSAgICAgICAg ICAgIGludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBfRCwgUE9SVF9EKTsKPj4+PiArICAgICAgICAg ICAgZm91bmQgPSBpbnRlbF9kcF9pbml0KGRldiwgUENIX0RQX0QsIFBPUlRfRCk7Cj4+Pj4gKyAg ICAgICAgaWYgKGZvdW5kICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFAgJiYKPj4+PiArICAgICAg ICAgICAgSTkxNV9SRUFEKFBDSF9IRE1JRCkgJiBTRFZPX0RFVEVDVEVEKQo+Pj4+ICsgICAgICAg ICAgICBpbnRlbF9oZG1pX2luaXQoZGV2LCBQQ0hfSERNSUQsIFBPUlRfRCk7Cj4+Pj4gICAgICAg fSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPj4+PiAgICAgICAgICAgLyoKPj4+PiAg ICAgICAgICAgICogVGhlIERQX0RFVEVDVEVEIGJpdCBpcyB0aGUgbGF0Y2hlZCBzdGF0ZSBvZiB0 aGUgRERDIAo+Pj4+IGRpZmYgLS1naXQKPj4+PiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+Pj4gaW5kZXggMWU2NGE4 YzFlN2NiLi44YWRmNTAwZjM5ODkgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK Pj4+PiBAQCAtMTAzMSwxNCArMTAzMSwxMyBAQCBpbnRlbF9kcF9hdXhfdHJhbnNmZXIoc3RydWN0 IGRybV9kcF9hdXggKmF1eCwKPj4+IHN0cnVjdCBkcm1fZHBfYXV4X21zZyAqbXNnKQo+Pj4+ICAg ICAgIHJldHVybiByZXQ7Cj4+Pj4gICB9Cj4+Pj4KPj4+PiAtc3RhdGljIHZvaWQKPj4+PiArc3Rh dGljIGludAo+Pj4+ICAgaW50ZWxfZHBfYXV4X2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgc3RydWN0IGludGVsX2Nvbm5lY3Rvcgo+Pj4+ICpjb25uZWN0b3IpICB7Cj4+Pj4gICAgICAg c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4+Pj4g ICAgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSAKPj4+PiBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4+Pj4gICAgICAgZW51bSBwb3J0IHBvcnQgPSBpbnRl bF9kaWdfcG9ydC0+cG9ydDsKPj4+PiAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKPj4+ PiAtICAgIGludCByZXQ7Cj4+Pj4KPj4+PiAgICAgICBzd2l0Y2ggKHBvcnQpIHsKPj4+PiAgICAg ICBjYXNlIFBPUlRfQToKPj4+PiBAQCAtMTA4MCwyMCArMTA3OSw3IEBAIGludGVsX2RwX2F1eF9p bml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4+PiBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCj4+Pj4gICAgICAgRFJNX0RFQlVHX0tNUygicmVnaXN0ZXJpbmcgJXMgYnVz IGZvciAlc1xuIiwgbmFtZSwKPj4+PiAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5iYXNlLmtk ZXYtPmtvYmoubmFtZSk7Cj4+Pj4KPj4+PiAtICAgIHJldCA9IGRybV9kcF9hdXhfcmVnaXN0ZXIo JmludGVsX2RwLT5hdXgpOwo+Pj4+IC0gICAgaWYgKHJldCA8IDApIHsKPj4+PiAtICAgICAgICBE Uk1fRVJST1IoImRybV9kcF9hdXhfcmVnaXN0ZXIoKSBmb3IgJXMgZmFpbGVkICglZClcbiIsCj4+ Pj4gLSAgICAgICAgICAgICAgbmFtZSwgcmV0KTsKPj4+PiAtICAgICAgICByZXR1cm47Cj4+Pj4g LSAgICB9Cj4+Pj4gLQo+Pj4+IC0gICAgcmV0ID0gc3lzZnNfY3JlYXRlX2xpbmsoJmNvbm5lY3Rv ci0+YmFzZS5rZGV2LT5rb2JqLAo+Pj4+IC0gICAgICAgICAgICAgICAgJmludGVsX2RwLT5hdXgu ZGRjLmRldi5rb2JqLAo+Pj4+IC0gICAgICAgICAgICAgICAgaW50ZWxfZHAtPmF1eC5kZGMuZGV2 LmtvYmoubmFtZSk7Cj4+Pj4gLSAgICBpZiAocmV0IDwgMCkgewo+Pj4+IC0gICAgICAgIERSTV9F UlJPUigic3lzZnNfY3JlYXRlX2xpbmsoKSBmb3IgJXMgZmFpbGVkICglZClcbiIsIAo+Pj4+IG5h bWUsIHJldCk7Cj4+Pj4gLSAgICAgICAgZHJtX2RwX2F1eF91bnJlZ2lzdGVyKCZpbnRlbF9kcC0+ YXV4KTsKPj4+PiAtICAgIH0KPj4+PiArICAgIHJldHVybiBkcm1fZHBfYXV4X3JlZ2lzdGVyKCZp bnRlbF9kcC0+YXV4KTsKPj4+PiAgIH0KPj4+Pgo+Pj4+ICAgc3RhdGljIHZvaWQKPj4+PiBAQCAt NTAxOSw2ICs1MDA1LDEwIEBAIGJvb2wgaW50ZWxfZHBfaXNfZWRwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4+PiBlbnVtIHBvcnQgcG9ydCkKPj4+PiAgICAgICAgICAgW1BPUlRfRF0gPSBQT1JU X0lEUEQsCj4+Pj4gICAgICAgfTsKPj4+Pgo+Pj4+ICsgICAgLyogZURQIG9ubHkgb24gcG9ydCBC IGFuZC9vciBDIG9uIHZsdi9jaHYgKi8KPj4+PiArICAgIGlmIChJU19WQUxMRVlWSUVXKGRldl9w cml2KSAmJiAhKHBvcnQgPT0gUE9SVF9CIHx8IHBvcnQgPT0gCj4+Pj4gUE9SVF9DKSkKPj4+PiAr ICAgICAgICByZXR1cm4gZmFsc2U7Cj4+Pj4gKwo+Pj4+ICAgICAgIGlmIChwb3J0ID09IFBPUlRf QSkKPj4+PiAgICAgICAgICAgcmV0dXJuIHRydWU7Cj4+Pj4KPj4+PiBAQCAtNTY3MCw5ICs1NjYw LDYgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdAo+Pj4gaW50 ZWxfZHAgKmludGVsX2RwLAo+Pj4+ICAgICAgIHN0cnVjdCBlZGlkICplZGlkOwo+Pj4+ICAgICAg IGVudW0gcGlwZSBwaXBlID0gSU5WQUxJRF9QSVBFOwo+Pj4+Cj4+Pj4gLSAgICBpZiAoIWlzX2Vk cChpbnRlbF9kcCkpCj4+Pj4gLSAgICAgICAgcmV0dXJuIHRydWU7Cj4+Pj4gLQo+Pj4+ICAgICAg IHBwc19sb2NrKGludGVsX2RwKTsKPj4+PiAgICAgICBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0 aXplKGludGVsX2RwKTsKPj4+PiAgICAgICBwcHNfdW5sb2NrKGludGVsX2RwKTsKPj4+PiBAQCAt NTc2Miw3ICs1NzQ5LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0 cnVjdAo+Pj4gaW50ZWxfZHAgKmludGVsX2RwLAo+Pj4+ICAgICAgIHJldHVybiB0cnVlOwo+Pj4+ ICAgfQo+Pj4+Cj4+Pj4gLWJvb2wKPj4+PiAraW50Cj4+Pj4gICBpbnRlbF9kcF9pbml0X2Nvbm5l Y3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4+PiAgICAg ICAgICAgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikgIHsgQEAg LTU3NzIsNgo+Pj4gKzU3NTksNyBAQAo+Pj4+IGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+Pj4+ICAgICAgIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKPj4+PiAgICAgICBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4+ICAg ICAgIGVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4+Pj4gKyAgICBpbnQg cmV0Owo+Pj4+ICAgICAgIGludCB0eXBlOwo+Pj4+Cj4+Pj4gICAgICAgaW50ZWxfZHAtPnBwc19w aXBlID0gSU5WQUxJRF9QSVBFOwo+Pj4+IEBAIC01ODAyLDM0ICs1NzkwLDE0IEBAIGludGVsX2Rw X2luaXRfY29ubmVjdG9yKHN0cnVjdAo+Pj4gaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCwKPj4+PiAgICAgICBlbHNlCj4+Pj4gICAgICAgICAgIHR5cGUgPSBEUk1fTU9ERV9DT05O RUNUT1JfRGlzcGxheVBvcnQ7Cj4+Pj4KPj4+PiAtICAgIC8qCj4+Pj4gLSAgICAgKiBGb3IgZURQ IHdlIGFsd2F5cyBzZXQgdGhlIGVuY29kZXIgdHlwZSB0byBJTlRFTF9PVVRQVVRfRURQLCAKPj4+ PiBidXQKPj4+PiAtICAgICAqIGZvciBEUCB0aGUgZW5jb2RlciB0eXBlIGNhbiBiZSBzZXQgYnkg dGhlIGNhbGxlciB0bwo+Pj4+IC0gICAgICogSU5URUxfT1VUUFVUX1VOS05PV04gZm9yIERESSwg c28gZG9uJ3QgcmV3cml0ZSBpdC4KPj4+PiAtICAgICAqLwo+Pj4+IC0gICAgaWYgKHR5cGUgPT0g RFJNX01PREVfQ09OTkVDVE9SX2VEUCkKPj4+PiAtICAgICAgICBpbnRlbF9lbmNvZGVyLT50eXBl ID0gSU5URUxfT1VUUFVUX0VEUDsKPj4+PiAtCj4+Pj4gLSAgICAvKiBlRFAgb25seSBvbiBwb3J0 IEIgYW5kL29yIEMgb24gdmx2L2NodiAqLwo+Pj4+IC0gICAgaWYgKFdBUk5fT04oSVNfVkFMTEVZ VklFVyhkZXYpICYmIGlzX2VkcChpbnRlbF9kcCkgJiYKPj4+PiAtICAgICAgICAgICAgcG9ydCAh PSBQT1JUX0IgJiYgcG9ydCAhPSBQT1JUX0MpKQo+Pj4+IC0gICAgICAgIHJldHVybiBmYWxzZTsK Pj4+PiAtCj4+Pj4gICAgICAgRFJNX0RFQlVHX0tNUygiQWRkaW5nICVzIGNvbm5lY3RvciBvbiBw b3J0ICVjXG4iLAo+Pj4+ICAgICAgICAgICAgICAgdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1Jf ZURQID8gImVEUCIgOiAiRFAiLAo+Pj4+ICAgICAgICAgICAgICAgcG9ydF9uYW1lKHBvcnQpKTsK Pj4+Pgo+Pj4+IC0gICAgZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgY29ubmVjdG9yLCAmaW50ZWxf ZHBfY29ubmVjdG9yX2Z1bmNzLCAKPj4+PiB0eXBlKTsKPj4+PiAtICAgIGRybV9jb25uZWN0b3Jf aGVscGVyX2FkZChjb25uZWN0b3IsCj4+PiAmaW50ZWxfZHBfY29ubmVjdG9yX2hlbHBlcl9mdW5j cyk7Cj4+Pj4gLQo+Pj4+ICAgICAgIGNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSB0cnVl Owo+Pj4+ICAgICAgIGNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gMDsKPj4+Pgo+Pj4+ IC0gICAgSU5JVF9ERUxBWUVEX1dPUksoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yaywKPj4+PiAt ICAgICAgICAgICAgICBlZHBfcGFuZWxfdmRkX3dvcmspOwo+Pj4+IC0KPj4+PiAtICAgIGludGVs X2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIp Owo+Pj4+IC0gICAgZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+Pj4+ICsgICAg SU5JVF9ERUxBWUVEX1dPUksoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yaywKPj4+IGVkcF9wYW5l bF92ZGRfd29yayk7Cj4+Pj4gICAgICAgaWYgKEhBU19EREkoZGV2KSkKPj4+PiAgICAgICAgICAg aW50ZWxfY29ubmVjdG9yLT5nZXRfaHdfc3RhdGUgPQo+Pj4gaW50ZWxfZGRpX2Nvbm5lY3Rvcl9n ZXRfaHdfc3RhdGU7Cj4+Pj4gQEAgLTU4NTUsNyArNTgyMyw3IEBAIGludGVsX2RwX2luaXRfY29u bmVjdG9yKHN0cnVjdCAKPj4+PiBpbnRlbF9kaWdpdGFsX3BvcnQKPj4+ICppbnRlbF9kaWdfcG9y dCwKPj4+PiAgICAgICAgICAgQlVHKCk7Cj4+Pj4gICAgICAgfQo+Pj4+Cj4+Pj4gLSAgICBpZiAo aXNfZWRwKGludGVsX2RwKSkgewo+Pj4+ICsgICAgaWYgKHR5cGUgPT0gRFJNX01PREVfQ09OTkVD VE9SX2VEUCkgewo+Pj4+ICAgICAgICAgICBwcHNfbG9jayhpbnRlbF9kcCk7Cj4+Pj4gICAgICAg ICAgIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfdGltZXN0YW1wcyhpbnRlbF9kcCk7Cj4+Pj4g ICAgICAgICAgIGlmIChJU19WQUxMRVlWSUVXKGRldikpCj4+Pj4gQEAgLTU4NjUsNyArNTgzMyw0 OSBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QKPj4+IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsCj4+Pj4gICAgICAgICAgIHBwc191bmxvY2soaW50ZWxfZHApOwo+ Pj4+ICAgICAgIH0KPj4+Pgo+Pj4+IC0gICAgaW50ZWxfZHBfYXV4X2luaXQoaW50ZWxfZHAsIGlu dGVsX2Nvbm5lY3Rvcik7Cj4+Pj4gKyAgICByZXQgPSBpbnRlbF9kcF9hdXhfaW5pdChpbnRlbF9k cCwgaW50ZWxfY29ubmVjdG9yKTsKPj4+PiArICAgIGlmIChyZXQgPCAwKSB7Cj4+Pj4gKyAgICAg ICAgRFJNX0VSUk9SKCJyZWdpc3RlcmluZyBEUC1BVVggY2hhbm5lbCBmb3IgJXMgZmFpbGVkICgl ZClcbiIsCj4+Pj4gKyAgICAgICAgICAgICAgaW50ZWxfZHAtPmF1eC5uYW1lLCByZXQpOwo+Pj4+ ICsgICAgICAgIHJldHVybiAwOwo+Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiArICAgIGlmICh0eXBl ID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFAgJiYKPj4+PiArICAgICAgICAhaW50ZWxfZWRwX2lu aXRfY29ubmVjdG9yKGludGVsX2RwLCBpbnRlbF9jb25uZWN0b3IpKSB7Cj4+Pj4gKyAgICAgICAg ZHJtX2RwX2F1eF91bnJlZ2lzdGVyKCZpbnRlbF9kcC0+YXV4KTsKPj4+PiArIGNhbmNlbF9kZWxh eWVkX3dvcmtfc3luYygmaW50ZWxfZHAtPnBhbmVsX3ZkZF93b3JrKTsKPj4+PiArICAgICAgICAv Kgo+Pj4+ICsgICAgICAgICAqIHZkZCBtaWdodCBzdGlsbCBiZSBlbmFibGVkIGRvIHRvIHRoZSBk ZWxheWVkIHZkZCBvZmYuCj4+Pj4gKyAgICAgICAgICogTWFrZSBzdXJlIHZkZCBpcyBhY3R1YWxs eSB0dXJuZWQgb2ZmIGhlcmUuCj4+Pj4gKyAgICAgICAgICovCj4+Pj4gKyAgICAgICAgcHBzX2xv Y2soaW50ZWxfZHApOwo+Pj4+ICsgICAgICAgIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoaW50ZWxf ZHApOwo+Pj4+ICsgICAgICAgIHBwc191bmxvY2soaW50ZWxfZHApOwo+Pj4+ICsKPj4+PiArICAg ICAgICAvKiBEb3duZ3JhZGUgdG8gYSBub3JtYWwgRFAgbGluayAqLwo+Pj4+ICsgICAgICAgIHR5 cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ7Cj4+Pj4gKyAgICB9Cj4+Pj4gKwo+ Pj4+ICsgICAgLyoKPj4+PiArICAgICAqIEZvciBlRFAgd2UgYWx3YXlzIHNldCB0aGUgZW5jb2Rl ciB0eXBlIHRvIElOVEVMX09VVFBVVF9FRFAsIAo+Pj4+IGJ1dAo+Pj4+ICsgICAgICogZm9yIERQ IHRoZSBlbmNvZGVyIHR5cGUgY2FuIGJlIHNldCBieSB0aGUgY2FsbGVyIHRvCj4+Pj4gKyAgICAg KiBJTlRFTF9PVVRQVVRfVU5LTk9XTiBmb3IgRERJLCBzbyBkb24ndCByZXdyaXRlIGl0Lgo+Pj4+ ICsgICAgICovCj4+Pj4gKyAgICBpZiAodHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ Pj4+ICsgICAgICAgIGludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRURQOwo+Pj4+ ICsKPj4+PiArICAgIGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgJmludGVsX2Rw X2Nvbm5lY3Rvcl9mdW5jcywgCj4+Pj4gdHlwZSk7Cj4+Pj4gKyAgICBkcm1fY29ubmVjdG9yX2hl bHBlcl9hZGQoY29ubmVjdG9yLAo+Pj4+ICsmaW50ZWxfZHBfY29ubmVjdG9yX2hlbHBlcl9mdW5j cyk7Cj4+Pj4gKwo+Pj4+ICsgICAgaW50ZWxfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGludGVs X2Nvbm5lY3RvciwgaW50ZWxfZW5jb2Rlcik7Cj4+Pj4gKyAgICBkcm1fY29ubmVjdG9yX3JlZ2lz dGVyKGNvbm5lY3Rvcik7Cj4+Pj4gKwo+Pj4+ICsgICAgcmV0ID0gc3lzZnNfY3JlYXRlX2xpbmso JmNvbm5lY3Rvci0+a2Rldi0+a29iaiwKPj4+PiArICAgICAgICAgICAgICAgICZpbnRlbF9kcC0+ YXV4LmRkYy5kZXYua29iaiwKPj4+PiArICAgICAgICAgICAgICAgIGludGVsX2RwLT5hdXguZGRj LmRldi5rb2JqLm5hbWUpOwo+Pj4+ICsgICAgaWYgKHJldCA8IDApCj4+Pj4gKyAgICAgICAgRFJN X0VSUk9SKCJzeXNmc19jcmVhdGVfbGluaygpIGZvciAlcyBmYWlsZWQgKCVkKVxuIiwKPj4+PiAr ICAgICAgICAgICAgICBpbnRlbF9kcC0+YXV4Lm5hbWUsIHJldCk7Cj4+Pj4KPj4+PiAgICAgICAv KiBpbml0IE1TVCBvbiBwb3J0cyB0aGF0IGNhbiBzdXBwb3J0IGl0ICovCj4+Pj4gICAgICAgaWYg KEhBU19EUF9NU1QoZGV2KSAmJgo+Pj4+IEBAIC01ODczLDIzICs1ODgzLDYgQEAgaW50ZWxfZHBf aW5pdF9jb25uZWN0b3Ioc3RydWN0Cj4+PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAo+Pj4+IGludGVsX2RwX21zdF9lbmNvZGVyX2luaXQoaW50ZWxfZGlnX3BvcnQsCj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQpOwo+ Pj4+Cj4+Pj4gLSAgICBpZiAoIWludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihpbnRlbF9kcCwgaW50 ZWxfY29ubmVjdG9yKSkgewo+Pj4+IC0gICAgICAgIGRybV9kcF9hdXhfdW5yZWdpc3RlcigmaW50 ZWxfZHAtPmF1eCk7Cj4+Pj4gLSAgICAgICAgaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKPj4+PiAt IGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmaW50ZWxfZHAtPnBhbmVsX3ZkZF93b3JrKTsKPj4+ PiAtICAgICAgICAgICAgLyoKPj4+PiAtICAgICAgICAgICAgICogdmRkIG1pZ2h0IHN0aWxsIGJl IGVuYWJsZWQgZG8gdG8gdGhlIGRlbGF5ZWQgdmRkIG9mZi4KPj4+PiAtICAgICAgICAgICAgICog TWFrZSBzdXJlIHZkZCBpcyBhY3R1YWxseSB0dXJuZWQgb2ZmIGhlcmUuCj4+Pj4gLSAgICAgICAg ICAgICAqLwo+Pj4+IC0gICAgICAgICAgICBwcHNfbG9jayhpbnRlbF9kcCk7Cj4+Pj4gLSAgICAg ICAgICAgIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoaW50ZWxfZHApOwo+Pj4+IC0gICAgICAgICAg ICBwcHNfdW5sb2NrKGludGVsX2RwKTsKPj4+PiAtICAgICAgICB9Cj4+Pj4gLSAgICAgICAgZHJt X2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4+Pj4gLSAgICAgICAgZHJtX2Nvbm5l Y3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4+Pj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4+ IC0gICAgfQo+Pj4+IC0KPj4+PiAgICAgICBpbnRlbF9kcF9hZGRfcHJvcGVydGllcyhpbnRlbF9k cCwgY29ubmVjdG9yKTsKPj4+Pgo+Pj4+ICAgICAgIC8qIEZvciBHNFggZGVza3RvcCBjaGlwLCBQ RUdfQkFORF9HQVBfREFUQSAzOjAgbXVzdCBmaXJzdCBiZSAKPj4+PiB3cml0dGVuCj4+Pj4gQEAg LTU5MDMsMTAgKzU4OTYsMTAgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0Cj4+Pj4g aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4+Pgo+Pj4+ICAgICAgIGk5MTVf ZGVidWdmc19jb25uZWN0b3JfYWRkKGNvbm5lY3Rvcik7Cj4+Pj4KPj4+PiAtICAgIHJldHVybiB0 cnVlOwo+Pj4+ICsgICAgcmV0dXJuIHR5cGU7Cj4+Pj4gICB9Cj4+Pj4KPj4+PiAtdm9pZAo+Pj4+ ICtpbnQKPj4+PiAgIGludGVsX2RwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IG91 dHB1dF9yZWcsIGVudW0gcG9ydCAKPj4+PiBwb3J0KQo+Pj4+IHsKPj4+PiAgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOyBAQCAKPj4+PiAt NTkxNCwxNQo+Pj4+ICs1OTA3LDE2IEBAIGludGVsX2RwX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IG91dHB1dF9yZWcsIGVudW0KPj4+IHBvcnQgcG9ydCkKPj4+PiAgICAgICBzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKPj4+PiAgICAgICBzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXI7Cj4+Pj4gICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxf Y29ubmVjdG9yOwo+Pj4+ICsgICAgaW50IHJldDsKPj4+Pgo+Pj4+ICAgICAgIGludGVsX2RpZ19w b3J0ID0ga3phbGxvYyhzaXplb2YoKmludGVsX2RpZ19wb3J0KSwgR0ZQX0tFUk5FTCk7Cj4+Pj4g ICAgICAgaWYgKCFpbnRlbF9kaWdfcG9ydCkKPj4+PiAtICAgICAgICByZXR1cm47Cj4+Pj4gKyAg ICAgICAgcmV0dXJuIDA7Cj4+Pj4KPj4+PiAgICAgICBpbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9j b25uZWN0b3JfYWxsb2MoKTsKPj4+PiAgICAgICBpZiAoIWludGVsX2Nvbm5lY3Rvcikgewo+Pj4+ ICAgICAgICAgICBrZnJlZShpbnRlbF9kaWdfcG9ydCk7Cj4+Pj4gLSAgICAgICAgcmV0dXJuOwo+ Pj4+ICsgICAgICAgIHJldHVybiAwOwo+Pj4+ICAgICAgIH0KPj4+Pgo+Pj4+ICAgICAgIGludGVs X2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7IEBAIC01OTcwLDExICs1OTY0LDE0IEBA Cj4+Pj4gaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3Jl ZywgZW51bSBwb3J0IHBvcnQpCj4+Pj4gICAgICAgaW50ZWxfZGlnX3BvcnQtPmhwZF9wdWxzZSA9 IGludGVsX2RwX2hwZF9wdWxzZTsKPj4+PiAgICAgICBkZXZfcHJpdi0+aG90cGx1Zy5pcnFfcG9y dFtwb3J0XSA9IGludGVsX2RpZ19wb3J0Owo+Pj4+Cj4+Pj4gLSAgICBpZiAoIWludGVsX2RwX2lu aXRfY29ubmVjdG9yKGludGVsX2RpZ19wb3J0LCBpbnRlbF9jb25uZWN0b3IpKSB7Cj4+Pj4gKyAg ICByZXQgPSBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihpbnRlbF9kaWdfcG9ydCwgaW50ZWxfY29u bmVjdG9yKTsKPj4+PiArICAgIGlmIChyZXQgPT0gMCkgewo+Pj4+ICAgICAgICAgICBkcm1fZW5j b2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+Pj4+ICAgICAgICAgICBrZnJlZShpbnRlbF9kaWdfcG9y dCk7Cj4+Pj4gICAgICAgICAgIGtmcmVlKGludGVsX2Nvbm5lY3Rvcik7Cj4+Pj4gICAgICAgfQo+ Pj4+ICsKPj4+PiArICAgIHJldHVybiByZXQ7Cj4+Pj4gICB9Cj4+Pj4KPj4+PiAgIHZvaWQgaW50 ZWxfZHBfbXN0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikgZGlmZiAtLWdpdAo+Pj4+ IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+Pj4+IGluZGV4IDE4ZmU2ZDhiN2Q5My4uYWRlMWNlODUzNTgzIDEwMDY0 NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+PiBAQCAtMTE3OSw5ICsxMTc5LDkg QEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZQo+Pj4+ICpkZXYp OyAgdm9pZCBhc3NlcnRfY3NyX2xvYWRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+Pj4+Cj4+Pj4gICAvKiBpbnRlbF9kcC5jICovCj4+Pj4gLXZvaWQgaW50ZWxfZHBfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3JlZywgZW51bSBwb3J0Cj4+Pj4g cG9ydCk7IC1ib29sIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQKPj4+ICppbnRlbF9kaWdfcG9ydCwKPj4+PiAtICAgICAgICAgICAgICAgICBzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwo+Pj4+ICtpbnQgaW50ZWxfZHBfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3JlZywgZW51bSBwb3J0Cj4+Pj4g K3BvcnQpOyBpbnQgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydAo+Pj4gKmludGVsX2RpZ19wb3J0LAo+Pj4+ICsgICAgICAgICAgICAgICAgc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsKPj4+PiAgIHZvaWQgaW50ZWxfZHBfc3Rh cnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsgIHZvaWQKPj4+PiBpbnRl bF9kcF9jb21wbGV0ZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOyB2b2lk Cj4+Pj4gaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Owo+Pj4+IC0tIAo+Pj4+IDIuNS4wCj4+Pj4KPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+Pj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4+PiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Pj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK Pj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IGh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dAo+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPgoKLS0gCnJlZ2FyZHMsClNp dmFrdW1hcgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK