From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5CEAB89A1E for ; Mon, 27 May 2019 12:03:36 +0000 (UTC) From: Simon Ser Date: Mon, 27 May 2019 15:03:07 +0300 Message-Id: <20190527120307.14354-4-simon.ser@intel.com> In-Reply-To: <20190527120307.14354-1-simon.ser@intel.com> References: <20190527120307.14354-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [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: igt-dev@lists.freedesktop.org Cc: martin.peres@intel.com List-ID: VGhpcyBuZXcgZnVuY3Rpb24gdXNlcyBpZ3RfZWRpZCB0byBnZW5lcmF0ZSBhbiBFRElEIHN1aXRh YmxlIGZvciB0ZXN0aW5nIEhETUkKYXVkaW8uIEl0J3MgaW1wb3J0ZWQgZnJvbSBrbXNfY2hhbWVs aXVtIHdpdGggbWlub3IgZWRpdHMsIGl0J3MgdXNlZCB0aGVyZSBhbmQKaW4ga21zX2hkbWlfaW5q ZWN0LiBBICh1bmV4cG9ydGVkIGZvciBub3cpIGdlbmVyYXRlX2hkbWlfYXVkaW9fZWRpZCBmdW5j dGlvbgplbmFibGVzIGdlbmVyYXRpb24gb2YgRURJRHMgd2l0aCBhcmJpdHJhcnkgU0FEIGFuZCBz cGVha2VyIGJsb2Nrcy4KClRoaXMgb2Jzb2xldGVzIGttc3Rlc3RfZWRpZF9hZGRfYXVkaW8uCgpU aGUgc2FuaXR5IGNoZWNrIGZvciB0aGUgSERNSSBhdWRpbyBFRElEIGhhcyBiZWVuIG1vdmVkIGZy b20KbGliL3Rlc3RzL2lndF9oZG1pX2luamVjdC5jIHRvIGxpYi90ZXN0cy9pZ3RfZWRpZC5jLgoK U2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwuY29tPgotLS0KIGxpYi9p Z3Rfa21zLmMgICAgICAgICAgICAgICB8IDEzMyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0KIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAgICB8ICAxMCArKy0KIGxpYi90ZXN0 cy9pZ3RfZWRpZC5jICAgICAgICB8ICAgMSArCiBsaWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMg fCAgIDEgLQogdGVzdHMva21zX2NoYW1lbGl1bS5jICAgICAgIHwgIDYyICstLS0tLS0tLS0tLS0t LS0tCiB0ZXN0cy9rbXNfaGRtaV9pbmplY3QuYyAgICAgfCAgIDkgKystCiA2IGZpbGVzIGNoYW5n ZWQsIDg4IGluc2VydGlvbnMoKyksIDEyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv aWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwppbmRleCBhN2RjM2FjM2ZiNjYuLmQ3ZDcxMWE3MmQy NyAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuYworKysgYi9saWIvaWd0X2ttcy5jCkBAIC0yNiw2 ICsyNiw4IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8YXNzZXJ0 Lmg+CiAjaW5jbHVkZSA8aW50dHlwZXMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRl IDxzdGRpby5oPgpAQCAtMTgwLDYgKzE4Miw3OSBAQCBjb25zdCB1bnNpZ25lZCBjaGFyICppZ3Rf a21zX2dldF9hbHRfZWRpZCh2b2lkKQogCXJldHVybiAodW5zaWduZWQgY2hhciAqKSAmZWRpZDsK IH0KIAorc3RhdGljIHZvaWQKK2dlbmVyYXRlX2hkbWlfYXVkaW9fZWRpZCh1bnNpZ25lZCBjaGFy IHJhd19lZGlkW3N0YXRpYyBIRE1JX0FVRElPX0VESURfTEVOR1RIXSwKKwkJCSBzdHJ1Y3QgY2Vh X3NhZCAqc2FkLAorCQkJIHN0cnVjdCBjZWFfc3BlYWtlcl9hbGxvYyAqc3BlYWtlcl9hbGxvYykK K3sKKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKKwlzdHJ1Y3QgZWRpZF9leHQgKmVkaWRfZXh0OworCXN0 cnVjdCBlZGlkX2NlYSAqZWRpZF9jZWE7CisJY2hhciAqY2VhX2RhdGE7CisJc3RydWN0IGVkaWRf Y2VhX2RhdGFfYmxvY2sgKmJsb2NrOworCWNvbnN0IHN0cnVjdCBjZWFfdnNkICp2c2Q7CisJc2l6 ZV90IGNlYV9kYXRhX3NpemUsIHZzZF9zaXplOworCisJLyogQ3JlYXRlIGEgbmV3IEVESUQgZnJv bSB0aGUgYmFzZSBJR1QgRURJRCwgYW5kIGFkZCBhbgorCSAqIGV4dGVuc2lvbiB0aGF0IGFkdmVy dGlzZXMgYXVkaW8gc3VwcG9ydC4gKi8KKwllZGlkID0gKHN0cnVjdCBlZGlkICopIHJhd19lZGlk OworCW1lbWNweShlZGlkLCBpZ3Rfa21zX2dldF9iYXNlX2VkaWQoKSwgc2l6ZW9mKHN0cnVjdCBl ZGlkKSk7CisJZWRpZC0+ZXh0ZW5zaW9uc19sZW4gPSAxOworCWVkaWRfZXh0ID0gJmVkaWQtPmV4 dGVuc2lvbnNbMF07CisJZWRpZF9jZWEgPSAmZWRpZF9leHQtPmRhdGEuY2VhOworCWNlYV9kYXRh ID0gZWRpZF9jZWEtPmRhdGE7CisJY2VhX2RhdGFfc2l6ZSA9IDA7CisKKwkvKiBTaG9ydCBBdWRp byBEZXNjcmlwdG9yIGJsb2NrICovCisJYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxv Y2sgKikgJmNlYV9kYXRhW2NlYV9kYXRhX3NpemVdOworCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9j ZWFfZGF0YV9ibG9ja19zZXRfc2FkKGJsb2NrLCBzYWQsIDEpOworCisJLyogQSBWZW5kb3IgU3Bl Y2lmaWMgRGF0YSBibG9jayBpcyBuZWVkZWQgZm9yIEhETUkgYXVkaW8gKi8KKwlibG9jayA9IChz dHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqKSAmY2VhX2RhdGFbY2VhX2RhdGFfc2l6ZV07CisJ dnNkID0gY2VhX3ZzZF9nZXRfaGRtaV9kZWZhdWx0KCZ2c2Rfc2l6ZSk7CisJY2VhX2RhdGFfc2l6 ZSArPSBlZGlkX2NlYV9kYXRhX2Jsb2NrX3NldF92c2QoYmxvY2ssIHZzZCwKKwkJCQkJCSAgICAg dnNkX3NpemUpOworCisJLyogU3BlYWtlciBBbGxvY2F0aW9uIERhdGEgYmxvY2sgKi8KKwlibG9j ayA9IChzdHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqKSAmY2VhX2RhdGFbY2VhX2RhdGFfc2l6 ZV07CisJY2VhX2RhdGFfc2l6ZSArPSBlZGlkX2NlYV9kYXRhX2Jsb2NrX3NldF9zcGVha2VyX2Fs bG9jKGJsb2NrLAorCQkJCQkJCSAgICAgICBzcGVha2VyX2FsbG9jKTsKKworCWFzc2VydChjZWFf ZGF0YV9zaXplIDw9IHNpemVvZihlZGlkX2NlYS0+ZGF0YSkpOworCisJZWRpZF9leHRfc2V0X2Nl YShlZGlkX2V4dCwgY2VhX2RhdGFfc2l6ZSwKKwkJCSBFRElEX0NFQV9CQVNJQ19BVURJTyk7CisK KwllZGlkX3VwZGF0ZV9jaGVja3N1bShlZGlkKTsKKwllZGlkX2V4dF91cGRhdGVfY2VhX2NoZWNr c3VtKGVkaWRfZXh0KTsKK30KKworY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfaGRt aV9hdWRpb19lZGlkKHZvaWQpCit7CisJaW50IGNoYW5uZWxzOworCXVpbnQ4X3Qgc2FtcGxpbmdf cmF0ZXMsIHNhbXBsZV9zaXplczsKKwlzdGF0aWMgdW5zaWduZWQgY2hhciByYXdfZWRpZFtIRE1J X0FVRElPX0VESURfTEVOR1RIXSA9IHswfTsKKwlzdHJ1Y3QgY2VhX3NhZCBzYWQgPSB7MH07CisJ c3RydWN0IGNlYV9zcGVha2VyX2FsbG9jIHNwZWFrZXJfYWxsb2MgPSB7MH07CisKKwkvKiBJbml0 aWFsaXplIHRoZSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9yIGZvciBQQ00gKi8KKwljaGFubmVscyA9 IDI7CisJc2FtcGxpbmdfcmF0ZXMgPSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVfMzJLSFogfAorCQkJ IENFQV9TQURfU0FNUExJTkdfUkFURV80NEtIWiB8CisJCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRF XzQ4S0haOworCXNhbXBsZV9zaXplcyA9IENFQV9TQURfU0FNUExFX1NJWkVfMTYgfAorCQkgICAg ICAgQ0VBX1NBRF9TQU1QTEVfU0laRV8yMCB8CisJCSAgICAgICBDRUFfU0FEX1NBTVBMRV9TSVpF XzI0OworCWNlYV9zYWRfaW5pdF9wY20oJnNhZCwgY2hhbm5lbHMsIHNhbXBsaW5nX3JhdGVzLCBz YW1wbGVfc2l6ZXMpOworCisJLyogSW5pdGlhbGl6ZSB0aGUgU3BlYWtlciBBbGxvY2F0aW9uIERh dGEgKi8KKwlzcGVha2VyX2FsbG9jLnNwZWFrZXJzID0gQ0VBX1NQRUFLRVJfRlJPTlRfTEVGVF9S SUdIVF9DRU5URVI7CisKKwlnZW5lcmF0ZV9oZG1pX2F1ZGlvX2VkaWQocmF3X2VkaWQsICZzYWQs ICZzcGVha2VyX2FsbG9jKTsKKworCXJldHVybiByYXdfZWRpZDsKK30KKwogY29uc3QgY2hhciAq IGNvbnN0IGlndF9wbGFuZV9wcm9wX25hbWVzW0lHVF9OVU1fUExBTkVfUFJPUFNdID0gewogCVtJ R1RfUExBTkVfU1JDX1hdID0gIlNSQ19YIiwKIAlbSUdUX1BMQU5FX1NSQ19ZXSA9ICJTUkNfWSIs CkBAIC0xMzU2LDY0ICsxNDMxLDYgQEAgdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzRrKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsCiAJdXBkYXRlX2VkaWRfY3N1bShuZXdf ZWRpZC5kYXRhLCBsZW5ndGgpOwogfQogCi0vKioKLSAqIGttc3Rlc3RfZWRpZF9hZGRfYXVkaW86 Ci0gKiBAZWRpZDogYW4gZXhpc3RpbmcgdmFsaWQgZWRpZCBibG9jawotICogQGxlbmd0aDogbGVu Z3RoIG9mIEBlZGlkCi0gKiBAbmV3X2VkaWRfcHRyOiBwb2ludGVyIHRvIHdoZXJlIHRoZSBuZXcg ZWRpZCB3aWxsIGJlIHBsYWNlZAotICogQG5ld19sZW5ndGg6IHBvaW50ZXIgdG8gdGhlIHNpemUg b2YgdGhlIG5ldyBlZGlkCi0gKgotICogTWFrZXMgYSBjb3B5IG9mIGFuIGV4aXN0aW5nIGVkaWQg YmxvY2sgYW5kIGFkZHMgYW4gZXh0ZW5zaW9uIGluZGljYXRpbmcKLSAqIGJhc2ljIGF1ZGlvIHN1 cHBvcnQgYW5kIHNwZWFrZXIgZGF0YSBibG9jay4KLSAqCi0gKi8KLXZvaWQga21zdGVzdF9lZGlk X2FkZF9hdWRpbyhjb25zdCB1bnNpZ25lZCBjaGFyICplZGlkLCBzaXplX3QgbGVuZ3RoLAotCQkJ ICAgIHVuc2lnbmVkIGNoYXIgKm5ld19lZGlkX3B0cltdLCBzaXplX3QgKm5ld19sZW5ndGgpCi17 Ci0JY2hhciB2c2RiX2Jsb2NrX2xlbiA9IDEwLCBhdWRpb19ibG9ja19sZW4gPSA0LCBzcGtyX2Js b2NrX2xlbiA9IDQ7Ci0Jc3RydWN0IGVkaWRfYmxvY2sgbmV3X2VkaWQgPSBpbml0X2NlYV9ibG9j ayhlZGlkLCBsZW5ndGgsIG5ld19lZGlkX3B0ciwKLQkJCQkJCSAgICBuZXdfbGVuZ3RoLAotCQkJ CQkJICAgIHZzZGJfYmxvY2tfbGVuICsKLQkJCQkJCSAgICBhdWRpb19ibG9ja19sZW4gKwotCQkJ CQkJICAgIHNwa3JfYmxvY2tfbGVuLAotCQkJCQkJICAgIERURF9TVVBQT1JUU19BVURJTyk7Ci0J aW50IHBvcyA9IG5ld19lZGlkLnBvczsKLQotCS8qIGF1ZGlvIGJsb2NrLCBzaG9ydCBhdWRpbyBi bG9jayBkZXNjcmlwdG9ycyAgKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9ICgxIDw8IDUpIHwg KGF1ZGlvX2Jsb2NrX2xlbiAtIDEpOwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwOTsgLyog QXVkaW8gRm9ybWF0LCBQQ00gKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDc7IC8qIEZy ZXF1ZW5jeSwgMzIsIDQ0LjEsIDQ4a0h6ICAqLwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgw NzsgLyogQml0IFJhdGUgMTYsIDIwLCAyNCBiaXQgKi8KLQotCi0JLyogdnNkYiBibG9jayAoIGlk IHwgbGVuZ3RoICkgLS0gbmVlZCB2c2RiIGFzIHdlbGwKLQkgKiBvdGhlcndpc2UgdGhlIGtlcm5l bCB3aWxsIGZhbGxiYWNrIHRvIGxvd2VyIGNsb2NrIG1vZGVzICovCi0JbmV3X2VkaWQuZGF0YVtw b3MrK10gPSAzIDw8IDUgfCAodnNkYl9ibG9ja19sZW4gLSAxKTsKLQkvKiByZWdpc3RyYXRpb24g aWQgKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MzsKLQluZXdfZWRpZC5kYXRhW3Bvcysr XSA9IDB4YzsKLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDsKLQkvKiBzb3VyY2UgcGh5c2lj YWwgYWRkcmVzcyAqLwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgxMDsKLQluZXdfZWRpZC5k YXRhW3BvcysrXSA9IDB4MDA7Ci0JLyogU3VwcG9ydHNfQUkgLi4uIGV0YyAqLwotCW5ld19lZGlk LmRhdGFbcG9zKytdID0gMHgwMDsKLQkvKiBNYXggVE1EUyBDbG9jayAqLwotCW5ld19lZGlkLmRh dGFbcG9zKytdID0gMHgwMDsKLQkvKiBMYXRlbmN5IHByZXNlbnQsIEhETUkgVmlkZW8gUHJlc2Vu dCAqLwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgyMDsKLQkvKiBIRE1JIFZpZGVvICovCi0J bmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDAwOyAvKiAzRCBwcmVzZW50ICovCi0KLQkvKiBzcGVh a2VyIGRhdGEgYmxvY2sgKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9ICg0IDw8IDUpIHwgKHNw a3JfYmxvY2tfbGVuIC0gMSk7Ci0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAoMSA8PCA1KTsKLQlu ZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDA7Ci0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDAw OwotCi0JdXBkYXRlX2VkaWRfY3N1bShuZXdfZWRpZC5kYXRhLCBsZW5ndGgpOwotfQotCiAvKioK ICAqIGttc3Rlc3RfdW5zZXRfYWxsX2NydGNzOgogICogQGRybV9mZDogdGhlIERSTSBmZApkaWZm IC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21zLmgKaW5kZXggMzhiZGMwOGYzZDUw Li40YWMyODEzMWI2ZDkgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmgKKysrIGIvbGliL2lndF9r bXMuaApAQCAtMTk2LDcgKzE5Niw2IEBAIGJvb2wga21zdGVzdF9mb3JjZV9jb25uZWN0b3IoaW50 IGZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkgICAgIGVudW0ga21zdGVzdF9m b3JjZV9jb25uZWN0b3Jfc3RhdGUgc3RhdGUpOwogdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzNkKGNv bnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGNoYXIgKm5l d19lZGlkX3B0cltdLCBzaXplX3QgKm5ld19sZW5ndGgpOwogdm9pZCBrbXN0ZXN0X2VkaWRfYWRk XzRrKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGNo YXIgKm5ld19lZGlkX3B0cltdLCBzaXplX3QgKm5ld19sZW5ndGgpOwotdm9pZCBrbXN0ZXN0X2Vk aWRfYWRkX2F1ZGlvKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsIHVu c2lnbmVkIGNoYXIgKm5ld19lZGlkX3B0cltdLCBzaXplX3QgKm5ld19sZW5ndGgpOwogdm9pZCBr bXN0ZXN0X2ZvcmNlX2VkaWQoaW50IGRybV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9y LAogCQkJY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCk7CiAKQEAgLTc1 NCw5ICs3NTMsMTQgQEAgdm9pZCBpZ3RfcmVzZXRfY29ubmVjdG9ycyh2b2lkKTsKIAogdWludDMy X3Qga21zdGVzdF9nZXRfdmJsX2ZsYWcodWludDMyX3QgcGlwZV9pZCk7CiAKK3N0cnVjdCBjZWFf c2FkOworc3RydWN0IGNlYV9zcGVha2VyX2FsbG9jOworCiAjZGVmaW5lIEVESURfTEVOR1RIIDEy OAotY29uc3QgdW5zaWduZWQgY2hhciogaWd0X2ttc19nZXRfYmFzZV9lZGlkKHZvaWQpOwotY29u c3QgdW5zaWduZWQgY2hhciogaWd0X2ttc19nZXRfYWx0X2VkaWQodm9pZCk7CisjZGVmaW5lIEhE TUlfQVVESU9fRURJRF9MRU5HVEggKDIgKiBFRElEX0xFTkdUSCkKK2NvbnN0IHVuc2lnbmVkIGNo YXIgKmlndF9rbXNfZ2V0X2Jhc2VfZWRpZCh2b2lkKTsKK2NvbnN0IHVuc2lnbmVkIGNoYXIgKmln dF9rbXNfZ2V0X2FsdF9lZGlkKHZvaWQpOworY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19n ZXRfaGRtaV9hdWRpb19lZGlkKHZvaWQpOwogCiBzdHJ1Y3QgdWRldl9tb25pdG9yICppZ3Rfd2F0 Y2hfaG90cGx1Zyh2b2lkKTsKIGJvb2wgaWd0X2hvdHBsdWdfZGV0ZWN0ZWQoc3RydWN0IHVkZXZf bW9uaXRvciAqbW9uLApkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9lZGlkLmMgYi9saWIvdGVz dHMvaWd0X2VkaWQuYwppbmRleCA2Y2Y2YjVjMTRiNTMuLmE4NDdkZjI3MjUyNSAxMDA2NDQKLS0t IGEvbGliL3Rlc3RzL2lndF9lZGlkLmMKKysrIGIvbGliL3Rlc3RzL2lndF9lZGlkLmMKQEAgLTc1 LDYgKzc1LDcgQEAgaWd0X3NpbXBsZV9tYWluCiAJfSBmdW5jc1tdID0gewogCQl7ICJiYXNlIiwg aWd0X2ttc19nZXRfYmFzZV9lZGlkLCAwIH0sCiAJCXsgImFsdCIsIGlndF9rbXNfZ2V0X2FsdF9l ZGlkLCAwIH0sCisJCXsgImhkbWlfYXVkaW8iLCBpZ3Rfa21zX2dldF9oZG1pX2F1ZGlvX2VkaWQs IDEgfSwKIAkJezB9LAogCX0sICpmOwogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQ7CmRpZmYg LS1naXQgYS9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMgYi9saWIvdGVzdHMvaWd0X2hkbWlf aW5qZWN0LmMKaW5kZXggOWI2NzgwYTE0YWE2Li4yNTM0YjFhMjNhY2IgMTAwNjQ0Ci0tLSBhL2xp Yi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYworKysgYi9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0 LmMKQEAgLTczLDcgKzczLDYgQEAgaWd0X3NpbXBsZV9tYWluCiAJfSBmdW5jc1tdID0gewogCQl7 ICIzRCIsIGttc3Rlc3RfZWRpZF9hZGRfM2QgfSwKIAkJeyAiNGsiLCBrbXN0ZXN0X2VkaWRfYWRk XzRrIH0sCi0JCXsgImF1ZGlvIiwga21zdGVzdF9lZGlkX2FkZF9hdWRpbyB9LAogCQl7IE5VTEws IE5VTEwgfSwKIAl9LCAqZjsKIApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NoYW1lbGl1bS5jIGIv dGVzdHMva21zX2NoYW1lbGl1bS5jCmluZGV4IDhkYTZlYzIwNzU5ZS4uZTc1Nzg2ZDMzNzY1IDEw MDY0NAotLS0gYS90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKKysrIGIvdGVzdHMva21zX2NoYW1lbGl1 bS5jCkBAIC0xNzQwLDY2ICsxNzQwLDYgQEAgdGVzdF9ocGRfc3Rvcm1fZGlzYWJsZShkYXRhX3Qg KmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwgaW50IHdpZHRoKQogCWlndF9ocGRf c3Rvcm1fcmVzZXQoZGF0YS0+ZHJtX2ZkKTsKIH0KIAotI2RlZmluZSBIRE1JX0FVRElPX0VESURf U0laRSAoc2l6ZW9mKHN0cnVjdCBlZGlkKSArIHNpemVvZihzdHJ1Y3QgZWRpZF9leHQpKQotCi1z dGF0aWMgdW5zaWduZWQgY29uc3QgY2hhciAqZ2V0X2hkbWlfYXVkaW9fZWRpZCh2b2lkKQotewot CWludCBjaGFubmVsczsKLQl1aW50OF90IHNhbXBsaW5nX3JhdGVzLCBzYW1wbGVfc2l6ZXM7Ci0J c3RhdGljIHVuc2lnbmVkIGNoYXIgcmF3X2VkaWRbSERNSV9BVURJT19FRElEX1NJWkVdID0gezB9 OwotCXN0cnVjdCBlZGlkICplZGlkOwotCXN0cnVjdCBlZGlkX2V4dCAqZWRpZF9leHQ7Ci0Jc3Ry dWN0IGVkaWRfY2VhICplZGlkX2NlYTsKLQljaGFyICpjZWFfZGF0YTsKLQlzdHJ1Y3QgZWRpZF9j ZWFfZGF0YV9ibG9jayAqYmxvY2s7Ci0Jc3RydWN0IGNlYV9zYWQgc2FkID0gezB9OwotCWNvbnN0 IHN0cnVjdCBjZWFfdnNkICp2c2Q7Ci0Jc2l6ZV90IGNlYV9kYXRhX3NpemUsIHZzZF9zaXplOwot Ci0JLyogSW5pdGlhbGl6ZSB0aGUgU2hvcnQgQXVkaW8gRGVzY3JpcHRvciBmb3IgUENNICovCi0J Y2hhbm5lbHMgPSAyOyAvKiBUT0RPOiBzcGVha2VyIGFsbG9jIGJsb2NrcyBmb3IgPiAyIGNoYW5u ZWxzICovCi0Jc2FtcGxpbmdfcmF0ZXMgPSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVfMzJLSFogfAot CQkJIENFQV9TQURfU0FNUExJTkdfUkFURV80NEtIWiB8Ci0JCQkgQ0VBX1NBRF9TQU1QTElOR19S QVRFXzQ4S0haIHwKLQkJCSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVfODhLSFogfAotCQkJIENFQV9T QURfU0FNUExJTkdfUkFURV85NktIWiB8Ci0JCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzE3NktI WiB8Ci0JCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzE5MktIWjsKLQlzYW1wbGVfc2l6ZXMgPSBD RUFfU0FEX1NBTVBMRV9TSVpFXzE2IHwKLQkJICAgICAgIENFQV9TQURfU0FNUExFX1NJWkVfMjAg fAotCQkgICAgICAgQ0VBX1NBRF9TQU1QTEVfU0laRV8yNDsKLQljZWFfc2FkX2luaXRfcGNtKCZz YWQsIGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlcywgc2FtcGxlX3NpemVzKTsKLQotCS8qIENyZWF0 ZSBhIG5ldyBFRElEIGZyb20gdGhlIGJhc2UgSUdUIEVESUQsIGFuZCBhZGQgYW4KLQkgKiBleHRl bnNpb24gdGhhdCBhZHZlcnRpc2VzIGF1ZGlvIHN1cHBvcnQuICovCi0JZWRpZCA9IChzdHJ1Y3Qg ZWRpZCAqKSByYXdfZWRpZDsKLQltZW1jcHkoZWRpZCwgaWd0X2ttc19nZXRfYmFzZV9lZGlkKCks IHNpemVvZihzdHJ1Y3QgZWRpZCkpOwotCWVkaWQtPmV4dGVuc2lvbnNfbGVuID0gMTsKLQllZGlk X2V4dCA9ICZlZGlkLT5leHRlbnNpb25zWzBdOwotCWVkaWRfY2VhID0gJmVkaWRfZXh0LT5kYXRh LmNlYTsKLQljZWFfZGF0YSA9IGVkaWRfY2VhLT5kYXRhOwotCWNlYV9kYXRhX3NpemUgPSAwOwot Ci0JYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9kYXRhW2NlYV9k YXRhX3NpemVdOwotCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9ja19zZXRfc2Fk KGJsb2NrLCAmc2FkLCAxKTsKLQotCS8qIEEgVmVuZG9yIFNwZWNpZmljIERhdGEgYmxvY2sgaXMg bmVlZGVkIGZvciBIRE1JIGF1ZGlvICovCi0JYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFf YmxvY2sgKikgJmNlYV9kYXRhW2NlYV9kYXRhX3NpemVdOwotCXZzZCA9IGNlYV92c2RfZ2V0X2hk bWlfZGVmYXVsdCgmdnNkX3NpemUpOwotCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9i bG9ja19zZXRfdnNkKGJsb2NrLCB2c2QsCi0JCQkJCQkgICAgIHZzZF9zaXplKTsKLQotCWlndF9h c3NlcnQoY2VhX2RhdGFfc2l6ZSA8PSBzaXplb2YoZWRpZF9jZWEtPmRhdGEpKTsKLQotCWVkaWRf ZXh0X3NldF9jZWEoZWRpZF9leHQsIGNlYV9kYXRhX3NpemUsCi0JCQkgRURJRF9DRUFfQkFTSUNf QVVESU8pOwotCi0JZWRpZF91cGRhdGVfY2hlY2tzdW0oZWRpZCk7Ci0JZWRpZF9leHRfdXBkYXRl X2NlYV9jaGVja3N1bShlZGlkX2V4dCk7Ci0KLQlyZXR1cm4gcmF3X2VkaWQ7Ci19Ci0KIHN0YXRp YyBjb25zdCB1bnNpZ25lZCBjaGFyICpnZXRfZWRpZChlbnVtIHRlc3RfZWRpZCBlZGlkKQogewog CXN3aXRjaCAoZWRpZCkgewpAQCAtMTgxMSw3ICsxNzUxLDcgQEAgc3RhdGljIGNvbnN0IHVuc2ln bmVkIGNoYXIgKmdldF9lZGlkKGVudW0gdGVzdF9lZGlkIGVkaWQpCiAJY2FzZSBURVNUX0VESURf QUxUOgogCQlyZXR1cm4gaWd0X2ttc19nZXRfYWx0X2VkaWQoKTsKIAljYXNlIFRFU1RfRURJRF9I RE1JX0FVRElPOgotCQlyZXR1cm4gZ2V0X2hkbWlfYXVkaW9fZWRpZCgpOworCQlyZXR1cm4gaWd0 X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkKCk7CiAJfQogCWFzc2VydCgwKTsgLyogdW5yZWFjaGFi bGUgKi8KIH0KZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jIGIvdGVzdHMva21z X2hkbWlfaW5qZWN0LmMKaW5kZXggYTI0MDYxMDQyYzIwLi40N2Y1ZWYyYzU1OGEgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jCisrKyBiL3Rlc3RzL2ttc19oZG1pX2luamVjdC5j CkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlICJpZ3Qu aCIKKyNpbmNsdWRlICJpZ3RfZWRpZC5oIgogCiAjZGVmaW5lIEhESVNQTEFZXzRLCTM4NDAKICNk ZWZpbmUgVkRJU1BMQVlfNEsJMjE2MApAQCAtMjExLDE0ICsyMTIsMTQgQEAgZWxkX2lzX3ZhbGlk KHZvaWQpCiBzdGF0aWMgdm9pZAogaGRtaV9pbmplY3RfYXVkaW8oaW50IGRybV9mZCwgZHJtTW9k ZUNvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXVuc2lnbmVkIGNoYXIgKmVkaWQ7CisJY29uc3Qg dW5zaWduZWQgY2hhciAqZWRpZDsKIAlzaXplX3QgbGVuZ3RoOwogCWludCBmYl9pZCwgY2lkLCBy ZXQsIGNydGNfbWFzayA9IC0xOwogCXN0cnVjdCBpZ3RfZmIgZmI7CiAJc3RydWN0IGttc3Rlc3Rf Y29ubmVjdG9yX2NvbmZpZyBjb25maWc7CiAKLQlrbXN0ZXN0X2VkaWRfYWRkX2F1ZGlvKGlndF9r bXNfZ2V0X2Jhc2VfZWRpZCgpLCBFRElEX0xFTkdUSCwgJmVkaWQsCi0JCQkgICAgICAgJmxlbmd0 aCk7CisJZWRpZCA9IGlndF9rbXNfZ2V0X2hkbWlfYXVkaW9fZWRpZCgpOworCWxlbmd0aCA9IEhE TUlfQVVESU9fRURJRF9MRU5HVEg7CiAKIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25u ZWN0b3IsIGVkaWQsIGxlbmd0aCk7CiAKQEAgLTI2MSw4ICsyNjIsNiBAQCBoZG1pX2luamVjdF9h dWRpbyhpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpCiAKIAlrbXN0ZXN0 X2ZvcmNlX2Nvbm5lY3Rvcihkcm1fZmQsIGNvbm5lY3RvciwgRk9SQ0VfQ09OTkVDVE9SX1VOU1BF Q0lGSUVEKTsKIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIE5VTEwsIDAp OwotCi0JZnJlZShlZGlkKTsKIH0KIAogaWd0X21haW4KLS0gCjIuMjEuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QK aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2