From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id CF431893EC for ; Thu, 21 Feb 2019 09:43:42 +0000 (UTC) From: Dhinakaran Pandiyan Date: Wed, 20 Feb 2019 18:41:23 -0800 Message-Id: <20190221024123.17516-5-dhinakaran.pandiyan@intel.com> In-Reply-To: <20190221024123.17516-1-dhinakaran.pandiyan@intel.com> References: <20190221024123.17516-1-dhinakaran.pandiyan@intel.com> Subject: [igt-dev] [HAX 5/5] tests/kms_ccs: Generate compressed surfaces with renderopy List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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 List-ID: U2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBp bnRlbC5jb20+Ci0tLQogbGliL2lndF9mYi5jICAgIHwgICA4ICsrKwogbGliL2lndF9mYi5oICAg IHwgICAzICsKIHRlc3RzL2ttc19jY3MuYyB8IDE4MiArKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygr KSwgMTQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3Rf ZmIuYwppbmRleCA2MDcyZjcwZS4uZWE1N2QwZjAgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuYwor KysgYi9saWIvaWd0X2ZiLmMKQEAgLTY5Myw2ICs2OTMsMTQgQEAgb3V0OgogCXJldHVybiBmYi0+ Z2VtX2hhbmRsZTsKIH0KIAordm9pZCBpZ3RfY3JlYXRlX2JvX2Zvcl9mYihpbnQgZmQsIGludCB3 aWR0aCwgaW50IGhlaWdodCwKKwkJCSAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmll ciwKKwkJCSAgc3RydWN0IGlndF9mYiAqZmIgLyogb3V0ICovKSB7CisJZmJfaW5pdChmYiwgZmQs IHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsCisJCUlHVF9DT0xPUl9ZQ0JDUl9CVDcw OSwgSUdUX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0UpOworCWNyZWF0ZV9ib19mb3JfZmIoZmIp OworfQorCiAvKioKICAqIGlndF9jcmVhdGVfYm9fd2l0aF9kaW1lbnNpb25zOgogICogQGZkOiBv cGVuIGRybSBmaWxlIGRlc2NyaXB0b3IKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuaCBiL2xpYi9p Z3RfZmIuaAppbmRleCBhNWExYTJiYS4uODY0NWFiMjcgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIu aAorKysgYi9saWIvaWd0X2ZiLmgKQEAgLTE0Myw2ICsxNDMsOSBAQCBpbnQgaWd0X2RpcnR5X2Zi KGludCBmZCwgc3RydWN0IGlndF9mYiAqZmIpOwogdm9pZCAqaWd0X2ZiX21hcF9idWZmZXIoaW50 IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYik7CiB2b2lkIGlndF9mYl91bm1hcF9idWZmZXIoc3RydWN0 IGlndF9mYiAqZmIsIHZvaWQgKmJ1ZmZlcik7CiAKK3ZvaWQgaWd0X2NyZWF0ZV9ib19mb3JfZmIo aW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCisJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWlu dDY0X3QgbW9kaWZpZXIsCisJCQkgIHN0cnVjdCBpZ3RfZmIgKmZiKTsKIGludCBpZ3RfY3JlYXRl X2JvX3dpdGhfZGltZW5zaW9ucyhpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMy X3QgZm9ybWF0LAogCQkJCSAgdWludDY0X3QgbW9kaWZpZXIsIHVuc2lnbmVkIHN0cmlkZSwKIAkJ CQkgIHVpbnQ2NF90ICpzaXplX3JldCwgdW5zaWduZWQgKnN0cmlkZV9yZXQsCmRpZmYgLS1naXQg YS90ZXN0cy9rbXNfY2NzLmMgYi90ZXN0cy9rbXNfY2NzLmMKaW5kZXggNDI1OTZhNDUuLjM1NTVl ZGM5IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfY2NzLmMKKysrIGIvdGVzdHMva21zX2Njcy5jCkBA IC0xOTIsMTA0ICsxOTIsMzIgQEAgc3RhdGljIGJvb2wgcGxhbmVfaGFzX2Zvcm1hdF93aXRoX2Nj cyhkYXRhX3QgKmRhdGEsIGlndF9wbGFuZV90ICpwbGFuZSwgdWludDMyX3QKIAlyZXR1cm4gZmFs c2U7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbmRlcl9mYihkYXRhX3QgKmRhdGEsIHVpbnQzMl90IGdl bV9oYW5kbGUsIHVuc2lnbmVkIGludCBzaXplLAotCQkgICAgICBlbnVtIHRlc3RfZmJfZmxhZ3Mg ZmJfZmxhZ3MsCi0JCSAgICAgIGludCBoZWlnaHQsIHVuc2lnbmVkIGludCBzdHJpZGUpCitzdGF0 aWMgdm9pZCBhZGRmYl9pbml0KHN0cnVjdCBpZ3RfZmIgKmZiLCBzdHJ1Y3QgZHJtX21vZGVfZmJf Y21kMiAqZikKIHsKLQl1aW50MzJfdCAqcHRyOwotCXVuc2lnbmVkIGludCBoYWxmX2hlaWdodCwg aGFsZl9zaXplOwotCXVpbnQzMl90IHVuY29tcHJlc3NlZF9jb2xvciA9IGRhdGEtPnBsYW5lID8g R1JFRU4gOiBSRUQ7Ci0JdWludDMyX3QgY29tcHJlc3NlZF9jb2xvciA9Ci0JCWRhdGEtPnBsYW5l ID8gQ09NUFJFU1NFRF9HUkVFTiA6IENPTVBSRVNTRURfUkVEOwotCXVpbnQzMl90IGJhZF9jb2xv ciA9IFJFRDsKIAlpbnQgaTsKIAotCXB0ciA9IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBn ZW1faGFuZGxlLCAwLCBzaXplLAotCQkJICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOworCWYt PndpZHRoID0gZmItPndpZHRoOworCWYtPmhlaWdodCA9IGZiLT5oZWlnaHQ7CisJZi0+cGl4ZWxf Zm9ybWF0ID0gZmItPmRybV9mb3JtYXQ7CisJZi0+ZmxhZ3MgPSBMT0NBTF9EUk1fTU9ERV9GQl9N T0RJRklFUlM7CiAKLQlpZiAoZmJfZmxhZ3MgJiBGQl9DT01QUkVTU0VEKSB7Ci0JCS8qIEluIHRo ZSBjb21wcmVzc2VkIGNhc2UsIHdlIHdhbnQgdGhlIHRvcCBoYWxmIG9mIHRoZQotCQkgKiBzdXJm YWNlIHRvIGJlIHVuY29tcHJlc3NlZCBhbmQgdGhlIGJvdHRvbSBoYWxmIHRvIGJlCi0JCSAqIGNv bXByZXNzZWQuCi0JCSAqCi0JCSAqIFdlIG5lZWQgdG8gY3V0IHRoZSBzdXJmYWNlIG9uIGEgQ0NT IGNhY2hlLWxpbmUgYm91bmRhcnksCi0JCSAqIG90aGVyd2lzZSwgd2UncmUgZ29pbmcgdG8gYmUg aW4gdHJvdWJsZSB3aGVuIHdlIHRyeSB0bwotCQkgKiBnZW5lcmF0ZSBDQ1MgZGF0YSBmb3IgdGhl IHN1cmZhY2UuICBBIGNhY2hlIGxpbmUgaW4gdGhlCi0JCSAqIENDUyBpcyAxNngxNiBjYWNoZS1s aW5lLXBhaXJzIGluIHRoZSBtYWluIHN1cmZhY2UuICAxNgotCQkgKiBjYWNoZSBsaW5lcyBpcyA2 NCByb3dzIGhpZ2guCi0JCSAqLwotCQloYWxmX2hlaWdodCA9IEFMSUdOKGhlaWdodCwgMTI4KSAv IDI7Ci0JCWhhbGZfc2l6ZSA9IGhhbGZfaGVpZ2h0ICogc3RyaWRlOwotCQlmb3IgKGkgPSAwOyBp IDwgc2l6ZSAvIDQ7IGkrKykgewotCQkJaWYgKGkgPCBoYWxmX3NpemUgLyA0KQotCQkJCXB0cltp XSA9IHVuY29tcHJlc3NlZF9jb2xvcjsKLQkJCWVsc2UKLQkJCQlwdHJbaV0gPSBjb21wcmVzc2Vk X2NvbG9yOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogV2hlbiB3ZSdyZSBkaXNwbGF5aW5nIHRoZSBw cmltYXJ5IHBsYW5lIHVuZGVybmVhdGggYQotCQkgKiBzcHJpdGUgcGxhbmUsIGN1dCBvdXQgYSAx MjggeCAxMjggYXJlYSAobGVzcyB0aGFuIHRoZSBzcHJpdGUpCi0JCSAqIHBsYW5lIHNpemUgd2hp Y2ggd2UgcGFpbnQgcmVkLCBzbyB3ZSBrbm93IGVhc2lseSBpZiBpdCdzCi0JCSAqIGJhZC4KLQkJ ICovCi0JCWZvciAoaSA9IDA7IGkgPCBzaXplIC8gNDsgaSsrKSB7Ci0JCQlpZiAoKGZiX2ZsYWdz ICYgRkJfSEFTX1BMQU5FKSAmJgotCQkJICAgIChpIC8gKHN0cmlkZSAvIDQpKSA8IDEyOCAmJgot CQkJICAgIChpICUgKHN0cmlkZSAvIDQpKSA8IDEyOCkgewotCQkJCXB0cltpXSA9IGJhZF9jb2xv cjsKLQkJCX0gZWxzZSB7Ci0JCQkJcHRyW2ldID0gdW5jb21wcmVzc2VkX2NvbG9yOwotCQkJfQot CQl9CisJZm9yIChpID0gMDsgaSA8IGZiLT5udW1fcGxhbmVzOyBpKyspIHsKKwkJZi0+aGFuZGxl c1tpXSA9IGZiLT5nZW1faGFuZGxlOworCQlmLT5tb2RpZmllcltpXSA9IGZiLT5tb2RpZmllcjsK KwkJZi0+cGl0Y2hlc1tpXSA9IGZiLT5zdHJpZGVzW2ldOworCQlmLT5vZmZzZXRzW2ldID0gZmIt Pm9mZnNldHNbaV07CiAJfQotCi0JbXVubWFwKHB0ciwgc2l6ZSk7Ci19Ci0KLXN0YXRpYyB1bnNp Z25lZCBpbnQKLXlfdGlsZV95X3Bvcyh1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQg c3RyaWRlKQotewotCXVuc2lnbmVkIGludCB5X3RpbGVzLCB5OwotCXlfdGlsZXMgPSAob2Zmc2V0 IC8gNDA5NikgLyAoc3RyaWRlIC8gMTI4KTsKLQl5ID0geV90aWxlcyAqIDMyICsgKChvZmZzZXQg JiAweDFmMCkgPj4gNCk7Ci0JcmV0dXJuIHk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlbmRlcl9jY3Mo ZGF0YV90ICpkYXRhLCB1aW50MzJfdCBnZW1faGFuZGxlLAotCQkgICAgICAgdWludDMyX3Qgb2Zm c2V0LCB1aW50MzJfdCBzaXplLAotCQkgICAgICAgaW50IGhlaWdodCwgdW5zaWduZWQgaW50IGNj c19zdHJpZGUpCi17Ci0JdW5zaWduZWQgaW50IGhhbGZfaGVpZ2h0LCBjY3NfaGFsZl9oZWlnaHQ7 Ci0JdWludDhfdCAqcHRyOwotCWludCBpOwotCi0JaGFsZl9oZWlnaHQgPSBBTElHTihoZWlnaHQs IDEyOCkgLyAyOwotCWNjc19oYWxmX2hlaWdodCA9IGhhbGZfaGVpZ2h0IC8gMTY7Ci0KLQlwdHIg PSBnZW1fbW1hcF9fY3B1KGRhdGEtPmRybV9mZCwgZ2VtX2hhbmRsZSwgb2Zmc2V0LCBzaXplLAot CQkJICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwotCi0JZm9yIChpID0gMDsgaSA8IHNpemU7 IGkrKykgewotCQlpZiAoeV90aWxlX3lfcG9zKGksIGNjc19zdHJpZGUpIDwgY2NzX2hhbGZfaGVp Z2h0KQotCQkJcHRyW2ldID0gQ0NTX1VOQ09NUFJFU1NFRDsKLQkJZWxzZQotCQkJcHRyW2ldID0g Q0NTX0NPTVBSRVNTRUQ7Ci0JfQotCi0JbXVubWFwKHB0ciwgc2l6ZSk7CiB9CiAKIHN0YXRpYyB2 b2lkIGdlbmVyYXRlX2ZiKGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsCiAJCQlpbnQg d2lkdGgsIGludCBoZWlnaHQsCiAJCQllbnVtIHRlc3RfZmJfZmxhZ3MgZmJfZmxhZ3MpCiB7Ci0J c3RydWN0IGxvY2FsX2RybV9tb2RlX2ZiX2NtZDIgZiA9IHt9OwotCXVuc2lnbmVkIGludCBzaXpl WzJdOworCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIGYgPSB7fTsKKwl1aW50MzJfdCBmb3JtYXQ7 CiAJdWludDY0X3QgbW9kaWZpZXI7CisJY2Fpcm9fdCAqY3I7CiAJaW50IHJldDsKLQl1aW50MzJf dCBjY3NfaGFuZGxlOwotCi0JbWVtc2V0KGZiLCAwLCBzaXplb2YoKmZiKSk7CiAKIAkvKiBVc2Ug ZWl0aGVyIGNvbXByZXNzZWQgb3IgWS10aWxlZCB0byB0ZXN0LiBIb3dldmVyLCBnaXZlbiB0aGUg bGFjayBvZgogCSAqIGF2YWlsYWJsZSBiYW5kd2lkdGgsIHdlIHVzZSBsaW5lYXIgZm9yIHRoZSBw cmltYXJ5IHBsYW5lIHdoZW4KQEAgLTMwMyw3NCArMjMxLDQ3IEBAIHN0YXRpYyB2b2lkIGdlbmVy YXRlX2ZiKGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsCiAJZWxzZQogCQltb2RpZmll ciA9IDA7CiAKLQlmLmZsYWdzID0gTE9DQUxfRFJNX01PREVfRkJfTU9ESUZJRVJTOwotCWYud2lk dGggPSB3aWR0aDsKLQlmLmhlaWdodCA9IGhlaWdodDsKLQogCWlmIChkYXRhLT5mbGFncyAmIFRF U1RfQkFEX1BJWEVMX0ZPUk1BVCkKLQkJZi5waXhlbF9mb3JtYXQgPSBEUk1fRk9STUFUX1JHQjU2 NTsKKwkJZm9ybWF0ID0gRFJNX0ZPUk1BVF9SR0I1NjU7CiAJZWxzZQotCQlmLnBpeGVsX2Zvcm1h dCA9IERSTV9GT1JNQVRfWFJHQjg4ODg7CisJCWZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODg7 CiAKLQlmLnBpdGNoZXNbMF0gPSBBTElHTih3aWR0aCAqIDQsIDEyOCk7Ci0JZi5tb2RpZmllclsw XSA9IG1vZGlmaWVyOwotCWYub2Zmc2V0c1swXSA9IDA7Ci0Jc2l6ZVswXSA9IGYucGl0Y2hlc1sw XSAqIEFMSUdOKGhlaWdodCwgMzIpOworCWlndF9jcmVhdGVfYm9fZm9yX2ZiKGRhdGEtPmRybV9m ZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwgZmIpOworCWlndF9hc3NlcnQoZmIt PmdlbV9oYW5kbGUgPiAwKTsKIAotCWlmIChmYl9mbGFncyAmIEZCX0NPTVBSRVNTRUQpIHsKLQkJ LyogRnJvbSB0aGUgU2t5IExha2UgUFJNLCBWb2wgMTIsICJDb2xvciBDb250cm9sIFN1cmZhY2Ui OgotCQkgKgotCQkgKiAgICAiVGhlIGNvbXByZXNzaW9uIHN0YXRlIG9mIHRoZSBjYWNoZS1saW5l IHBhaXIgaXMKLQkJICogICAgc3BlY2lmaWVkIGJ5IDIgYml0cyBpbiB0aGUgQ0NTLiAgRWFjaCBD Q1MgY2FjaGUtbGluZQotCQkgKiAgICByZXByZXNlbnRzIGFuIGFyZWEgb24gdGhlIG1haW4gc3Vy ZmFjZSBvZiAxNngxNiBzZXRzCi0JCSAqICAgIG9mIDEyOCBieXRlIFktdGlsZWQgY2FjaGUtbGlu ZS1wYWlycy4gQ0NTIGlzIGFsd2F5cyBZCi0JCSAqICAgIHRpbGVkLiIKLQkJICoKLQkJICogQSAi Y2FjaGUtbGluZS1wYWlyIiBmb3IgYSBZLXRpbGVkIHN1cmZhY2UgaXMgdHdvCi0JCSAqIGhvcml6 b250YWxseSBhZGphY2VudCBjYWNoZSBsaW5lcy4gIFdoZW4gb3BlcmF0aW5nIGluCi0JCSAqIGJ5 dGVzIGFuZCByb3dzLCB0aGlzIGdpdmVzIHVzIGEgc2NhbGUtZG93biBmYWN0b3Igb2YKLQkJICog MzJ4MTYuICBTaW5jZSB0aGUgbWFpbiBzdXJmYWNlIGhhcyBhIDMyLWJpdCBmb3JtYXQsIHdlCi0J CSAqIG5lZWQgdG8gbXVsdGlwbHkgd2lkdGggYnkgNCB0byBnZXQgYnl0ZXMuCi0JCSAqLwotCQlp bnQgY2NzX3dpZHRoID0gQUxJR04od2lkdGggKiA0LCAzMikgLyAzMjsKLQkJaW50IGNjc19oZWln aHQgPSBBTElHTihoZWlnaHQsIDE2KSAvIDE2OwotCQlpbnQgY2NzX3BpdGNoZXMgPSBBTElHTihj Y3Nfd2lkdGggKiAxLCAxMjgpOwotCQlpbnQgY2NzX29mZnNldHMgPSBzaXplWzBdOworCWFkZGZi X2luaXQoZmIsICZmKTsKIAorCWlmIChmYl9mbGFncyAmIEZCX0NPTVBSRVNTRUQpIHsKIAkJaWYg KGZiX2ZsYWdzICYgRkJfTUlTQUxJR05fQVVYX1NUUklERSkgewogCQkJaWd0X3NraXBfb25fZih3 aWR0aCA8PSAxMDI0LAogCQkJCSAgICAgICJGQiBhbHJlYWR5IGhhcyB0aGUgc21hbGxlc3QgcG9z c2libGUgc3RyaWRlXG4iKTsKLQkJCWNjc19waXRjaGVzIC09IDY0OworCQkJZi5waXRjaGVzWzFd IC09IDY0OwogCQl9Ci0JCWVsc2UgaWYgKGZiX2ZsYWdzICYgRkJfU01BTExfQVVYX1NUUklERSkg eworCisJCWlmIChmYl9mbGFncyAmIEZCX1NNQUxMX0FVWF9TVFJJREUpIHsKIAkJCWlndF9za2lw X29uX2Yod2lkdGggPD0gMTAyNCwKIAkJCQkgICAgICAiRkIgYWxyZWFkeSBoYXMgdGhlIHNtYWxs ZXN0IHBvc3NpYmxlIHN0cmlkZVxuIik7Ci0JCQljY3NfcGl0Y2hlcyA9IEFMSUdOKGNjc193aWR0 aC8yLCAxMjgpOworCQkJZi5waXRjaGVzWzFdID0gQUxJR04oZi5waXRjaGVzWzFdLzIsIDEyOCk7 CiAJCX0KIAotCQlzaXplWzFdID0gY2NzX3BpdGNoZXMgKiBBTElHTihjY3NfaGVpZ2h0LCAzMik7 Ci0KLQkJZi5oYW5kbGVzWzBdID0gZ2VtX2NyZWF0ZShkYXRhLT5kcm1fZmQsIHNpemVbMF0gKyBz aXplWzFdKTsKLQkJaWYgKGRhdGEtPmZsYWdzICYgVEVTVF9CQURfQ0NTX0hBTkRMRSkgewotCQkJ LyogUHV0IHRoZSBDQ1MgYnVmZmVyIG9uIGEgZGlmZmVyZW50IEJPLiAqLwotCQkJY2NzX2hhbmRs ZSA9IGdlbV9jcmVhdGUoZGF0YS0+ZHJtX2ZkLCBzaXplWzBdICsgc2l6ZVsxXSk7Ci0JCX0gZWxz ZQotCQkJY2NzX2hhbmRsZSA9IGYuaGFuZGxlc1swXTsKKwkJaWYgKGZiX2ZsYWdzICYgRkJfWkVS T19BVVhfU1RSSURFKQorCQkJZi5waXRjaGVzWzFdID0gMDsKIAotCQlpZiAoIShkYXRhLT5mbGFn cyAmIFRFU1RfTk9fQVVYX0JVRkZFUikpIHsKLQkJCWYubW9kaWZpZXJbMV0gPSBtb2RpZmllcjsK LQkJCWYuaGFuZGxlc1sxXSA9IGNjc19oYW5kbGU7Ci0JCQlmLm9mZnNldHNbMV0gPSBjY3Nfb2Zm c2V0czsKLQkJCWYucGl0Y2hlc1sxXSA9IChmYl9mbGFncyAmIEZCX1pFUk9fQVVYX1NUUklERSk/ IDA6Y2NzX3BpdGNoZXM7CisJCS8qIFB1dCB0aGUgQ0NTIGJ1ZmZlciBvbiBhIGRpZmZlcmVudCBC Ty4gKi8KKwkJaWYgKGRhdGEtPmZsYWdzICYgVEVTVF9CQURfQ0NTX0hBTkRMRSkKKwkJCWYuaGFu ZGxlc1sxXSA9IGdlbV9jcmVhdGUoZGF0YS0+ZHJtX2ZkLCBmYi0+c2l6ZSk7CiAKLQkJCXJlbmRl cl9jY3MoZGF0YSwgZi5oYW5kbGVzWzFdLCBmLm9mZnNldHNbMV0sIHNpemVbMV0sCi0JCQkJICAg aGVpZ2h0LCBjY3NfcGl0Y2hlcyk7CisJCWlmIChkYXRhLT5mbGFncyAmIFRFU1RfTk9fQVVYX0JV RkZFUikgeworCQkJZi5oYW5kbGVzWzFdID0gMDsKKwkJCWYubW9kaWZpZXJbMV0gPSAwOworCQkJ Zi5waXRjaGVzWzFdID0gMDsKKwkJCWYub2Zmc2V0c1sxXSA9IDA7CiAJCX0KLQl9IGVsc2Ugewot CQlmLmhhbmRsZXNbMF0gPSBnZW1fY3JlYXRlKGRhdGEtPmRybV9mZCwgc2l6ZVswXSk7CiAJfQog Ci0JcmVuZGVyX2ZiKGRhdGEsIGYuaGFuZGxlc1swXSwgc2l6ZVswXSwgZmJfZmxhZ3MsIGhlaWdo dCwgZi5waXRjaGVzWzBdKTsKKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwg ZmIpOworCWlndF9wYWludF9jb2xvcihjciwgMCwgMCwgd2lkdGgsIGhlaWdodCwgMS4wLCAwLjAs IDAuMCk7CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCBmYiwgY3IpOwogCiAJcmV0 ID0gZHJtSW9jdGwoZGF0YS0+ZHJtX2ZkLCBMT0NBTF9EUk1fSU9DVExfTU9ERV9BRERGQjIsICZm KTsKIAlpZiAoZGF0YS0+ZmxhZ3MgJiBURVNUX0ZBSUxfT05fQURERkIyKSB7CkBAIC0zODEsMTcg KzI4Miw2IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlX2ZiKGRhdGFfdCAqZGF0YSwgc3RydWN0IGln dF9mYiAqZmIsCiAJCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKIAogCWZiLT5mYl9pZCA9IGYuZmJf aWQ7Ci0JZmItPmZkID0gZGF0YS0+ZHJtX2ZkOwotCWZiLT5nZW1faGFuZGxlID0gZi5oYW5kbGVz WzBdOwotCWZiLT5pc19kdW1iID0gZmFsc2U7Ci0JZmItPmRybV9mb3JtYXQgPSBmLnBpeGVsX2Zv cm1hdDsKLQlmYi0+d2lkdGggPSBmLndpZHRoOwotCWZiLT5oZWlnaHQgPSBmLmhlaWdodDsKLQlm Yi0+c3RyaWRlc1swXSA9IGYucGl0Y2hlc1swXTsKLQlmYi0+bW9kaWZpZXIgPSBmLm1vZGlmaWVy WzBdOwotCWZiLT5zaXplID0gc2l6ZVswXTsKLQlmYi0+Y2Fpcm9fc3VyZmFjZSA9IE5VTEw7Ci0J ZmItPmRvbWFpbiA9IDA7CiB9CiAKIHN0YXRpYyBib29sIHRyeV9jb25maWcoZGF0YV90ICpkYXRh LCBlbnVtIHRlc3RfZmJfZmxhZ3MgZmJfZmxhZ3MsCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==