From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Deepak Rawat Date: Thu, 27 Sep 2018 17:43:49 -0700 Message-ID: <20180928004350.2346-6-drawat@vmware.com> In-Reply-To: <20180928004350.2346-1-drawat@vmware.com> References: <20180928004350.2346-1-drawat@vmware.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH i-g-t 6/7] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Deepak Rawat List-ID: U29tZSBzaW1wbGUgdGVzdCBjYXNlcyB0byB1c2UgRkJfREFNQUdFX0NMSVBTIHBsYW5lIHByb3Bl cnR5LgoKU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRAdm13YXJlLmNvbT4KLS0t CiBsaWIvaWd0X2ttcy5jICAgICAgfCAgIDEgKwogbGliL2lndF9rbXMuaCAgICAgIHwgICAxICsK IHRlc3RzL2ttc19hdG9taWMuYyB8IDI2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjYyIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwppbmRleCA2YzZjNjQ0MS4uMmRl NGIzNWMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIvbGliL2lndF9rbXMuYwpAQCAt MTc1LDYgKzE3NSw3IEBAIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfcGxhbmVfcHJvcF9uYW1lc1tJ R1RfTlVNX1BMQU5FX1BST1BTXSA9IHsKIAlbSUdUX1BMQU5FX0lOX0ZPUk1BVFNdID0gIklOX0ZP Uk1BVFMiLAogCVtJR1RfUExBTkVfQ09MT1JfRU5DT0RJTkddID0gIkNPTE9SX0VOQ09ESU5HIiwK IAlbSUdUX1BMQU5FX0NPTE9SX1JBTkdFXSA9ICJDT0xPUl9SQU5HRSIsCisJW0lHVF9QTEFORV9G Ql9EQU1BR0VfQ0xJUFNdID0gIkZCX0RBTUFHRV9DTElQUyIsCiB9OwogCiBjb25zdCBjaGFyICog Y29uc3QgaWd0X2NydGNfcHJvcF9uYW1lc1tJR1RfTlVNX0NSVENfUFJPUFNdID0gewpkaWZmIC0t Z2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21zLmgKaW5kZXggNTc1NGFjNjYuLmJlZTBi N2U0IDEwMDY0NAotLS0gYS9saWIvaWd0X2ttcy5oCisrKyBiL2xpYi9pZ3Rfa21zLmgKQEAgLTI2 Nyw2ICsyNjcsNyBAQCBlbnVtIGlndF9hdG9taWNfcGxhbmVfcHJvcGVydGllcyB7CiAgICAgICAg SUdUX1BMQU5FX0lOX0ZPUk1BVFMsCiAgICAgICAgSUdUX1BMQU5FX0NPTE9SX0VOQ09ESU5HLAog ICAgICAgIElHVF9QTEFORV9DT0xPUl9SQU5HRSwKKyAgICAgICBJR1RfUExBTkVfRkJfREFNQUdF X0NMSVBTLAogICAgICAgIElHVF9OVU1fUExBTkVfUFJPUFMKIH07CiAKZGlmZiAtLWdpdCBhL3Rl c3RzL2ttc19hdG9taWMuYyBiL3Rlc3RzL2ttc19hdG9taWMuYwppbmRleCBhYzAyYmFmMC4uOGMy M2FmMzUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19hdG9taWMuYworKysgYi90ZXN0cy9rbXNfYXRv bWljLmMKQEAgLTU2LDYgKzU2LDI0IEBACiAKIElHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IGF0 b21pYyBtb2Rlc2V0dGluZyBBUEkiKTsKIAorLyogc2lnbmVkMzIgZHJtX21vZGVfcmVjdCBkZWNs YXJlZCBoZXJlIGZvciB1c2Ugd2l0aCBkcm0gZGFtYWdlIGZvciBwYWdlLWZsaXAgKi8KK3N0cnVj dCBkYW1hZ2VfcmVjdCB7CisJaW50IHgxOworCWludCB5MTsKKwlpbnQgeDI7CisJaW50IHkyOwor fTsKKworc3RhdGljIGlubGluZSBpbnQgZGFtYWdlX3JlY3Rfd2lkdGgoc3RydWN0IGRhbWFnZV9y ZWN0ICpyKQoreworCXJldHVybiByLT54MiAtIHItPngxOworfQorCitzdGF0aWMgaW5saW5lIGlu dCBkYW1hZ2VfcmVjdF9oZWlnaHQoc3RydWN0IGRhbWFnZV9yZWN0ICpyKQoreworCXJldHVybiBy LT55MiAtIHItPnkxOworfQorCiBlbnVtIGttc19hdG9taWNfY2hlY2tfcmVsYXggewogCUFUT01J Q19SRUxBWF9OT05FID0gMCwKIAlDUlRDX1JFTEFYX01PREUgPSAoMSA8PCAwKSwKQEAgLTgzNSw2 ICs4NTMsMjQwIEBAIHN0YXRpYyB2b2lkIGF0b21pY19pbnZhbGlkX3BhcmFtcyhpZ3RfcGlwZV90 ICpwaXBlLAogCWRvX2lvY3RsX2VycihkaXNwbGF5LT5kcm1fZmQsIERSTV9JT0NUTF9NT0RFX0FU T01JQywgJmlvYywgRUZBVUxUKTsKIH0KIAorc3RhdGljIHZvaWQgYXRvbWljX3BsYW5lX2RhbWFn ZShpZ3RfcGlwZV90ICpwaXBlLCBpZ3RfcGxhbmVfdCAqcGxhbmUsIHN0cnVjdCBpZ3RfZmIgKmZi KQoreworCXN0cnVjdCBkYW1hZ2VfcmVjdCAqZGFtYWdlOworCXN0cnVjdCBpZ3RfZmIgZmJfMTsK KwlzdHJ1Y3QgaWd0X2ZiIGZiXzI7CisJY2Fpcm9fdCAqY3JfMTsKKwljYWlyb190ICpjcl8yOwor CisJZGFtYWdlID0gbWFsbG9jKHNpemVvZigqZGFtYWdlKSAqIDIpOworCWlndF9hc3NlcnQoZGFt YWdlKTsKKworCS8qIENvbG9yIGZiIHdpdGggd2hpdGUgcmVjdCBhdCBjZW50ZXIgKi8KKwlpZ3Rf Y3JlYXRlX2NvbG9yX2ZiKHBpcGUtPmRpc3BsYXktPmRybV9mZCwgZmItPndpZHRoLCBmYi0+aGVp Z2h0LAorCQkJICAgIGZiLT5kcm1fZm9ybWF0LCBJOTE1X1RJTElOR19OT05FLCAwLjIsIDAuMiwg MC4yLAorCQkJICAgICZmYl8xKTsKKwljcl8xID0gaWd0X2dldF9jYWlyb19jdHgocGlwZS0+ZGlz cGxheS0+ZHJtX2ZkLCAmZmJfMSk7CisJaWd0X3BhaW50X2NvbG9yKGNyXzEsIGZiLT53aWR0aC80 LCBmYi0+aGVpZ2h0LzQsIGZiLT53aWR0aC8yLAorCQkJZmItPmhlaWdodC8yLCAxLjAsIDEuMCwg MS4wKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xLCBj cl8xKTsKKworCS8qCisJICogRmxpcCB0aGUgcHJpbWFyeSBwbGFuZSB0byBuZXcgY29sb3IgZmIg dXNpbmcgYXRvbWljIEFQSSBhbmQgY2hlY2sgdGhlCisJICogc3RhdGUuCisJICovCisJaWd0X3Bs YW5lX3NldF9mYihwbGFuZSwgJmZiXzEpOworCWNydGNfY29tbWl0KHBpcGUsIHBsYW5lLCBDT01N SVRfQVRPTUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7CisKKwkvKgorCSAqIENoYW5nZSB0aGUgY29s b3Igb2YgdG9wIGxlZnQgY2xpcCBmcm9tIGNlbnRlciBhbmQgaXNzdWUgcGxhbmUgdXBkYXRlCisJ ICogd2l0aCBkYW1hZ2UgYW5kIHZlcmlmeSB0aGUgc3RhdGUuCisJICovCisJZGFtYWdlWzBdLngx ID0gMDsKKwlkYW1hZ2VbMF0ueTEgPSAwOworCWRhbWFnZVswXS54MiA9IGZiLT53aWR0aC8yOwor CWRhbWFnZVswXS55MiA9IGZiLT5oZWlnaHQvMjsKKworCWNyXzEgPSBpZ3RfZ2V0X2NhaXJvX2N0 eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwg ZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0ueTEsCisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdl WzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hlaWdodCgmZGFtYWdlWzBdKSwgMS4wLCAwLCAwKTsKKwlp Z3RfcHV0X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xLCBjcl8xKTsKKwor CWlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZmYl8xKTsKKwlpZ3RfcGxhbmVfcmVwbGFjZV9wcm9w X2Jsb2IocGxhbmUsIElHVF9QTEFORV9GQl9EQU1BR0VfQ0xJUFMsIGRhbWFnZSwKKwkJCQkgICAg c2l6ZW9mKCpkYW1hZ2UpKTsKKwljcnRjX2NvbW1pdChwaXBlLCBwbGFuZSwgQ09NTUlUX0FUT01J QywgQVRPTUlDX1JFTEFYX05PTkUpOworCisJLyoKKwkgKiBDaGFuZ2UgdGhlIGNvbG9yIG9mIHRv cCBsZWZ0IGFuZCBib3R0b20gcmlnaHQgY2xpcCBmcm9tIGNlbnRlciBhbmQKKwkgKiBpc3N1ZSBw bGFuZSB1cGRhdGUgd2l0aCBkYW1hZ2UgYW5kIHZlcmlmeSB0aGUgc3RhdGUuCisJICovCisJZGFt YWdlWzBdLngxID0gMDsKKwlkYW1hZ2VbMF0ueTEgPSAwOworCWRhbWFnZVswXS54MiA9IGZiLT53 aWR0aC8yOworCWRhbWFnZVswXS55MiA9IGZiLT5oZWlnaHQvMjsKKworCWRhbWFnZVsxXS54MSA9 IGZiLT53aWR0aC8yOworCWRhbWFnZVsxXS55MSA9IGZiLT5oZWlnaHQvMjsKKwlkYW1hZ2VbMV0u eDIgPSBmYi0+d2lkdGg7CisJZGFtYWdlWzFdLnkyID0gZmItPmhlaWdodDsKKworCWNyXzEgPSBp Z3RfZ2V0X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xKTsKKwlpZ3RfcGFp bnRfY29sb3IoY3JfMSwgZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0ueTEsCisJCQlkYW1hZ2VfcmVj dF93aWR0aCgmZGFtYWdlWzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hlaWdodCgmZGFtYWdlWzBdKSwg MS4wLCAwLCAxLjApOworCWlndF9wYWludF9jb2xvcihjcl8xLCBkYW1hZ2VbMV0ueDEsIGRhbWFn ZVsxXS55MSwKKwkJCWRhbWFnZV9yZWN0X3dpZHRoKCZkYW1hZ2VbMV0pLAorCQkJZGFtYWdlX3Jl Y3RfaGVpZ2h0KCZkYW1hZ2VbMV0pLCAwLCAwLCAxLjApOworCWlndF9wdXRfY2Fpcm9fY3R4KHBp cGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEsIGNyXzEpOworCisJaWd0X3BsYW5lX3NldF9mYihw bGFuZSwgJmZiXzEpOworCWlndF9wbGFuZV9yZXBsYWNlX3Byb3BfYmxvYihwbGFuZSwgSUdUX1BM QU5FX0ZCX0RBTUFHRV9DTElQUywgZGFtYWdlLAorCQkJCSAgICBzaXplb2YoKmRhbWFnZSkgKiAy KTsKKwljcnRjX2NvbW1pdChwaXBlLCBwbGFuZSwgQ09NTUlUX0FUT01JQywgQVRPTUlDX1JFTEFY X05PTkUpOworCisJLyoKKwkgKiBJc3N1ZSBhIHBsYW5lIHVwZGF0ZSB3aXRoIGRhbWFnZSBvbiBh IHNlcGVyYXRlIGZiIHdpdGggZGFtYWdlIHRvCisJICogdXBwZXIgcmlnaHQgY2xpcCBmcm9tIGNl bnRlci4KKwkgKi8KKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKHBpcGUtPmRpc3BsYXktPmRybV9mZCwg ZmItPndpZHRoLCBmYi0+aGVpZ2h0LAorCQkJICAgIGZiLT5kcm1fZm9ybWF0LCBJOTE1X1RJTElO R19OT05FLCAwLjIsIDAuMiwgMC4yLAorCQkJICAgICZmYl8yKTsKKworCWRhbWFnZVswXS54MSA9 IGZiLT53aWR0aC8yOworCWRhbWFnZVswXS55MSA9IDA7CisJZGFtYWdlWzBdLngyID0gZmItPndp ZHRoOworCWRhbWFnZVswXS55MiA9IGZiLT5oZWlnaHQvMjsKKworCWNyXzIgPSBpZ3RfZ2V0X2Nh aXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8yKTsKKwljcl8xID0gaWd0X2dldF9j YWlyb19jdHgocGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCAmZmJfMSk7CisJY2Fpcm9fc2V0X3NvdXJj ZV9zdXJmYWNlKGNyXzIsIGZiXzEuY2Fpcm9fc3VyZmFjZSwgMCwgMCk7CisJY2Fpcm9fcGFpbnQo Y3JfMik7CisJaWd0X3BhaW50X2NvbG9yKGNyXzIsIGRhbWFnZVswXS54MSwgZGFtYWdlWzBdLnkx LAorCQkJZGFtYWdlX3JlY3Rfd2lkdGgoJmRhbWFnZVswXSksCisJCQlkYW1hZ2VfcmVjdF9oZWln aHQoJmRhbWFnZVswXSksIDAsIDEuMCwgMCk7CisJaWd0X3B1dF9jYWlyb19jdHgocGlwZS0+ZGlz cGxheS0+ZHJtX2ZkLCAmZmJfMSwgY3JfMSk7CisJaWd0X3B1dF9jYWlyb19jdHgocGlwZS0+ZGlz cGxheS0+ZHJtX2ZkLCAmZmJfMiwgY3JfMik7CisJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmZi XzIpOworCWlndF9wbGFuZV9yZXBsYWNlX3Byb3BfYmxvYihwbGFuZSwgSUdUX1BMQU5FX0ZCX0RB TUFHRV9DTElQUywgZGFtYWdlLAorCQkJCSAgICBzaXplb2YoKmRhbWFnZSkpOworCWNydGNfY29t bWl0KHBpcGUsIHBsYW5lLCBDT01NSVRfQVRPTUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7CisKKwkv KgorCSAqIElzc3VlIHBsYW5lIHVwZGF0ZSB3aXRoIGRhbWFnZSB3aXRoIGEgY2xpcCBvdXRzaWRl IG9mIHBsYW5lIHNyYy4KKwkgKiBOT1RFOiBUaGlzIHdpbGwgcmVzdWx0IGluIG5vIHVwZGF0ZSBv biBwbGFuZSBhcyBkYW1hZ2UgaXMgb3V0c2lkZSwgc28KKwkgKiB3aWxsIHNlZSBubyBjaGFuZ2Ug b24gdGhlIHNjcmVlbi4KKwkgKi8KKwkvKiBSZXN6aWUgZmJfMSB0byBiZSBiaWdnZXIgdGhhbiBw bGFuZSAqLworCWlndF9yZW1vdmVfZmIocGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCAmZmJfMSk7CisJ aWd0X2NyZWF0ZV9jb2xvcl9mYihwaXBlLT5kaXNwbGF5LT5kcm1fZmQsIGZiLT53aWR0aCAqIDIs IGZiLT5oZWlnaHQsCisJCQkgICAgZmItPmRybV9mb3JtYXQsIEk5MTVfVElMSU5HX05PTkUsIDAu MiwgMC4yLCAwLjIsCisJCQkgICAgJmZiXzEpOworCisJZGFtYWdlWzBdLngxID0gZmItPndpZHRo OworCWRhbWFnZVswXS55MSA9IDA7CisJZGFtYWdlWzBdLngyID0gZmItPndpZHRoICsgZmItPndp ZHRoLzI7CisJZGFtYWdlWzBdLnkyID0gZmItPmhlaWdodC8yOworCisJY3JfMSA9IGlndF9nZXRf Y2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEpOworCWNyXzIgPSBpZ3RfZ2V0 X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8yKTsKKwljYWlyb19zZXRfc291 cmNlX3N1cmZhY2UoY3JfMSwgZmJfMi5jYWlyb19zdXJmYWNlLCAwLCAwKTsKKwljYWlyb19wYWlu dChjcl8xKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwgZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0u eTEsCisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdlWzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hl aWdodCgmZGFtYWdlWzBdKSwgMCwgMS4wLCAwKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5k aXNwbGF5LT5kcm1fZmQsICZmYl8yLCBjcl8yKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5k aXNwbGF5LT5kcm1fZmQsICZmYl8xLCBjcl8xKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAm ZmJfMSk7CisJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQp OworCWlndF9mYl9zZXRfcG9zaXRpb24oJmZiXzEsIHBsYW5lLCAwLCAwKTsKKwlpZ3RfZmJfc2V0 X3NpemUoJmZiXzEsIHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOworCWlndF9wbGFuZV9y ZXBsYWNlX3Byb3BfYmxvYihwbGFuZSwgSUdUX1BMQU5FX0ZCX0RBTUFHRV9DTElQUywgZGFtYWdl LAorCQkJCSAgICBzaXplb2YoKmRhbWFnZSkpOworCWNydGNfY29tbWl0KHBpcGUsIHBsYW5lLCBD T01NSVRfQVRPTUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7CisKKwkvKgorCSAqIElzc3VlIGEgcGxh bmUgdXBkYXRlIHdpdGggZGFtYWdlIHdpdGggYSBjbGlwIHRoYXQgb3ZlcmxhcCB3aXRoIHBsYW5l CisJICogc3JjIChUb3AgcmlnaHQgZnJvbSBjZW50ZXIgZXh0ZW5kaW5nIG91dHNpZGUgc3JjIGlu IGJlbG93IGNhc2UpLgorCSAqIE5PVEU6IEhlcmUgZHJtIGNvcmUgc2hvdWxkIHRha2UgY2FyZSBv ZiBpbnRlcnNlY3RpbmcgdGhlIGNsaXAgdG8KKwkgKiBwbGFuZSBzcmMuCisJICovCisJZGFtYWdl WzBdLngxID0gZmItPndpZHRoLzI7CisJZGFtYWdlWzBdLnkxID0gMDsKKwlkYW1hZ2VbMF0ueDIg PSBmYi0+d2lkdGgvMiArIGZiLT53aWR0aDsKKwlkYW1hZ2VbMF0ueTIgPSBmYi0+aGVpZ2h0LzI7 CisKKwljcl8xID0gaWd0X2dldF9jYWlyb19jdHgocGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCAmZmJf MSk7CisJaWd0X3BhaW50X2NvbG9yKGNyXzEsIGRhbWFnZVswXS54MSwgZGFtYWdlWzBdLnkxLAor CQkJZGFtYWdlX3JlY3Rfd2lkdGgoJmRhbWFnZVswXSksCisJCQlkYW1hZ2VfcmVjdF9oZWlnaHQo JmRhbWFnZVswXSksIDEuMCwgMS4wLCAwKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5kaXNw bGF5LT5kcm1fZmQsICZmYl8xLCBjcl8xKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZmJf MSk7CisJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOwor CWlndF9mYl9zZXRfcG9zaXRpb24oJmZiXzEsIHBsYW5lLCAwLCAwKTsKKwlpZ3RfZmJfc2V0X3Np emUoJmZiXzEsIHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOworCWlndF9wbGFuZV9yZXBs YWNlX3Byb3BfYmxvYihwbGFuZSwgSUdUX1BMQU5FX0ZCX0RBTUFHRV9DTElQUywgZGFtYWdlLAor CQkJCSAgICBzaXplb2YoKmRhbWFnZSkpOworCWNydGNfY29tbWl0KHBpcGUsIHBsYW5lLCBDT01N SVRfQVRPTUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7CisKKwkvKgorCSAqIElzc3VlIGEgcGxhbmUg dXBkYXRlIHdpdGggZGFtYWdlIHdpdGggdHdvIGNsaXBzIG9uZSBpbnNpZGUgcGxhbmUgc3JjCisJ ICogYW5kIG9uZSBvdXRzaWRlCisJICogTk9URTogVGhpcyB3aWxsIHJlc3VsdCBpbiBwbGFuZSB1 cGRhdGUgd2l0aCBjbGlwIGluc2lkZSBwbGFuZSBzcmMuCisJICovCisJZGFtYWdlWzBdLngxID0g MDsKKwlkYW1hZ2VbMF0ueTEgPSBmYi0+aGVpZ2h0LzI7CisJZGFtYWdlWzBdLngyID0gZmItPndp ZHRoLzI7CisJZGFtYWdlWzBdLnkyID0gZmItPmhlaWdodDsKKworCWRhbWFnZVsxXS54MSA9IGZi LT53aWR0aCArIGZiLT53aWR0aC8yOworCWRhbWFnZVsxXS55MSA9IGZiLT5oZWlnaHQvMjsKKwlk YW1hZ2VbMV0ueDIgPSBmYi0+d2lkdGggKiAyOworCWRhbWFnZVsxXS55MiA9IGZiLT5oZWlnaHQ7 CisKKwljcl8xID0gaWd0X2dldF9jYWlyb19jdHgocGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCAmZmJf MSk7CisJaWd0X3BhaW50X2NvbG9yKGNyXzEsIGRhbWFnZVswXS54MSwgZGFtYWdlWzBdLnkxLAor CQkJZGFtYWdlX3JlY3Rfd2lkdGgoJmRhbWFnZVswXSksCisJCQlkYW1hZ2VfcmVjdF9oZWlnaHQo JmRhbWFnZVswXSksIDAsIDEuMCwgMS4wKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwgZGFtYWdl WzFdLngxLCBkYW1hZ2VbMV0ueTEsCisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdlWzFdKSwK KwkJCWRhbWFnZV9yZWN0X2hlaWdodCgmZGFtYWdlWzFdKSwgMCwgMS4wLCAwKTsKKwlpZ3RfcHV0 X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xLCBjcl8xKTsKKwlpZ3RfcGxh bmVfc2V0X2ZiKHBsYW5lLCAmZmJfMSk7CisJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBmYi0+ d2lkdGgsIGZiLT5oZWlnaHQpOworCWlndF9mYl9zZXRfcG9zaXRpb24oJmZiXzEsIHBsYW5lLCAw LCAwKTsKKwlpZ3RfZmJfc2V0X3NpemUoJmZiXzEsIHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWln aHQpOworCWlndF9wbGFuZV9yZXBsYWNlX3Byb3BfYmxvYihwbGFuZSwgSUdUX1BMQU5FX0ZCX0RB TUFHRV9DTElQUywgZGFtYWdlLAorCQkJCSAgICBzaXplb2YoKmRhbWFnZSkgKiAyKTsKKwljcnRj X2NvbW1pdChwaXBlLCBwbGFuZSwgQ09NTUlUX0FUT01JQywgQVRPTUlDX1JFTEFYX05PTkUpOwor CisJLyoKKwkgKiBJc3N1ZSBhIHBsYW5lIHVwZGF0ZSB3aXRoIG92ZXJsYXBwaW5nIGRhbWFnZSBj bGlwcy4gV2hpdGUgcmVjdCBpbgorCSAqIGNlbnRlciBvdmVybGFwIHBhcnRpYWxseSB3aXRoIHRv cCBsZWZ0IHJlZCByZWN0LgorCSAqIE5PVEU6IERybSBjb3JlIGRvZXMgbm90IGVycm9yIGZvciBv dmVybGFwcGluZyBkYW1hZ2UgY2xpcHMgc28gaWYgYW55CisJICogZHJpdmVyIGRvZXMgbm90IHN1 cHBvcnQgb3ZlcmxhcHBpbmcgc2hvdWxkIGhhdmUgdGhlaXIgb3duCisJICogdmFsaWRhdGlvbnMu CisJICovCisJZGFtYWdlWzBdLngxID0gMDsKKwlkYW1hZ2VbMF0ueTEgPSAwOworCWRhbWFnZVsw XS54MiA9IGZiLT53aWR0aC8yOworCWRhbWFnZVswXS55MiA9IGZiLT5oZWlnaHQvMjsKKworCWRh bWFnZVsxXS54MSA9IGZiLT53aWR0aC80OworCWRhbWFnZVsxXS55MSA9IGZiLT5oZWlnaHQvNDsK KwlkYW1hZ2VbMV0ueDIgPSBmYi0+d2lkdGgvNCArIGZiLT53aWR0aC8yOworCWRhbWFnZVsxXS55 MiA9IGZiLT5oZWlnaHQvNCArIGZiLT5oZWlnaHQvMjsKKworCWNyXzEgPSBpZ3RfZ2V0X2NhaXJv X2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3Jf MSwgZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0ueTEsCisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFt YWdlWzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hlaWdodCgmZGFtYWdlWzBdKSwgMS4wLCAwLCAwKTsK KwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwgZGFtYWdlWzFdLngxLCBkYW1hZ2VbMV0ueTEsCisJCQlk YW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdlWzFdKSwKKwkJCWRhbWFnZV9yZWN0X2hlaWdodCgmZGFt YWdlWzFdKSwgMS4wLCAxLjAsIDEuMCk7CisJaWd0X3B1dF9jYWlyb19jdHgocGlwZS0+ZGlzcGxh eS0+ZHJtX2ZkLCAmZmJfMSwgY3JfMSk7CisJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmZiXzEp OworCWlndF9wbGFuZV9zZXRfc2l6ZShwbGFuZSwgZmItPndpZHRoLCBmYi0+aGVpZ2h0KTsKKwlp Z3RfZmJfc2V0X3Bvc2l0aW9uKCZmYl8xLCBwbGFuZSwgMCwgMCk7CisJaWd0X2ZiX3NldF9zaXpl KCZmYl8xLCBwbGFuZSwgZmItPndpZHRoLCBmYi0+aGVpZ2h0KTsKKwlpZ3RfcGxhbmVfcmVwbGFj ZV9wcm9wX2Jsb2IocGxhbmUsIElHVF9QTEFORV9GQl9EQU1BR0VfQ0xJUFMsIGRhbWFnZSwKKwkJ CQkgICAgc2l6ZW9mKCpkYW1hZ2UpICogMik7CisJY3J0Y19jb21taXQocGlwZSwgcGxhbmUsIENP TU1JVF9BVE9NSUMsIEFUT01JQ19SRUxBWF9OT05FKTsKKworCS8qIFJlc3RvcmUgdGhlIHByaW1h cnkgcGxhbmUgKi8KKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBmYik7CisJcGxhbmVfY29tbWl0 KHBsYW5lLCBDT01NSVRfQVRPTUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7CisKKwkvKiBSZW1vdmUg dGhlIGZiIGNyZWF0ZWQgZm9yIHRoaXMgdGVzdCAqLworCWlndF9yZW1vdmVfZmIocGlwZS0+ZGlz cGxheS0+ZHJtX2ZkLCAmZmJfMSk7CisJaWd0X3JlbW92ZV9mYihwaXBlLT5kaXNwbGF5LT5kcm1f ZmQsICZmYl8yKTsKKworCWZyZWUoZGFtYWdlKTsKK30KKwogc3RhdGljIHZvaWQgYXRvbWljX3Nl dHVwKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLCBpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgaWd0X3BsYW5lX3QgKnByaW1hcnksIHN0cnVjdCBpZ3RfZmIgKmZiKQogewogCWln dF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKQEAgLTk1MSw2ICsxMjAzLDE0IEBAIGln dF9tYWluCiAJCWF0b21pY19pbnZhbGlkX3BhcmFtcyhwaXBlX29iaiwgcHJpbWFyeSwgb3V0cHV0 LCAmZmIpOwogCX0KIAorCWlndF9zdWJ0ZXN0KCJhdG9taWNfcGxhbmVfZGFtYWdlIikgeworCQlp Z3RfcmVxdWlyZShpZ3RfcGxhbmVfaGFzX3Byb3AocHJpbWFyeSwgSUdUX1BMQU5FX0ZCX0RBTUFH RV9DTElQUykpOworCisJCWF0b21pY19zZXR1cCgmZGlzcGxheSwgcGlwZSwgb3V0cHV0LCBwcmlt YXJ5LCAmZmIpOworCisJCWF0b21pY19wbGFuZV9kYW1hZ2UocGlwZV9vYmosIHByaW1hcnksICZm Yik7CisJfQorCiAJaWd0X2ZpeHR1cmUgewogCQlhdG9taWNfY2xlYXIoJmRpc3BsYXksIHBpcGUs IHByaW1hcnksIG91dHB1dCk7CiAJCWlndF9yZW1vdmVfZmIoZGlzcGxheS5kcm1fZmQsICZmYik7 Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=