From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Wu Subject: Re: [PATCH 1/2] drm/amdgpu: fix power state when port pm is unavailable Date: Sat, 26 Nov 2016 12:38:53 +0100 Message-ID: <20161126113853.GA25175@al> References: <20161123012225.11586-1-peter@lekensteyn.nl> <20161123171255.GA18537@al> <20161126101942.GA20829@al> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Mike Lothian Cc: "Deucher, Alexander" , Alex Deucher , amd-gfx list , Nayan Deshmukh SGkgTWlrZSwKClRvIGdyYWIgY29uc29sZSBvdXRwdXQsIHlvdSBjb3VsZCBhbHNvIHRyeSB0byBi bGFja2xpc3QgYW1kZ3B1IGF0CnN0YXJ0dXAgYW5kIGxvYWQgaXQgbGF0ZXIuCgpDYW4geW91IHBy b3ZpZGUgeW91ciBhY3BpZHVtcCAoYW5kIGxzcGNpIC1ubiwgZXNwZWNpYWxseSBpZiB5b3UgZG8g bm90CmhhdmUgYSBkbWVzZykuCgpUaGlzIGlzIHRoZSBjYWxsIGNoYWluOgoKKyBhbWRncHVfYXRw eF9kZXRlY3QKICArIGFtZGdwdV9hdHB4X3BjaV9wcm9iZV9oYW5kbGUKICAgICsgcmV0dXJuIGlm IEFUUFggQUNQSSBoYW5kbGUgY2Fubm90IGJlIGZvdW5kCiAgICArIHNldCBhbWRncHVfYXRweF9w cml2LmJyaWRnZV9wbV91c2FibGUKICArIGFtZGdwdV9hdHB4X2luaXQKICAgICsgYW1kZ3B1X2F0 cHhfdmFsaWRhdGUKICAgICAgKyB1c2UgYW1kZ3B1X2F0cHhfcHJpdi5icmlkZ2VfcG1fdXNhYmxl CgpJIHdvbmRlciB3aGV0aGVyIG5ld2VyIGRldmljZXMgcmVtb3ZlIEFUUFggY29tcGxldGVseS4g SWYgdGhhdCBpcyB0aGUKY2FzZSAocGxlYXNlIHByb3ZpZGUgYWNwaWR1bXAhKSwgY2FuIHlvdSB0 cnkgdGhpcyBoYWNrOgoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9hdHB4X2hhbmRsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h dHB4X2hhbmRsZXIuYwppbmRleCA5NTFhZGRmLi41YzIzMzgyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYXRweF9oYW5kbGVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0cHhfaGFuZGxlci5jCkBAIC00ODcsNiArNDg3LDcg QEAgc3RhdGljIGJvb2wgYW1kZ3B1X2F0cHhfcGNpX3Byb2JlX2hhbmRsZShzdHJ1Y3QgcGNpX2Rl diAqcGRldikKIAlzdGF0dXMgPSBhY3BpX2dldF9oYW5kbGUoZGhhbmRsZSwgIkFUUFgiLCAmYXRw eF9oYW5kbGUpOwogCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgewogCQlhbWRncHVfYXRweF9w cml2Lm90aGVyX2hhbmRsZSA9IGRoYW5kbGU7CisJCWFtZGdwdV9hdHB4X3ByaXYuYnJpZGdlX3Bt X3VzYWJsZSA9IHRydWU7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAJYW1kZ3B1X2F0cHhfcHJpdi5k aGFuZGxlID0gZGhhbmRsZTsKClRoaXMgaXMgbm90IGludGVuZGVkIGZvciBtZXJnaW5nLCBidXQg anVzdCB0ZXN0aW5nIGEgaHlwb3RoZXNpcy4KCktpbmQgcmVnYXJkcywKUGV0ZXIKCk9uIFNhdCwg Tm92IDI2LCAyMDE2IGF0IDExOjIwOjI4QU0gKzAwMDAsIE1pa2UgTG90aGlhbiB3cm90ZToKPiBI ZSdzIHNvbWUgc2NyZWVuIHNob3RzIG9mIHRoZSBib290aW5nIHNjcmVlbnMsIGFwb2xvZ2llcyB0 aGV5J3JlIG5vdCB0aGF0Cj4gY2xlYXIKPiAKPiBodHRwczovL2ltZ3VyLmNvbS9hL1Y3bVJBCj4g Cj4gT24gU2F0LCAyNiBOb3YgMjAxNiBhdCAxMTowMCBNaWtlIExvdGhpYW4gPG1pa2VAZmlyZWJ1 cm4uY28udWs+IHdyb3RlOgo+IAo+ID4gSGkKPiA+Cj4gPiBUaGUgcHJldmlvdXMgd29ya2luZyBr ZXJuZWwsIHdhcyB0aGUgcGF0Y2ggYmVmb3JlIHRoaXMgLSByZXZlcnRpbmcgZml4ZXMgaXQKPiA+ Cj4gPiBNeSBiaW9zIGRhdGUgaXMgcXVpdGUgbmV3IDA4LzA1LzIwMTYKPiA+Cj4gPiBNb3N0IG9m IHRoZSBtZXNzYWdlcyBmbHkgc3RyYWlnaHQgb2ZmIHRoZSBzY3JlZW4sIHRoZSBqb3VybmFsIGlz bid0IGtlcHQKPiA+IGFuZCB0aGUgd2lmaSBkcml2ZXIgYWxzbyBjb21wbGFpbnMsIHdpbGwgc2Vl IGlmIEkgY2FuIGdldCBhIHNsb3cgbW90aW9uCj4gPiBjYXB0dXJlIG9mIHRoZSBlcnJvcnMgYW5k IHNjcmVlbiBzaG90IHRoZW0KPiA+Cj4gPiBSZWdhcmRzCj4gPgo+ID4gTWlrZQo+ID4KPiA+IE9u IFNhdCwgMjYgTm92IDIwMTYgYXQgMTA6MjAgUGV0ZXIgV3UgPHBldGVyQGxla2Vuc3RleW4ubmw+ IHdyb3RlOgo+ID4KPiA+IEhpIE1pa2UsCj4gPgo+ID4gT24gU2F0LCBOb3YgMjYsIDIwMTYgYXQg MTI6MzY6MjdBTSArMDAwMCwgTWlrZSBMb3RoaWFuIHdyb3RlOgo+ID4gPiBUaGlzIHBhdGNoIGlz IHByZXZlbnRpbmcgbXkgbGFwdG9wIGZyb20gYm9vdGluZywgSSdtIGdldHRpbmcgRDMgZXJyb3IK PiA+ID4gbWVzc2FnZXMgYW5kIGF0b20gYmlvcyBzdHVjayBtZXNzYWdlcwo+ID4KPiA+IENhbiB5 b3UgcG9zdCBhIGRtZXNnIGFuZCBhY3BpZHVtcD8gV2hhdCB3YXMgdGhlIHByZXZpb3VzIHdvcmtp bmcga2VybmVsPwo+ID4gSSBzdXBwb3NlIHlvdXIgQklPUyBkYXRlICgvc3lzL2NsYXNzL2RtaS9p ZC9iaW9zX2RhdGUpIGlzIHByZS0yMDE1Pwo+ID4gRG9lcyBib290aW5nIHdpdGggcnVucG09MCB3 b3JrPwo+ID4KPiA+ID4gSSBtaXN0YWtlbmx5IHNhdyB0aGUgdjIgcGF0Y2ggYW5kIGRpZG4ndCBy ZWFsaXNlIGl0IHdhcyBmb3IgcmFkZW9uIG5vdAo+ID4gPiBhbWRncHUgLSB0aGlzIGJyYW5jaCBh bmQgTGludXMncyB0cmVlIGFyZSBjdXJyZW50bHkgbm90IGJvb3RpbmcgZm9yIG1lCj4gPgo+ID4g V2hhdCBkbyB5b3UgbWVhbiBieSB0aGlzPwo+ID4KPiA+IEtpbmQgcmVnYXJkcywKPiA+IFBldGVy Cj4gPgo+ID4gPiBPbiBXZWQsIDIzIE5vdiAyMDE2IGF0IDE3OjE2IERldWNoZXIsIEFsZXhhbmRl ciA8Cj4gPiBBbGV4YW5kZXIuRGV1Y2hlckBhbWQuY29tPgo+ID4gPiB3cm90ZToKPiA+ID4KPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4gPiBGcm9tOiBQZXRlciBX dSBbbWFpbHRvOnBldGVyQGxla2Vuc3RleW4ubmxdCj4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXks IE5vdmVtYmVyIDIzLCAyMDE2IDEyOjEzIFBNCj4gPiA+ID4gPiBUbzogQWxleCBEZXVjaGVyCj4g PiA+ID4gPiBDYzogYW1kLWdmeCBsaXN0OyBEZXVjaGVyLCBBbGV4YW5kZXI7IE5heWFuIERlc2ht dWtoCj4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl0gZHJtL2FtZGdwdTogZml4IHBv d2VyIHN0YXRlIHdoZW4gcG9ydCBwbSBpcwo+ID4gPiA+ID4gdW5hdmFpbGFibGUKPiA+ID4gPiA+ Cj4gPiA+ID4gPiBPbiBXZWQsIE5vdiAyMywgMjAxNiBhdCAxMjowMTo1NVBNIC0wNTAwLCBBbGV4 IERldWNoZXIgd3JvdGU6Cj4gPiA+ID4gPiA+ICBPbiBUdWUsIE5vdiAyMiwgMjAxNiBhdCA4OjIy IFBNLCBQZXRlciBXdSA8cGV0ZXJAbGVrZW5zdGV5bi5ubD4KPiA+ID4gPiB3cm90ZToKPiA+ID4g PiA+ID4gPiBXaGVuIFBDSWUgcG9ydCBQTSBpcyBub3QgZW5hYmxlZCAoc3lzdGVtIEJJT1MgaXMg cHJlLTIwMTUgb3IgdGhlCj4gPiA+ID4gPiA+ID4gcGNpZV9wb3J0X3BtPW9mZiBwYXJhbWV0ZXIg aXMgc2V0KSwgbGVnYWN5IEFUUFggUE0gc2hvdWxkIHN0aWxsCj4gPiBiZQo+ID4gPiA+ID4gPiA+ IG1hcmtlZCBhcyBzdXBwb3J0ZWQuIE90aGVyd2lzZSB0aGUgR1BVIGNhbiBmYWlsIHRvIHBvd2Vy IG9uIGFmdGVyCj4gPiA+ID4gPiA+ID4gcnVudGltZSBzdXNwZW5kLiBUaGlzIGFmZmVjdGVkIGEg RGVsbCBJbnNwaXJvbiA1NTQ4Lgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSWRlYWxseSB0 aGUgQklPUyBkYXRlIGluIHRoZSBQQ0kgY29yZSBpcyBsb3dlcmVkIHRvIDIwMTMgKHRoZQo+ID4g Zmlyc3QKPiA+ID4gPiB5ZWFyCj4gPiA+ID4gPiA+ID4gd2hlcmUgaHlicmlkIGdyYXBoaWNzIHBs YXRmb3JtcyB1c2luZyBwb3dlciByZXNvdXJjZXMgd2FzCj4gPiA+ID4gaW50cm9kdWNlZCksCj4g PiA+ID4gPiA+ID4gYnV0IHRoYXQgc2VlbXMgbW9yZSByaXNreSBhdCB0aGlzIHBvaW50IGFuZCB3 b3VsZCBub3Qgc29sdmUgdGhlCj4gPiA+ID4gPiA+ID4gcGNpZV9wb3J0X3BtPW9mZiBpc3N1ZS4K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRl c2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05ODUwNQo+ID4gPiA+ID4gPiA+IFJlcG9ydGVkLWFu ZC10ZXN0ZWQtYnk6IE5heWFuIERlc2htdWtoCj4gPiA+ID4gPiA8bmF5YW4yNmRlc2htdWtoQGdt YWlsLmNvbT4KPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBXdSA8cGV0ZXJAbGVr ZW5zdGV5bi5ubD4KPiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+IFRoaXMgcGF0Y2ggaXMgYWxyZWFkeSB0aHJlZSB3ZWVrcyBvbGQu IE9uZSBhbHRlcm5hdGl2ZSBpZGVhIHdhcwo+ID4gPiA+IGxvd2VyaW5nCj4gPiA+ID4gPiBCSU9T Cj4gPiA+ID4gPiA+ID4gZGF0ZSBpbiBQQ0kgY29yZSwgYnV0IGFzIHBjaWVfcG9ydF9wbT1mb3Jj ZSBkaWQgbm90IGhhdmUgdGhlCj4gPiBkZXNpcmVkCj4gPiA+ID4gPiBlZmZlY3QsIEkKPiA+ID4g PiA+ID4gPiBkbyBub3QgdGhpbmsgdGhhdCB0aGlzIHdvdWxkIGhlbHAgdGhvdWdoLgo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiBUaGFua3MgZm9yIGRvaW5nIHRoaXMuCj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBJIGhhdmUgYWxzbyBub3QgY29udGFjdGVkIGxpbnV4LXBj aSBvciBNaWthIGFib3V0IGxvd2VyaW5nIHRoZQo+ID4geWVhcgo+ID4gPiA+IGR1ZSB0bwo+ID4g PiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gbGFjayBvZiBhIGdvb2QgcmVhc29uLiAgTWlnaHQgZG8g aXQgbGF0ZXIgdGhvdWdoIG9uY2UgQUNQSUNBIGJ1Zwo+ID4gPiA+IDEzMzMgaXMKPiA+ID4gPiA+ IHNvcnRlZAo+ID4gPiA+ID4gPiA+IG91dCBzdWNoIHRoYXQgbG93ZXJpbmcgdGhlIHllYXIgYWN0 dWFsbHkgaGFzIGJlbmVmaXRzIGZvciBhCj4gPiBOdmlkaWEKPiA+ID4gPiBsYXB0b3AKPiA+ID4g PiA+IChvciBpZgo+ID4gPiA+ID4gPiA+IHNvbWUgYW1kZ3B1IHByb2JsZW0gY2FuIGJlIHNvbHZl ZCBieSB0aGlzKS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEJvdGggcGF0Y2hlcyBzaG91 bGQgcHJvYmFibHkgYmUgQ2Mgc3RhYmxlICg0LjgrKSwgZml4aW5nCj4gPiA+ID4gMmY1YWY4MmVl YWIyIGFuZAo+ID4gPiA+ID4gPiA+IGI4YzlmZDVhZDRiNCAoInRyYWNrIHdoZXRoZXIgaWYgdGhp cyBpcyBhIGh5YnJpZCBncmFwaGljcwo+ID4gPiA+IHBsYXRmb3JtIikuIFRoZXJlCj4gPiA+ID4g PiBoYXZlCj4gPiA+ID4gPiA+ID4gYmVlbiBzb21lIGlmZGVmIDAncyBhbmQgcmV2ZXJ0cyBpbiBi ZXR3ZWVuLCBzbyBJIHdhcyBub3Qgc3VyZSBpZgo+ID4gPiA+IGFkZGluZwo+ID4gPiA+ID4gdGhl Cj4gPiA+ID4gPiA+ID4gRml4ZXMgdGFnIGlzIGFwcHJvcHJpYXRlLgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBJIGRvbid0IHRoaW5rIHdlIG5lZWQgdG8gY2Mgc3RhYmxlLiAgSW4ga2VybmVsIDQu OCB3ZSBkb24ndAo+ID4gYXR0ZW1wdCB0bwo+ID4gPiA+ID4gPiBkbyBkM2NvbGQgYXQgYWxsLiAg NC44IGFuZCBvbGRlciBrZXJuZWxzIGhhdmU6Cj4gPiA+ID4gPiA+IGM2MzY5NWNjNWU1ZjY4NWU5 MjRlMjVhOGY5NTU1ZjZlODQ2ZjFmYzYgKGRybS9hbWRncHU6IHdvcmsgYXJvdW5kCj4gPiA+ID4g PiBsYWNrCj4gPiA+ID4gPiA+IG9mIHVwc3RyZWFtIEFDUEkgc3VwcG9ydCBmb3IgRDNjb2xkKQo+ ID4gPiA+ID4gPiB3aGljaCB3YXMgcmV2ZXJ0ZWQgZm9yIDQuOS4KPiA+ID4gPiA+Cj4gPiA+ID4g PiBUaGF0IHBhdGNoIHdhcyBhbHJlYWR5IHJldmVydGVkIGluIDQuOCBhcyBmYXIgYXMgSSBjYW4g c2VlOgo+ID4gPiA+ID4KPiA+ID4gPiA+ICQgZ2l0IHRhZyAtLWNvbnRhaW5zIGMzOWI0ODdmMTk1 YjkzMjM1ZWU3NjM4NDQyNzQ2Nzc4NmY3YmYyOWYgfCBncmVwCj4gPiB2NC44Cj4gPiA+ID4gPiB2 NC44Cj4gPiA+ID4gPgo+ID4gPiA+ID4gQ2FuIHlvdSBkb3VibGUtY2hlY2s/IHY0Ljggd2FzIHRo ZSBmaXJzdCBrZXJuZWwgd2l0aCBEM2NvbGQgc3VwcG9ydAo+ID4gaW4KPiA+ID4gPiA+IFBDSSBj b3JlLgo+ID4gPiA+Cj4gPiA+ID4gWW91IGFyZSByaWdodC4gIEkgd2FzIHRoaW5raW5nIGQzY29s ZCB3ZW50IHVwc3RyZWFtIGluIDQuOSwgc28geWVzLCB3ZQo+ID4gPiA+IHNob3VsZCBhcHBseSB0 aGlzIHRvIDQuOC4KPiA+ID4gPgo+ID4gPiA+IEFsZXgKPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4g PiA+ID4gU2VyaWVzIGlzOgo+ID4gPiA+ID4gPiBSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVyIDxh bGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYW5rcyEKPiA+ ID4gPiA+Cj4gPiA+ID4gPiBLaW5kIHJlZ2FyZHMsCj4gPiA+ID4gPiBQZXRlcgo+ID4gPiA+ID4K PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEtpbmQgcmVnYXJkcywKPiA+ ID4gPiA+ID4gPiBQZXRlcgo+ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYXRweF9oYW5kbGVyLmMgfCA5ICsrKysrKysrLQo+ ID4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0cHhfaGFuZGxlci5jCj4gPiA+ID4gPiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hdHB4X2hhbmRsZXIuYwo+ID4gPiA+ID4gPiA+IGlu ZGV4IDEwYjVkZGYuLjk1MWFkZGYgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0cHhfaGFuZGxlci5jCj4gPiA+ID4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0cHhfaGFuZGxlci5jCj4gPiA+ ID4gPiA+ID4gQEAgLTMzLDYgKzMzLDcgQEAgc3RydWN0IGFtZGdwdV9hdHB4IHsKPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ICBzdGF0aWMgc3RydWN0IGFtZGdwdV9hdHB4X3ByaXYgewo+ID4g PiA+ID4gPiA+ICAgICAgICAgYm9vbCBhdHB4X2RldGVjdGVkOwo+ID4gPiA+ID4gPiA+ICsgICAg ICAgYm9vbCBicmlkZ2VfcG1fdXNhYmxlOwo+ID4gPiA+ID4gPiA+ICAgICAgICAgLyogaGFuZGxl IGZvciBkZXZpY2UgLSBhbmQgYXRweCAqLwo+ID4gPiA+ID4gPiA+ICAgICAgICAgYWNwaV9oYW5k bGUgZGhhbmRsZTsKPiA+ID4gPiA+ID4gPiAgICAgICAgIGFjcGlfaGFuZGxlIG90aGVyX2hhbmRs ZTsKPiA+ID4gPiA+ID4gPiBAQCAtMjAwLDcgKzIwMSwxMSBAQCBzdGF0aWMgaW50IGFtZGdwdV9h dHB4X3ZhbGlkYXRlKHN0cnVjdAo+ID4gPiA+ID4gYW1kZ3B1X2F0cHggKmF0cHgpCj4gPiA+ID4g PiA+ID4gICAgICAgICBhdHB4LT5pc19oeWJyaWQgPSBmYWxzZTsKPiA+ID4gPiA+ID4gPiAgICAg ICAgIGlmICh2YWxpZF9iaXRzICYgQVRQWF9NU19IWUJSSURfR0ZYX1NVUFBPUlRFRCkgewo+ID4g PiA+ID4gPiA+ICAgICAgICAgICAgICAgICBwcmludGsoIkFUUFggSHlicmlkIEdyYXBoaWNzXG4i KTsKPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgYXRweC0+ZnVuY3Rpb25zLnBvd2VyX2Nu dGwgPSBmYWxzZTsKPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLyoKPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICogRGlzYWJsZSBsZWdhY3kgUE0gbWV0aG9kcyBvbmx5IHdoZW4g cGNpZSBwb3J0Cj4gPiBQTQo+ID4gPiA+IGlzIHVzYWJsZSwKPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICogb3RoZXJ3aXNlIHRoZSBkZXZpY2UgbWlnaHQgZmFpbCB0byBwb3dlciBvZmYK PiA+IG9yCj4gPiA+ID4gcG93ZXIgb24uCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAq Lwo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBhdHB4LT5mdW5jdGlvbnMucG93ZXJfY250 bCA9Cj4gPiA+ID4gPiAhYW1kZ3B1X2F0cHhfcHJpdi5icmlkZ2VfcG1fdXNhYmxlOwo+ID4gPiA+ ID4gPiA+ICAgICAgICAgICAgICAgICBhdHB4LT5pc19oeWJyaWQgPSB0cnVlOwo+ID4gPiA+ID4g PiA+ICAgICAgICAgfQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gQEAgLTQ3MSw2ICs0NzYs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV9hdHB4X3Bvd2VyX3N0YXRlKGVudW0KPiA+ID4gPiA+IHZn YV9zd2l0Y2hlcm9vX2NsaWVudF9pZCBpZCwKPiA+ID4gPiA+ID4gPiAgICovCj4gPiA+ID4gPiA+ ID4gIHN0YXRpYyBib29sIGFtZGdwdV9hdHB4X3BjaV9wcm9iZV9oYW5kbGUoc3RydWN0IHBjaV9k ZXYgKnBkZXYpCj4gPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gPiArICAgICAgIHN0cnVjdCBw Y2lfZGV2ICpwYXJlbnRfcGRldiA9IHBjaV91cHN0cmVhbV9icmlkZ2UocGRldik7Cj4gPiA+ID4g PiA+ID4gICAgICAgICBhY3BpX2hhbmRsZSBkaGFuZGxlLCBhdHB4X2hhbmRsZTsKPiA+ID4gPiA+ ID4gPiAgICAgICAgIGFjcGlfc3RhdHVzIHN0YXR1czsKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiA+IEBAIC00ODUsNiArNDkxLDcgQEAgc3RhdGljIGJvb2wKPiA+ID4gPiA+IGFtZGdwdV9hdHB4 X3BjaV9wcm9iZV9oYW5kbGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gPiA+ID4gPiA+ID4gICAg ICAgICB9Cj4gPiA+ID4gPiA+ID4gICAgICAgICBhbWRncHVfYXRweF9wcml2LmRoYW5kbGUgPSBk aGFuZGxlOwo+ID4gPiA+ID4gPiA+ICAgICAgICAgYW1kZ3B1X2F0cHhfcHJpdi5hdHB4LmhhbmRs ZSA9IGF0cHhfaGFuZGxlOwo+ID4gPiA+ID4gPiA+ICsgICAgICAgYW1kZ3B1X2F0cHhfcHJpdi5i cmlkZ2VfcG1fdXNhYmxlID0gcGFyZW50X3BkZXYgJiYKPiA+ID4gPiA+IHBhcmVudF9wZGV2LT5i cmlkZ2VfZDM7Cj4gPiA+ID4gPiA+ID4gICAgICAgICByZXR1cm4gdHJ1ZTsKPiA+ID4gPiA+ID4g PiAgfQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gPiAyLjEwLjIK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==