From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C0D789180 for ; Mon, 3 Jun 2019 13:18:11 +0000 (UTC) References: <20190527120307.14354-1-simon.ser@intel.com> <20190527120307.14354-4-simon.ser@intel.com> From: Martin Peres Message-ID: Date: Mon, 3 Jun 2019 16:18:06 +0300 MIME-Version: 1.0 In-Reply-To: <20190527120307.14354-4-simon.ser@intel.com> Content-Language: en-PH Subject: Re: [igt-dev] [PATCH i-g-t 3/3] lib/igt_kms: introduce igt_kms_get_hdmi_audio_edid List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Simon Ser , igt-dev@lists.freedesktop.org Cc: martin.peres@intel.com List-ID: T24gMjcvMDUvMjAxOSAxNTowMywgU2ltb24gU2VyIHdyb3RlOgo+IFRoaXMgbmV3IGZ1bmN0aW9u IHVzZXMgaWd0X2VkaWQgdG8gZ2VuZXJhdGUgYW4gRURJRCBzdWl0YWJsZSBmb3IgdGVzdGluZyBI RE1JCj4gYXVkaW8uIEl0J3MgaW1wb3J0ZWQgZnJvbSBrbXNfY2hhbWVsaXVtIHdpdGggbWlub3Ig ZWRpdHMsIGl0J3MgdXNlZCB0aGVyZSBhbmQKPiBpbiBrbXNfaGRtaV9pbmplY3QuIEEgKHVuZXhw b3J0ZWQgZm9yIG5vdykgZ2VuZXJhdGVfaGRtaV9hdWRpb19lZGlkIGZ1bmN0aW9uCj4gZW5hYmxl cyBnZW5lcmF0aW9uIG9mIEVESURzIHdpdGggYXJiaXRyYXJ5IFNBRCBhbmQgc3BlYWtlciBibG9j a3MuCj4gCj4gVGhpcyBvYnNvbGV0ZXMga21zdGVzdF9lZGlkX2FkZF9hdWRpby4KPiAKPiBUaGUg c2FuaXR5IGNoZWNrIGZvciB0aGUgSERNSSBhdWRpbyBFRElEIGhhcyBiZWVuIG1vdmVkIGZyb20K PiBsaWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMgdG8gbGliL3Rlc3RzL2lndF9lZGlkLmMuCj4g Cj4gU2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwuY29tPgo+IC0tLQo+ ICBsaWIvaWd0X2ttcy5jICAgICAgICAgICAgICAgfCAxMzMgKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tCj4gIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAgICB8ICAxMCArKy0K PiAgbGliL3Rlc3RzL2lndF9lZGlkLmMgICAgICAgIHwgICAxICsKPiAgbGliL3Rlc3RzL2lndF9o ZG1pX2luamVjdC5jIHwgICAxIC0KPiAgdGVzdHMva21zX2NoYW1lbGl1bS5jICAgICAgIHwgIDYy ICstLS0tLS0tLS0tLS0tLS0tCj4gIHRlc3RzL2ttc19oZG1pX2luamVjdC5jICAgICB8ICAgOSAr Ky0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAxMjggZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCj4gaW5kZXgg YTdkYzNhYzNmYjY2Li5kN2Q3MTFhNzJkMjcgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9rbXMuYwo+ ICsrKyBiL2xpYi9pZ3Rfa21zLmMKPiBAQCAtMjYsNiArMjYsOCBAQAo+ICAgKi8KPiAgCj4gICNp bmNsdWRlICJjb25maWcuaCIKPiArCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4KPiAgI2luY2x1ZGUg PGludHR5cGVzLmg+Cj4gICNpbmNsdWRlIDx1bmlzdGQuaD4KPiAgI2luY2x1ZGUgPHN0ZGlvLmg+ Cj4gQEAgLTE4MCw2ICsxODIsNzkgQEAgY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRf YWx0X2VkaWQodm9pZCkKPiAgCXJldHVybiAodW5zaWduZWQgY2hhciAqKSAmZWRpZDsKPiAgfQo+ ICAKPiArc3RhdGljIHZvaWQKPiArZ2VuZXJhdGVfaGRtaV9hdWRpb19lZGlkKHVuc2lnbmVkIGNo YXIgcmF3X2VkaWRbc3RhdGljIEhETUlfQVVESU9fRURJRF9MRU5HVEhdLAo+ICsJCQkgc3RydWN0 IGNlYV9zYWQgKnNhZCwKPiArCQkJIHN0cnVjdCBjZWFfc3BlYWtlcl9hbGxvYyAqc3BlYWtlcl9h bGxvYykKPiArewo+ICsJc3RydWN0IGVkaWQgKmVkaWQ7Cj4gKwlzdHJ1Y3QgZWRpZF9leHQgKmVk aWRfZXh0Owo+ICsJc3RydWN0IGVkaWRfY2VhICplZGlkX2NlYTsKPiArCWNoYXIgKmNlYV9kYXRh Owo+ICsJc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKmJsb2NrOwo+ICsJY29uc3Qgc3RydWN0 IGNlYV92c2QgKnZzZDsKPiArCXNpemVfdCBjZWFfZGF0YV9zaXplLCB2c2Rfc2l6ZTsKPiArCj4g KwkvKiBDcmVhdGUgYSBuZXcgRURJRCBmcm9tIHRoZSBiYXNlIElHVCBFRElELCBhbmQgYWRkIGFu Cj4gKwkgKiBleHRlbnNpb24gdGhhdCBhZHZlcnRpc2VzIGF1ZGlvIHN1cHBvcnQuICovCj4gKwll ZGlkID0gKHN0cnVjdCBlZGlkICopIHJhd19lZGlkOwo+ICsJbWVtY3B5KGVkaWQsIGlndF9rbXNf Z2V0X2Jhc2VfZWRpZCgpLCBzaXplb2Yoc3RydWN0IGVkaWQpKTsKPiArCWVkaWQtPmV4dGVuc2lv bnNfbGVuID0gMTsKPiArCWVkaWRfZXh0ID0gJmVkaWQtPmV4dGVuc2lvbnNbMF07Cj4gKwllZGlk X2NlYSA9ICZlZGlkX2V4dC0+ZGF0YS5jZWE7Cj4gKwljZWFfZGF0YSA9IGVkaWRfY2VhLT5kYXRh Owo+ICsJY2VhX2RhdGFfc2l6ZSA9IDA7Cj4gKwo+ICsJLyogU2hvcnQgQXVkaW8gRGVzY3JpcHRv ciBibG9jayAqLwo+ICsJYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNl YV9kYXRhW2NlYV9kYXRhX3NpemVdOwo+ICsJY2VhX2RhdGFfc2l6ZSArPSBlZGlkX2NlYV9kYXRh X2Jsb2NrX3NldF9zYWQoYmxvY2ssIHNhZCwgMSk7Cj4gKwo+ICsJLyogQSBWZW5kb3IgU3BlY2lm aWMgRGF0YSBibG9jayBpcyBuZWVkZWQgZm9yIEhETUkgYXVkaW8gKi8KPiArCWJsb2NrID0gKHN0 cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICopICZjZWFfZGF0YVtjZWFfZGF0YV9zaXplXTsKPiAr CXZzZCA9IGNlYV92c2RfZ2V0X2hkbWlfZGVmYXVsdCgmdnNkX3NpemUpOwo+ICsJY2VhX2RhdGFf c2l6ZSArPSBlZGlkX2NlYV9kYXRhX2Jsb2NrX3NldF92c2QoYmxvY2ssIHZzZCwKPiArCQkJCQkJ ICAgICB2c2Rfc2l6ZSk7Cj4gKwo+ICsJLyogU3BlYWtlciBBbGxvY2F0aW9uIERhdGEgYmxvY2sg Ki8KPiArCWJsb2NrID0gKHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICopICZjZWFfZGF0YVtj ZWFfZGF0YV9zaXplXTsKPiArCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9ja19z ZXRfc3BlYWtlcl9hbGxvYyhibG9jaywKPiArCQkJCQkJCSAgICAgICBzcGVha2VyX2FsbG9jKTsK PiArCj4gKwlhc3NlcnQoY2VhX2RhdGFfc2l6ZSA8PSBzaXplb2YoZWRpZF9jZWEtPmRhdGEpKTsK PiArCj4gKwllZGlkX2V4dF9zZXRfY2VhKGVkaWRfZXh0LCBjZWFfZGF0YV9zaXplLAo+ICsJCQkg RURJRF9DRUFfQkFTSUNfQVVESU8pOwo+ICsKPiArCWVkaWRfdXBkYXRlX2NoZWNrc3VtKGVkaWQp Owo+ICsJZWRpZF9leHRfdXBkYXRlX2NlYV9jaGVja3N1bShlZGlkX2V4dCk7Cj4gK30KCkxvb2tz IHByZXR0eSBuZWF0IQoKUmV2aWV3ZWQtYnk6IE1hcnRpbiBQZXJlcyA8bWFydGluLnBlcmVzQGxp bnV4LmludGVsLmNvbT4KCj4gKwo+ICtjb25zdCB1bnNpZ25lZCBjaGFyICppZ3Rfa21zX2dldF9o ZG1pX2F1ZGlvX2VkaWQodm9pZCkKPiArewo+ICsJaW50IGNoYW5uZWxzOwo+ICsJdWludDhfdCBz YW1wbGluZ19yYXRlcywgc2FtcGxlX3NpemVzOwo+ICsJc3RhdGljIHVuc2lnbmVkIGNoYXIgcmF3 X2VkaWRbSERNSV9BVURJT19FRElEX0xFTkdUSF0gPSB7MH07Cj4gKwlzdHJ1Y3QgY2VhX3NhZCBz YWQgPSB7MH07Cj4gKwlzdHJ1Y3QgY2VhX3NwZWFrZXJfYWxsb2Mgc3BlYWtlcl9hbGxvYyA9IHsw fTsKPiArCj4gKwkvKiBJbml0aWFsaXplIHRoZSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9yIGZvciBQ Q00gKi8KPiArCWNoYW5uZWxzID0gMjsKPiArCXNhbXBsaW5nX3JhdGVzID0gQ0VBX1NBRF9TQU1Q TElOR19SQVRFXzMyS0haIHwKPiArCQkJIENFQV9TQURfU0FNUExJTkdfUkFURV80NEtIWiB8Cj4g KwkJCSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVfNDhLSFo7Cj4gKwlzYW1wbGVfc2l6ZXMgPSBDRUFf U0FEX1NBTVBMRV9TSVpFXzE2IHwKPiArCQkgICAgICAgQ0VBX1NBRF9TQU1QTEVfU0laRV8yMCB8 Cj4gKwkJICAgICAgIENFQV9TQURfU0FNUExFX1NJWkVfMjQ7Cj4gKwljZWFfc2FkX2luaXRfcGNt KCZzYWQsIGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlcywgc2FtcGxlX3NpemVzKTsKPiArCj4gKwkv KiBJbml0aWFsaXplIHRoZSBTcGVha2VyIEFsbG9jYXRpb24gRGF0YSAqLwo+ICsJc3BlYWtlcl9h bGxvYy5zcGVha2VycyA9IENFQV9TUEVBS0VSX0ZST05UX0xFRlRfUklHSFRfQ0VOVEVSOwo+ICsK PiArCWdlbmVyYXRlX2hkbWlfYXVkaW9fZWRpZChyYXdfZWRpZCwgJnNhZCwgJnNwZWFrZXJfYWxs b2MpOwo+ICsKPiArCXJldHVybiByYXdfZWRpZDsKPiArfQo+ICsKPiAgY29uc3QgY2hhciAqIGNv bnN0IGlndF9wbGFuZV9wcm9wX25hbWVzW0lHVF9OVU1fUExBTkVfUFJPUFNdID0gewo+ICAJW0lH VF9QTEFORV9TUkNfWF0gPSAiU1JDX1giLAo+ICAJW0lHVF9QTEFORV9TUkNfWV0gPSAiU1JDX1ki LAo+IEBAIC0xMzU2LDY0ICsxNDMxLDYgQEAgdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzRrKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsCj4gIAl1cGRhdGVfZWRpZF9jc3Vt KG5ld19lZGlkLmRhdGEsIGxlbmd0aCk7Cj4gIH0KPiAgCj4gLS8qKgo+IC0gKiBrbXN0ZXN0X2Vk aWRfYWRkX2F1ZGlvOgo+IC0gKiBAZWRpZDogYW4gZXhpc3RpbmcgdmFsaWQgZWRpZCBibG9jawo+ IC0gKiBAbGVuZ3RoOiBsZW5ndGggb2YgQGVkaWQKPiAtICogQG5ld19lZGlkX3B0cjogcG9pbnRl ciB0byB3aGVyZSB0aGUgbmV3IGVkaWQgd2lsbCBiZSBwbGFjZWQKPiAtICogQG5ld19sZW5ndGg6 IHBvaW50ZXIgdG8gdGhlIHNpemUgb2YgdGhlIG5ldyBlZGlkCj4gLSAqCj4gLSAqIE1ha2VzIGEg Y29weSBvZiBhbiBleGlzdGluZyBlZGlkIGJsb2NrIGFuZCBhZGRzIGFuIGV4dGVuc2lvbiBpbmRp Y2F0aW5nCj4gLSAqIGJhc2ljIGF1ZGlvIHN1cHBvcnQgYW5kIHNwZWFrZXIgZGF0YSBibG9jay4K PiAtICoKPiAtICovCj4gLXZvaWQga21zdGVzdF9lZGlkX2FkZF9hdWRpbyhjb25zdCB1bnNpZ25l ZCBjaGFyICplZGlkLCBzaXplX3QgbGVuZ3RoLAo+IC0JCQkgICAgdW5zaWduZWQgY2hhciAqbmV3 X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCkKPiAtewo+IC0JY2hhciB2c2RiX2Jsb2Nr X2xlbiA9IDEwLCBhdWRpb19ibG9ja19sZW4gPSA0LCBzcGtyX2Jsb2NrX2xlbiA9IDQ7Cj4gLQlz dHJ1Y3QgZWRpZF9ibG9jayBuZXdfZWRpZCA9IGluaXRfY2VhX2Jsb2NrKGVkaWQsIGxlbmd0aCwg bmV3X2VkaWRfcHRyLAo+IC0JCQkJCQkgICAgbmV3X2xlbmd0aCwKPiAtCQkJCQkJICAgIHZzZGJf YmxvY2tfbGVuICsKPiAtCQkJCQkJICAgIGF1ZGlvX2Jsb2NrX2xlbiArCj4gLQkJCQkJCSAgICBz cGtyX2Jsb2NrX2xlbiwKPiAtCQkJCQkJICAgIERURF9TVVBQT1JUU19BVURJTyk7Cj4gLQlpbnQg cG9zID0gbmV3X2VkaWQucG9zOwo+IC0KPiAtCS8qIGF1ZGlvIGJsb2NrLCBzaG9ydCBhdWRpbyBi bG9jayBkZXNjcmlwdG9ycyAgKi8KPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gKDEgPDwgNSkg fCAoYXVkaW9fYmxvY2tfbGVuIC0gMSk7Cj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDk7 IC8qIEF1ZGlvIEZvcm1hdCwgUENNICovCj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDc7 IC8qIEZyZXF1ZW5jeSwgMzIsIDQ0LjEsIDQ4a0h6ICAqLwo+IC0JbmV3X2VkaWQuZGF0YVtwb3Mr K10gPSAweDA3OyAvKiBCaXQgUmF0ZSAxNiwgMjAsIDI0IGJpdCAqLwo+IC0KPiAtCj4gLQkvKiB2 c2RiIGJsb2NrICggaWQgfCBsZW5ndGggKSAtLSBuZWVkIHZzZGIgYXMgd2VsbAo+IC0JICogb3Ro ZXJ3aXNlIHRoZSBrZXJuZWwgd2lsbCBmYWxsYmFjayB0byBsb3dlciBjbG9jayBtb2RlcyAqLwo+ IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAzIDw8IDUgfCAodnNkYl9ibG9ja19sZW4gLSAxKTsK PiAtCS8qIHJlZ2lzdHJhdGlvbiBpZCAqLwo+IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDM7 Cj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4YzsKPiAtCW5ld19lZGlkLmRhdGFbcG9zKytd ID0gMHgwOwo+IC0JLyogc291cmNlIHBoeXNpY2FsIGFkZHJlc3MgKi8KPiAtCW5ld19lZGlkLmRh dGFbcG9zKytdID0gMHgxMDsKPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsKPiAtCS8q IFN1cHBvcnRzX0FJIC4uLiBldGMgKi8KPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsK PiAtCS8qIE1heCBUTURTIENsb2NrICovCj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDA7 Cj4gLQkvKiBMYXRlbmN5IHByZXNlbnQsIEhETUkgVmlkZW8gUHJlc2VudCAqLwo+IC0JbmV3X2Vk aWQuZGF0YVtwb3MrK10gPSAweDIwOwo+IC0JLyogSERNSSBWaWRlbyAqLwo+IC0JbmV3X2VkaWQu ZGF0YVtwb3MrK10gPSAweDAwOyAvKiAzRCBwcmVzZW50ICovCj4gLQo+IC0JLyogc3BlYWtlciBk YXRhIGJsb2NrICovCj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9ICg0IDw8IDUpIHwgKHNwa3Jf YmxvY2tfbGVuIC0gMSk7Cj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9ICgxIDw8IDUpOwo+IC0J bmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDAwOwo+IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAw eDAwOwo+IC0KPiAtCXVwZGF0ZV9lZGlkX2NzdW0obmV3X2VkaWQuZGF0YSwgbGVuZ3RoKTsKPiAt fQo+IC0KPiAgLyoqCj4gICAqIGttc3Rlc3RfdW5zZXRfYWxsX2NydGNzOgo+ICAgKiBAZHJtX2Zk OiB0aGUgRFJNIGZkCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5o Cj4gaW5kZXggMzhiZGMwOGYzZDUwLi40YWMyODEzMWI2ZDkgMTAwNjQ0Cj4gLS0tIGEvbGliL2ln dF9rbXMuaAo+ICsrKyBiL2xpYi9pZ3Rfa21zLmgKPiBAQCAtMTk2LDcgKzE5Niw2IEBAIGJvb2wg a21zdGVzdF9mb3JjZV9jb25uZWN0b3IoaW50IGZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0 b3IsCj4gIAkJCSAgICAgZW51bSBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcl9zdGF0ZSBzdGF0ZSk7 Cj4gIHZvaWQga21zdGVzdF9lZGlkX2FkZF8zZChjb25zdCB1bnNpZ25lZCBjaGFyICplZGlkLCBz aXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyICpuZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdf bGVuZ3RoKTsKPiAgdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzRrKGNvbnN0IHVuc2lnbmVkIGNoYXIg KmVkaWQsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGNoYXIgKm5ld19lZGlkX3B0cltdLCBzaXpl X3QgKm5ld19sZW5ndGgpOwo+IC12b2lkIGttc3Rlc3RfZWRpZF9hZGRfYXVkaW8oY29uc3QgdW5z aWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRf cHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCk7Cj4gIHZvaWQga21zdGVzdF9mb3JjZV9lZGlkKGlu dCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJY29uc3QgdW5zaWdu ZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCk7Cj4gIAo+IEBAIC03NTQsOSArNzUzLDE0IEBA IHZvaWQgaWd0X3Jlc2V0X2Nvbm5lY3RvcnModm9pZCk7Cj4gIAo+ICB1aW50MzJfdCBrbXN0ZXN0 X2dldF92YmxfZmxhZyh1aW50MzJfdCBwaXBlX2lkKTsKPiAgCj4gK3N0cnVjdCBjZWFfc2FkOwo+ ICtzdHJ1Y3QgY2VhX3NwZWFrZXJfYWxsb2M7Cj4gKwo+ICAjZGVmaW5lIEVESURfTEVOR1RIIDEy OAo+IC1jb25zdCB1bnNpZ25lZCBjaGFyKiBpZ3Rfa21zX2dldF9iYXNlX2VkaWQodm9pZCk7Cj4g LWNvbnN0IHVuc2lnbmVkIGNoYXIqIGlndF9rbXNfZ2V0X2FsdF9lZGlkKHZvaWQpOwo+ICsjZGVm aW5lIEhETUlfQVVESU9fRURJRF9MRU5HVEggKDIgKiBFRElEX0xFTkdUSCkKPiArY29uc3QgdW5z aWduZWQgY2hhciAqaWd0X2ttc19nZXRfYmFzZV9lZGlkKHZvaWQpOwo+ICtjb25zdCB1bnNpZ25l ZCBjaGFyICppZ3Rfa21zX2dldF9hbHRfZWRpZCh2b2lkKTsKPiArY29uc3QgdW5zaWduZWQgY2hh ciAqaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkKHZvaWQpOwo+ICAKPiAgc3RydWN0IHVkZXZf bW9uaXRvciAqaWd0X3dhdGNoX2hvdHBsdWcodm9pZCk7Cj4gIGJvb2wgaWd0X2hvdHBsdWdfZGV0 ZWN0ZWQoc3RydWN0IHVkZXZfbW9uaXRvciAqbW9uLAo+IGRpZmYgLS1naXQgYS9saWIvdGVzdHMv aWd0X2VkaWQuYyBiL2xpYi90ZXN0cy9pZ3RfZWRpZC5jCj4gaW5kZXggNmNmNmI1YzE0YjUzLi5h ODQ3ZGYyNzI1MjUgMTAwNjQ0Cj4gLS0tIGEvbGliL3Rlc3RzL2lndF9lZGlkLmMKPiArKysgYi9s aWIvdGVzdHMvaWd0X2VkaWQuYwo+IEBAIC03NSw2ICs3NSw3IEBAIGlndF9zaW1wbGVfbWFpbgo+ ICAJfSBmdW5jc1tdID0gewo+ICAJCXsgImJhc2UiLCBpZ3Rfa21zX2dldF9iYXNlX2VkaWQsIDAg fSwKPiAgCQl7ICJhbHQiLCBpZ3Rfa21zX2dldF9hbHRfZWRpZCwgMCB9LAo+ICsJCXsgImhkbWlf YXVkaW8iLCBpZ3Rfa21zX2dldF9oZG1pX2F1ZGlvX2VkaWQsIDEgfSwKPiAgCQl7MH0sCj4gIAl9 LCAqZjsKPiAgCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQ7Cj4gZGlmZiAtLWdpdCBhL2xpYi90 ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYyBiL2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYwo+IGlu ZGV4IDliNjc4MGExNGFhNi4uMjUzNGIxYTIzYWNiIDEwMDY0NAo+IC0tLSBhL2xpYi90ZXN0cy9p Z3RfaGRtaV9pbmplY3QuYwo+ICsrKyBiL2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYwo+IEBA IC03Myw3ICs3Myw2IEBAIGlndF9zaW1wbGVfbWFpbgo+ICAJfSBmdW5jc1tdID0gewo+ICAJCXsg IjNEIiwga21zdGVzdF9lZGlkX2FkZF8zZCB9LAo+ICAJCXsgIjRrIiwga21zdGVzdF9lZGlkX2Fk ZF80ayB9LAo+IC0JCXsgImF1ZGlvIiwga21zdGVzdF9lZGlkX2FkZF9hdWRpbyB9LAo+ICAJCXsg TlVMTCwgTlVMTCB9LAo+ICAJfSwgKmY7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY2hh bWVsaXVtLmMgYi90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPiBpbmRleCA4ZGE2ZWMyMDc1OWUuLmU3 NTc4NmQzMzc2NSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPiArKysgYi90 ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPiBAQCAtMTc0MCw2NiArMTc0MCw2IEBAIHRlc3RfaHBkX3N0 b3JtX2Rpc2FibGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsIGlu dCB3aWR0aCkKPiAgCWlndF9ocGRfc3Rvcm1fcmVzZXQoZGF0YS0+ZHJtX2ZkKTsKPiAgfQo+ICAK PiAtI2RlZmluZSBIRE1JX0FVRElPX0VESURfU0laRSAoc2l6ZW9mKHN0cnVjdCBlZGlkKSArIHNp emVvZihzdHJ1Y3QgZWRpZF9leHQpKQo+IC0KPiAtc3RhdGljIHVuc2lnbmVkIGNvbnN0IGNoYXIg KmdldF9oZG1pX2F1ZGlvX2VkaWQodm9pZCkKPiAtewo+IC0JaW50IGNoYW5uZWxzOwo+IC0JdWlu dDhfdCBzYW1wbGluZ19yYXRlcywgc2FtcGxlX3NpemVzOwo+IC0Jc3RhdGljIHVuc2lnbmVkIGNo YXIgcmF3X2VkaWRbSERNSV9BVURJT19FRElEX1NJWkVdID0gezB9Owo+IC0Jc3RydWN0IGVkaWQg KmVkaWQ7Cj4gLQlzdHJ1Y3QgZWRpZF9leHQgKmVkaWRfZXh0Owo+IC0Jc3RydWN0IGVkaWRfY2Vh ICplZGlkX2NlYTsKPiAtCWNoYXIgKmNlYV9kYXRhOwo+IC0Jc3RydWN0IGVkaWRfY2VhX2RhdGFf YmxvY2sgKmJsb2NrOwo+IC0Jc3RydWN0IGNlYV9zYWQgc2FkID0gezB9Owo+IC0JY29uc3Qgc3Ry dWN0IGNlYV92c2QgKnZzZDsKPiAtCXNpemVfdCBjZWFfZGF0YV9zaXplLCB2c2Rfc2l6ZTsKPiAt Cj4gLQkvKiBJbml0aWFsaXplIHRoZSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9yIGZvciBQQ00gKi8K PiAtCWNoYW5uZWxzID0gMjsgLyogVE9ETzogc3BlYWtlciBhbGxvYyBibG9ja3MgZm9yID4gMiBj aGFubmVscyAqLwo+IC0Jc2FtcGxpbmdfcmF0ZXMgPSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVfMzJL SFogfAo+IC0JCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzQ0S0haIHwKPiAtCQkJIENFQV9TQURf U0FNUExJTkdfUkFURV80OEtIWiB8Cj4gLQkJCSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVfODhLSFog fAo+IC0JCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzk2S0haIHwKPiAtCQkJIENFQV9TQURfU0FN UExJTkdfUkFURV8xNzZLSFogfAo+IC0JCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzE5MktIWjsK PiAtCXNhbXBsZV9zaXplcyA9IENFQV9TQURfU0FNUExFX1NJWkVfMTYgfAo+IC0JCSAgICAgICBD RUFfU0FEX1NBTVBMRV9TSVpFXzIwIHwKPiAtCQkgICAgICAgQ0VBX1NBRF9TQU1QTEVfU0laRV8y NDsKPiAtCWNlYV9zYWRfaW5pdF9wY20oJnNhZCwgY2hhbm5lbHMsIHNhbXBsaW5nX3JhdGVzLCBz YW1wbGVfc2l6ZXMpOwo+IC0KPiAtCS8qIENyZWF0ZSBhIG5ldyBFRElEIGZyb20gdGhlIGJhc2Ug SUdUIEVESUQsIGFuZCBhZGQgYW4KPiAtCSAqIGV4dGVuc2lvbiB0aGF0IGFkdmVydGlzZXMgYXVk aW8gc3VwcG9ydC4gKi8KPiAtCWVkaWQgPSAoc3RydWN0IGVkaWQgKikgcmF3X2VkaWQ7Cj4gLQlt ZW1jcHkoZWRpZCwgaWd0X2ttc19nZXRfYmFzZV9lZGlkKCksIHNpemVvZihzdHJ1Y3QgZWRpZCkp Owo+IC0JZWRpZC0+ZXh0ZW5zaW9uc19sZW4gPSAxOwo+IC0JZWRpZF9leHQgPSAmZWRpZC0+ZXh0 ZW5zaW9uc1swXTsKPiAtCWVkaWRfY2VhID0gJmVkaWRfZXh0LT5kYXRhLmNlYTsKPiAtCWNlYV9k YXRhID0gZWRpZF9jZWEtPmRhdGE7Cj4gLQljZWFfZGF0YV9zaXplID0gMDsKPiAtCj4gLQlibG9j ayA9IChzdHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqKSAmY2VhX2RhdGFbY2VhX2RhdGFfc2l6 ZV07Cj4gLQljZWFfZGF0YV9zaXplICs9IGVkaWRfY2VhX2RhdGFfYmxvY2tfc2V0X3NhZChibG9j aywgJnNhZCwgMSk7Cj4gLQo+IC0JLyogQSBWZW5kb3IgU3BlY2lmaWMgRGF0YSBibG9jayBpcyBu ZWVkZWQgZm9yIEhETUkgYXVkaW8gKi8KPiAtCWJsb2NrID0gKHN0cnVjdCBlZGlkX2NlYV9kYXRh X2Jsb2NrICopICZjZWFfZGF0YVtjZWFfZGF0YV9zaXplXTsKPiAtCXZzZCA9IGNlYV92c2RfZ2V0 X2hkbWlfZGVmYXVsdCgmdnNkX3NpemUpOwo+IC0JY2VhX2RhdGFfc2l6ZSArPSBlZGlkX2NlYV9k YXRhX2Jsb2NrX3NldF92c2QoYmxvY2ssIHZzZCwKPiAtCQkJCQkJICAgICB2c2Rfc2l6ZSk7Cj4g LQo+IC0JaWd0X2Fzc2VydChjZWFfZGF0YV9zaXplIDw9IHNpemVvZihlZGlkX2NlYS0+ZGF0YSkp Owo+IC0KPiAtCWVkaWRfZXh0X3NldF9jZWEoZWRpZF9leHQsIGNlYV9kYXRhX3NpemUsCj4gLQkJ CSBFRElEX0NFQV9CQVNJQ19BVURJTyk7Cj4gLQo+IC0JZWRpZF91cGRhdGVfY2hlY2tzdW0oZWRp ZCk7Cj4gLQllZGlkX2V4dF91cGRhdGVfY2VhX2NoZWNrc3VtKGVkaWRfZXh0KTsKPiAtCj4gLQly ZXR1cm4gcmF3X2VkaWQ7Cj4gLX0KPiAtCj4gIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICpn ZXRfZWRpZChlbnVtIHRlc3RfZWRpZCBlZGlkKQo+ICB7Cj4gIAlzd2l0Y2ggKGVkaWQpIHsKPiBA QCAtMTgxMSw3ICsxNzUxLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmdldF9lZGlk KGVudW0gdGVzdF9lZGlkIGVkaWQpCj4gIAljYXNlIFRFU1RfRURJRF9BTFQ6Cj4gIAkJcmV0dXJu IGlndF9rbXNfZ2V0X2FsdF9lZGlkKCk7Cj4gIAljYXNlIFRFU1RfRURJRF9IRE1JX0FVRElPOgo+ IC0JCXJldHVybiBnZXRfaGRtaV9hdWRpb19lZGlkKCk7Cj4gKwkJcmV0dXJuIGlndF9rbXNfZ2V0 X2hkbWlfYXVkaW9fZWRpZCgpOwo+ICAJfQo+ICAJYXNzZXJ0KDApOyAvKiB1bnJlYWNoYWJsZSAq Lwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jIGIvdGVzdHMva21z X2hkbWlfaW5qZWN0LmMKPiBpbmRleCBhMjQwNjEwNDJjMjAuLjQ3ZjVlZjJjNTU4YSAxMDA2NDQK PiAtLS0gYS90ZXN0cy9rbXNfaGRtaV9pbmplY3QuYwo+ICsrKyBiL3Rlc3RzL2ttc19oZG1pX2lu amVjdC5jCj4gQEAgLTI0LDYgKzI0LDcgQEAKPiAgCj4gICNpbmNsdWRlIDxkaXJlbnQuaD4KPiAg I2luY2x1ZGUgImlndC5oIgo+ICsjaW5jbHVkZSAiaWd0X2VkaWQuaCIKPiAgCj4gICNkZWZpbmUg SERJU1BMQVlfNEsJMzg0MAo+ICAjZGVmaW5lIFZESVNQTEFZXzRLCTIxNjAKPiBAQCAtMjExLDE0 ICsyMTIsMTQgQEAgZWxkX2lzX3ZhbGlkKHZvaWQpCj4gIHN0YXRpYyB2b2lkCj4gIGhkbWlfaW5q ZWN0X2F1ZGlvKGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ IC0JdW5zaWduZWQgY2hhciAqZWRpZDsKPiArCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQ7Cj4g IAlzaXplX3QgbGVuZ3RoOwo+ICAJaW50IGZiX2lkLCBjaWQsIHJldCwgY3J0Y19tYXNrID0gLTE7 Cj4gIAlzdHJ1Y3QgaWd0X2ZiIGZiOwo+ICAJc3RydWN0IGttc3Rlc3RfY29ubmVjdG9yX2NvbmZp ZyBjb25maWc7Cj4gIAo+IC0Ja21zdGVzdF9lZGlkX2FkZF9hdWRpbyhpZ3Rfa21zX2dldF9iYXNl X2VkaWQoKSwgRURJRF9MRU5HVEgsICZlZGlkLAo+IC0JCQkgICAgICAgJmxlbmd0aCk7Cj4gKwll ZGlkID0gaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkKCk7Cj4gKwlsZW5ndGggPSBIRE1JX0FV RElPX0VESURfTEVOR1RIOwo+ICAKPiAgCWttc3Rlc3RfZm9yY2VfZWRpZChkcm1fZmQsIGNvbm5l Y3RvciwgZWRpZCwgbGVuZ3RoKTsKPiAgCj4gQEAgLTI2MSw4ICsyNjIsNiBAQCBoZG1pX2luamVj dF9hdWRpbyhpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICAJ a21zdGVzdF9mb3JjZV9jb25uZWN0b3IoZHJtX2ZkLCBjb25uZWN0b3IsIEZPUkNFX0NPTk5FQ1RP Ul9VTlNQRUNJRklFRCk7Cj4gIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3Is IE5VTEwsIDApOwo+IC0KPiAtCWZyZWUoZWRpZCk7Cj4gIH0KPiAgCj4gIGlndF9tYWluCj4gCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFp bGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==