From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: Re: [PATCH 3/5] drm/dp/mst: change MST detection scheme Date: Wed, 15 Jun 2016 13:49:58 +1000 Message-ID: References: <1453500449-9224-1-git-send-email-harry.wentland@amd.com> <1453500449-9224-4-git-send-email-harry.wentland@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vk0-x241.google.com (mail-vk0-x241.google.com [IPv6:2607:f8b0:400c:c05::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 039426E075 for ; Wed, 15 Jun 2016 03:50:01 +0000 (UTC) Received: by mail-vk0-x241.google.com with SMTP id a126so1445334vkb.1 for ; Tue, 14 Jun 2016 20:50:00 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Grodzovsky, Andrey" Cc: "Lysenko, Mykola" , dri-devel List-Id: dri-devel@lists.freedesktop.org RXhjdXNlIG1lIGZvciB0b3AgcG9zdGluZy4KClNvIEkgZmluYWxseSBnb3QgYmFjayB0byB0aGlz IHBhdGNoLCBzdGlsbCBkb24ndCBsaWtlIGl0LgoKQXBhcnQgZnJvbSB0aGUgZG9pbmcgMyB0aGlu Z3MgaW4gb25jZSB3aGljaCBpcyBqdXN0IGFubm95aW5nLCBjdXJyZW50CnVzZXJzcGFjZSBmb3Ig dGlsZWQgbW9uaXRvcnMKcmVsaWVzIG9uIHRoZSBiZWhhdmlvdXIgdGhhdCB0aGUgY2FjaGVkIGVk aWRzIGFyZSByZXRyaWV2ZWQgYmVmb3JlIHRoZQpjb25uZWN0b3IgaXMgc2hvdyB0byB1c2Vyc3Bh Y2UuCgpUaGlzIGlzIHNvIHRoYXQgZm9yIHRpbGVkIG1vbml0b3JzIGJvdGggY29ubmVjdG9ycyBh cmUgc2hvd24gd2l0aAp0aWxpbmcgcHJvcGVydGllcyBzbyB1c2Vyc3BhY2UgY2FuIHBpY2sgdGhl IGNvcnJlY3QgbW9uaXRvciBzaXplLgoKTm93IEkgcmVhbGlzZSB0aGlzIGlzbid0IGdyZWF0LCBz aW5jZSBhdCBsZWFzdCBmb3IgdGhlIHR3byBjYWJsZSA1Swptb25pdG9ycyB5b3Ugd29uJ3QgZXZl ciBwbHVnIHRoZW0gaW4gYXQgb25jZS4KClNvIHdlIHNob3VsZCBwcm9iYWJseSBkaXNjdXNzIG1v cmUgd2hhdCB1c2Vyc3BhY2Ugc2hvdWxkIGRvIGluIHRoZQpwcmVzZW5jZSBvZiBhIHRpbGVkIG1v bml0b3Igd2hlcmUgaXQgY2FuIG9ubHkgc2VlIG9uZSB0aWxlLAoKSWYgd2UgZ28gYWhlYWQgd2l0 aCBzb21ldGhpbmcgbGlrZSB0aGlzLCB0aGluZ3Mgd2lsbCBsb29rIGtpbmRhIHVnbHkKYXMgeW91 IHBsdWcgaW4gYSA0ayBtb25pdG9yIGFuZCBpdCdsbCB0cnkgYW5kIHNldCBhIG1vZGUKb24gdGhl IGZpcnN0IHRpbGUgd2hlbiBpdCBnZXRzIHRoZSBob3RwbHVnIChvciBpdCBjb3VsZCBiZSByYWNp bmcgYW5kCm5vdGljZSB0aGUgY29ubmVjdG9ycyBiZWZvcmUgdGhlIGhvdHBsdWcpLiBTbyBpdCB0 aGVuCnNldHMgdGhlIDE5MjB4MTA4MCBtb2RlIG9uIG9uZSBjb25uZWN0b3IgYW5kIGdldHMgYW5v dGhlciBob3RwbHVnIHRvCnNldCB0aGUgdGlsZWQgbW9kZSB1cC4KCkRhdmUuCgpPbiAxMyBNYXkg MjAxNiBhdCAwODo0MSwgR3JvZHpvdnNreSwgQW5kcmV5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQu Y29tPiB3cm90ZToKPiBIaSBEYXZlLAo+Cj4gSGF2ZSB5b3UgaGFkIGEgY2hhbmNlIHRvIHNlZSBp ZiBNeWtvbGEncyBsYXRlc3QgcGF0Y2ggYWRkcmVzc2VzIHRoZSBpc3N1ZSB5b3Ugb2JzZXJ2ZWQg d2l0aCB0aWxlZCBNU1QgZGlzcGxheSA/Cj4KPiBUaGFua3MuCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0KPiBGcm9tOiBMeXNlbmtvLCBNeWtvbGEKPiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5 IDIyLCAyMDE2IDEwOjA5IFBNCj4gVG86IERhdmUgQWlybGllOyBXZW50bGFuZCwgSGFycnkKPiBD YzogZHJpLWRldmVsCj4gU3ViamVjdDogUkU6IFtQQVRDSCAzLzVdIGRybS9kcC9tc3Q6IGNoYW5n ZSBNU1QgZGV0ZWN0aW9uIHNjaGVtZQo+Cj4gSGkgRGF2ZSwKPgo+IEF0dGFjaGVkIHBhdGNoIHNo b3VsZCBmaXggdGhlIGlzc3VlLgo+Cj4gSSBoYXZlIG9uZSBxdWVzdGlvbiB0aG91Z2g6IHNob3Vs ZCB3ZSBhZGQgZHJtX21vZGVfY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5IHRvIHRoZSBkcm1f Z2V0X2Rpc3BsYXlpZCBmdW5jdGlvbiwgc28gaXQgd2lsbCBiZSB1cGRhdGVkIGluIGNhc2Ugb2Yg cmVndWxhciBEUCBkaXNwbGF5cyBhcyB3ZWxsPwo+Cj4gQXMgYW4gZXhhbXBsZSBvZiBzdWNoIHVz YWdlIGNvdWxkIGJlIDVrIGRpc3BsYXlzIHdpdGggdHdvIHRpbGVzIDI1NjB4Mjg4MCB0aGF0IGNv dWxkIG5vdCBiZSBkcml2ZW4gb24gb25lIE1TVCBjb25uZWN0b3IgYmVjYXVzZSBvZiBiYW5kd2lk dGggbGltaXRhdGlvbnMsIGFuZCBhcmUgZHJpdmVuIGluIFNTVCBtb2RlLgo+Cj4gVGhhbmtzLAo+ IE15a29sYQo+Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBMeXNlbmtvLCBN eWtvbGEKPiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgMTgsIDIwMTYgMTI6NTMgUE0KPiBUbzog J0RhdmUgQWlybGllJyA8YWlybGllZEBnbWFpbC5jb20+OyBXZW50bGFuZCwgSGFycnkgPEhhcnJ5 LldlbnRsYW5kQGFtZC5jb20+Cj4gQ2M6IGRyaS1kZXZlbCA8ZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZz4KPiBTdWJqZWN0OiBSRTogW1BBVENIIDMvNV0gZHJtL2RwL21zdDogY2hhbmdl IE1TVCBkZXRlY3Rpb24gc2NoZW1lCj4KPiBIaSBEYXZlLAo+Cj4gaXQgc2VlbXMgdG8gYmUgbWlz c2VkIGNhbGwgdG8KPgo+IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShwb3J0 LT5jb25uZWN0b3IpOwo+Cj4gaGVyZToKPgo+PiArICAgICAgICAgICAgICAgfSBlbHNlIGlmIChw b3J0LT5wZHQgPT0gRFBfUEVFUl9ERVZJQ0VfU1NUX1NJTksgfHwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgcG9ydC0+cGR0ID09IERQX1BFRVJfREVWSUNFX0RQX0xFR0FDWV9DT05WKSB7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICghcG9ydC0+Y2FjaGVkX2VkaWQpIHsKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5jYWNoZWRfZWRpZCA9Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fZ2V0X2VkaWQocG9ydC0+Y29u bmVjdG9yLAo+PiArICZwb3J0LT5hdXguZGRjKTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShwb3J0LT5jb25uZWN0b3Ip Owo+PiArICAgICAgICAgICAgICAgICAgICAgICB9Cj4KPiBJIHdpbGwgdGVzdCB3aXRoIHRpbGUg ZGlzcGxheSB0byBzZWUgaWYgaXQgc29sdmVzIHRoZSBpc3N1ZS4KPgo+IFRoYW5rcywKPiBNeWtv bGEKPgo+Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBEYXZlIEFpcmxpZSBb bWFpbHRvOmFpcmxpZWRAZ21haWwuY29tXQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgMTcs IDIwMTYgMTo0NiBQTQo+IFRvOiBXZW50bGFuZCwgSGFycnkgPEhhcnJ5LldlbnRsYW5kQGFtZC5j b20+Cj4gQ2M6IGRyaS1kZXZlbCA8ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz47IEx5 c2Vua28sIE15a29sYSA8TXlrb2xhLkx5c2Vua29AYW1kLmNvbT4KPiBTdWJqZWN0OiBSZTogW1BB VENIIDMvNV0gZHJtL2RwL21zdDogY2hhbmdlIE1TVCBkZXRlY3Rpb24gc2NoZW1lCj4KPiBPbiAy MyBKYW51YXJ5IDIwMTYgYXQgMDg6MDcsIEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFuZEBh bWQuY29tPiB3cm90ZToKPj4gRnJvbTogTXlrb2xhIEx5c2Vua28gPE15a29sYS5MeXNlbmtvQGFt ZC5jb20+Cj4+Cj4+IDEuIEdldCBlZGlkIGZvciBhbGwgY29ubmVjdGVkIE1TVCBkaXNwbGF5cywg bm90IG9ubHkgb24gbG9naWNhbCBwb3J0cywKPj4gICAgaW4gdGhlIHNhbWUgdGhyZWFkIGFzIE1T VCB0b3BvbG9neSBkZXRlY3Rpb24gaXMgZG9uZToKPj4gICAgICBUaGVyZSBhcmUgZGlzcGxheXMg dGhhdCBoYXZlIGJyYW5jaGVzIGluc2lkZSB3L28gbG9naWNhbCBwb3J0cy4KPj4gICAgICBTbyBp biBjYXNlIGFub3RoZXIgU1NUIGRpc3BsYXkgY29ubmVjdGVkIGRvd25zdHJlYW0gc3lzdGVtIGNh bgo+PiAgICAgIGVuZC11cCBpbiBzaXR1YXRpb24gd2hlbiAzIERPV04gcmVxdWVzdHMgc2VudDog dHdvIGZvcgo+PiAgICAg4oCYcmVtb3RlIGkyYyByZWFk4oCZIGFuZCBvbmUgZm9yIOKAmGVudW0g cGF0aCByZXNvdXJjZXPigJksIG1ha2luZyBzbG90cyBmdWxsLgo+Pgo+PiAyLiBDYWxsIG5vdGlm aWNhdGlvbiBjYWxsYmFjayBpbiBvbmUgcGxhY2UgaW4gdGhlIGVuZCBvZiB0b3BvbG9neSBkaXNj b3ZlcnkvdXBkYXRlOgo+PiAgICAgIFRoaXMgaXMgZG9uZSB0byByZWR1Y2UgbnVtYmVyIG9mIGV2 ZW50cyBzZW50IHRvIHVzZXJzcGFjZSBpbiBjYXNlIGNvbXBsZXgKPj4gICAgICB0b3BvbG9neSBk aXNjb3ZlcnkgaXMgZ29pbmcsIGFkZGluZyBtdWx0aXBsZSBudW1iZXIgb2YKPj4gY29ubmVjdG9y czsKPj4KPj4gMy4gUmVtb3ZlIG5vdGlmaWNhdGlvbiBjYWxsYmFjayBjYWxsIGZyb20gc2hvcnQg cHVsc2UgaW50ZXJydXB0IHByb2Nlc3NpbmcgZnVuY3Rpb246Cj4+ICAgICAgVGhpcyBpcyBkb25l IGluIG9yZGVyIG5vdCB0byBibG9jayBpbnRlcnJ1cHQgcHJvY2Vzc2luZyBmdW5jdGlvbiwgaW4g Y2FzZSBhbnkKPj4gICAgICBNU1QgcmVxdWVzdCB3aWxsIGJlIG1hZGUgZnJvbSBpdC4gTm90aWZp Y2F0aW9uIHdpbGwgYmUgc2VuZCBmcm9tIHRvcG9sb2d5Cj4+ICAgICAgZGlzY292ZXJ5L3VwZGF0 ZSB3b3JrIGl0ZW0uCj4KPiBJJ3ZlIGhhZCB0byBwdWxsIHRoaXMgb3V0LCBhcyBJIGRpZCBzb21l IG1vcmUgaW5kZXB0aCB0ZXN0aW5nIHdpdGgKPiBpOTE1IGFuZCBhIERlbGwgMzAiCj4gYW5kIHRo aXMgYnJva2UgdGhpbmdzLgo+Cj4gVGhlIG1haW4gdGhpbmcgaXQgYnJva2UgaXMgc2V0dGluZyB0 aGUgdGlsaW5nIHByb3BlcnR5IHRoYXQgdXNlcnNwYWNlIG5lZWRzIHRvIHNlZSB0aG9zZSBkdWFs LXBhbmVsIG1vbml0b3JzIGFzIG9uZS4KPgo+IHlvdSBzaG91bGQgYmUgYWJsZSB0byBzZWUgeHJh bmRyIC0tcHJvcHMgaWYgdGhlIHRpbGUgcHJvcGVydHkgaXMgY29ycmVjdCBpZiB5b3UgdGVzdC4K Pgo+IEknbSBhbHNvIG5vdCBzdXJlIGFib3V0IHNvbWUgb3RoZXIgYml0cyBpbiB0aGlzIHBhdGNo LCBzbyBJIHByb2JhYmx5IG5lZWQgdG8gZGlnIGEgYml0IGRlZXBlciBpbnRvIGl0Lgo+Cj4gRGF2 ZS4KPgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNeWtvbGEgTHlzZW5rbyA8TXlrb2xhLkx5c2Vua29A YW1kLmNvbT4KPj4gUmV2aWV3ZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxIYXJyeS5XZW50bGFuZEBh bWQuY29tPgo+PiBBY2tlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQu Y29tPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgfCAz Nwo+PiArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+PiAgMSBmaWxlIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwo+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKPj4gaW5kZXggMDQxNTk3YjdhN2M2Li4wNTJjMjBjYTM1 ZWUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwo+PiBAQCAtMTEz MCwxMyArMTEzMCwxMSBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfYWRkX3BvcnQoc3RydWN0IGRybV9k cF9tc3RfYnJhbmNoICptc3RiLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fZHBfcHV0 X3BvcnQocG9ydCk7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+PiAgICAg ICAgICAgICAgICAgfQo+PiAtICAgICAgICAgICAgICAgaWYgKHBvcnQtPnBvcnRfbnVtID49IERQ X01TVF9MT0dJQ0FMX1BPUlRfMCkgewo+PiAtICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5j YWNoZWRfZWRpZCA9IGRybV9nZXRfZWRpZChwb3J0LT5jb25uZWN0b3IsICZwb3J0LT5hdXguZGRj KTsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgZHJtX21vZGVfY29ubmVjdG9yX3NldF90aWxl X3Byb3BlcnR5KHBvcnQtPmNvbm5lY3Rvcik7Cj4+IC0gICAgICAgICAgICAgICB9Cj4+ICsKPj4g KyAgICAgICAgICAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShwb3J0 LT5jb25uZWN0b3IpOwo+PiArCj4+ICAgICAgICAgICAgICAgICAoKm1zdGItPm1nci0+Y2JzLT5y ZWdpc3Rlcl9jb25uZWN0b3IpKHBvcnQtPmNvbm5lY3Rvcik7Cj4+ICAgICAgICAgfQo+PiAtCj4+ ICBvdXQ6Cj4+ICAgICAgICAgLyogcHV0IHJlZmVyZW5jZSB0byB0aGlzIHBvcnQgKi8KPj4gICAg ICAgICBkcm1fZHBfcHV0X3BvcnQocG9ydCk7Cj4+IEBAIC0xMTYxLDkgKzExNTksOSBAQCBzdGF0 aWMgdm9pZCBkcm1fZHBfdXBkYXRlX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3Ri LAo+PiAgICAgICAgIHBvcnQtPmRkcHMgPSBjb25uX3N0YXQtPmRpc3BsYXlwb3J0X2RldmljZV9w bHVnX3N0YXR1czsKPj4KPj4gICAgICAgICBpZiAob2xkX2RkcHMgIT0gcG9ydC0+ZGRwcykgewo+ PiArICAgICAgICAgICAgICAgZG93b3JrID0gdHJ1ZTsKPj4gICAgICAgICAgICAgICAgIGlmIChw b3J0LT5kZHBzKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9kcF9jaGVja19wb3J0 X2d1aWQobXN0YiwgcG9ydCk7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGRvd29yayA9IHRy dWU7Cj4+ICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+PiAgICAgICAgICAgICAgICAgICAgICAg ICBwb3J0LT5ndWlkX3ZhbGlkID0gZmFsc2U7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHBv cnQtPmF2YWlsYWJsZV9wYm4gPSAwOyBAQCAtMTI3MSw4ICsxMjY5LDEzCj4+IEBAIHN0YXRpYyB2 b2lkIGRybV9kcF9jaGVja19hbmRfc2VuZF9saW5rX2FkZHJlc3Moc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfbWdyICptCj4+ICAgICAgICAgICAgICAgICBpZiAocG9ydC0+aW5wdXQpCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pgo+PiAtICAgICAgICAgICAgICAgaWYg KCFwb3J0LT5kZHBzKQo+PiArICAgICAgICAgICAgICAgaWYgKCFwb3J0LT5kZHBzKSB7Cj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0LT5jYWNoZWRfZWRpZCkgewo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtmcmVlKHBvcnQtPmNhY2hlZF9lZGlkKTsKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5jYWNoZWRfZWRpZCA9IE5VTEw7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7Cj4+ICsgICAgICAgICAgICAgICB9Cj4+Cj4+ICAgICAgICAgICAgICAgICBpZiAoIXBv cnQtPmF2YWlsYWJsZV9wYm4pCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9kcF9zZW5k X2VudW1fcGF0aF9yZXNvdXJjZXMobWdyLCBtc3RiLAo+PiBwb3J0KTsgQEAgLTEyODMsNiArMTI4 NiwxMiBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19hZGRyZXNzKHN0 cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbQo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRybV9kcF9jaGVja19hbmRfc2VuZF9saW5rX2FkZHJlc3MobWdyLCBtc3RiX2No aWxkKTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fZHBfcHV0X21zdF9i cmFuY2hfZGV2aWNlKG1zdGJfY2hpbGQpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4+ ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBvcnQtPnBkdCA9PSBEUF9QRUVSX0RFVklDRV9T U1RfU0lOSyB8fAo+PiArICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5wZHQgPT0gRFBfUEVF Ul9ERVZJQ0VfRFBfTEVHQUNZX0NPTlYpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYg KCFwb3J0LT5jYWNoZWRfZWRpZCkgewo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBvcnQtPmNhY2hlZF9lZGlkID0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRybV9nZXRfZWRpZChwb3J0LT5jb25uZWN0b3IsICZwb3J0LT5hdXguZGRjKTsKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgfQo+PiAgICAgICAgICAgICAgICAgfQo+PiAgICAgICAg IH0KPj4gIH0KPj4gQEAgLTEzMDIsNiArMTMxMSw4IEBAIHN0YXRpYyB2b2lkIGRybV9kcF9tc3Rf bGlua19wcm9iZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPj4gICAgICAgICAgICAg ICAgIGRybV9kcF9jaGVja19hbmRfc2VuZF9saW5rX2FkZHJlc3MobWdyLCBtc3RiKTsKPj4gICAg ICAgICAgICAgICAgIGRybV9kcF9wdXRfbXN0X2JyYW5jaF9kZXZpY2UobXN0Yik7Cj4+ICAgICAg ICAgfQo+PiArCj4+ICsgICAgICAgKCptZ3ItPmNicy0+aG90cGx1ZykobWdyKTsKPj4gIH0KPj4K Pj4gIHN0YXRpYyBib29sIGRybV9kcF92YWxpZGF0ZV9ndWlkKHN0cnVjdCBkcm1fZHBfbXN0X3Rv cG9sb2d5X21nciAqbWdyLAo+PiBAQCAtMTU1OCw3ICsxNTY5LDYgQEAgc3RhdGljIHZvaWQgZHJt X2RwX3NlbmRfbGlua19hZGRyZXNzKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdHhtc2ctPnJlcGx5 LnUubGlua19hZGRyLm5wb3J0czsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZHJtX2RwX2FkZF9wb3J0KG1zdGIsIG1nci0+ZGV2LCAmdHhtc2ctPnJlcGx5LnUubGlu a19hZGRyLnBvcnRzW2ldKTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgfQo+PiAtICAgICAg ICAgICAgICAgICAgICAgICAoKm1nci0+Y2JzLT5ob3RwbHVnKShtZ3IpOwo+PiAgICAgICAgICAg ICAgICAgfQo+PiAgICAgICAgIH0gZWxzZSB7Cj4+ICAgICAgICAgICAgICAgICBtc3RiLT5saW5r X2FkZHJlc3Nfc2VudCA9IGZhbHNlOyBAQCAtMjIzMiw4ICsyMjQyLDYgQEAKPj4gc3RhdGljIGlu dCBkcm1fZHBfbXN0X2hhbmRsZV91cF9yZXEoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdy Cj4+ICptZ3IpCj4+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9kcF91cGRhdGVfcG9y dChtc3RiLCAmbXNnLnUuY29ubl9zdGF0KTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgRFJN X0RFQlVHX0tNUygiR290IENTTjogcG46ICVkIGxkcHM6JWQgZGRwczogJWQgbWNzOiAlZCBpcDog JWQgcGR0OiAlZFxuIiwgbXNnLnUuY29ubl9zdGF0LnBvcnRfbnVtYmVyLCBtc2cudS5jb25uX3N0 YXQubGVnYWN5X2RldmljZV9wbHVnX3N0YXR1cywgbXNnLnUuY29ubl9zdGF0LmRpc3BsYXlwb3J0 X2RldmljZV9wbHVnX3N0YXR1cywgbXNnLnUuY29ubl9zdGF0Lm1lc3NhZ2VfY2FwYWJpbGl0eV9z dGF0dXMsIG1zZy51LmNvbm5fc3RhdC5pbnB1dF9wb3J0LCBtc2cudS5jb25uX3N0YXQucGVlcl9k ZXZpY2VfdHlwZSk7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICgqbWdyLT5jYnMtPmhvdHBs dWcpKG1ncik7Cj4+IC0KPj4gICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnLnJlcV90eXBl ID09IERQX1JFU09VUkNFX1NUQVRVU19OT1RJRlkpIHsKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgZHJtX2RwX3NlbmRfdXBfYWNrX3JlcGx5KG1nciwgbWdyLT5tc3RfcHJpbWFyeSwgbXNnLnJl cV90eXBlLCBzZXFubywgZmFsc2UpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1z dGIpCj4+IEBAIC0yMzIwLDEwICsyMzI4LDYgQEAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ PiBkcm1fZHBfbXN0X2RldGVjdF9wb3J0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IK Pj4KPj4gICAgICAgICBjYXNlIERQX1BFRVJfREVWSUNFX1NTVF9TSU5LOgo+PiAgICAgICAgICAg ICAgICAgc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4+IC0gICAgICAgICAg ICAgICAvKiBmb3IgbG9naWNhbCBwb3J0cyAtIGNhY2hlIHRoZSBFRElEICovCj4+IC0gICAgICAg ICAgICAgICBpZiAocG9ydC0+cG9ydF9udW0gPj0gOCAmJiAhcG9ydC0+Y2FjaGVkX2VkaWQpIHsK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgcG9ydC0+Y2FjaGVkX2VkaWQgPSBkcm1fZ2V0X2Vk aWQoY29ubmVjdG9yLCAmcG9ydC0+YXV4LmRkYyk7Cj4+IC0gICAgICAgICAgICAgICB9Cj4+ICAg ICAgICAgICAgICAgICBicmVhazsKPj4gICAgICAgICBjYXNlIERQX1BFRVJfREVWSUNFX0RQX0xF R0FDWV9DT05WOgo+PiAgICAgICAgICAgICAgICAgaWYgKHBvcnQtPmxkcHMpCj4+IEBAIC0yMzc4 LDEwICsyMzgyLDcgQEAgc3RydWN0IGVkaWQgKmRybV9kcF9tc3RfZ2V0X2VkaWQoc3RydWN0Cj4+ IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGRybV9kcF8KPj4KPj4gICAgICAgICBp ZiAocG9ydC0+Y2FjaGVkX2VkaWQpCj4+ICAgICAgICAgICAgICAgICBlZGlkID0gZHJtX2VkaWRf ZHVwbGljYXRlKHBvcnQtPmNhY2hlZF9lZGlkKTsKPj4gLSAgICAgICBlbHNlIHsKPj4gLSAgICAg ICAgICAgICAgIGVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9yLCAmcG9ydC0+YXV4LmRkYyk7 Cj4+IC0gICAgICAgICAgICAgICBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHko Y29ubmVjdG9yKTsKPj4gLSAgICAgICB9Cj4+ICsKPj4gICAgICAgICBwb3J0LT5oYXNfYXVkaW8g PSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7Cj4+ICAgICAgICAgZHJtX2RwX3B1dF9w b3J0KHBvcnQpOwo+PiAgICAgICAgIHJldHVybiBlZGlkOwo+PiAtLQo+PiAyLjEuNAo+Pgo+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2 ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK