From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 347556E95B for ; Fri, 9 Jul 2021 03:54:22 +0000 (UTC) From: Bhanuprakash Modem Date: Fri, 9 Jul 2021 17:11:33 +0530 Message-Id: <20210709114134.15025-1-bhanuprakash.modem@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [i-g-t v2 1/2] tests/kms_dither: New IGT to validate crtc Dithering 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: Nischal Varide List-ID: TWFueSBvZiB0aGUgZGlzcGxheSBkZXZpY2VzIGhhdmUgY29sb3IgZm9ybWF0IHN1cHBvcnQgbGVz cyB0aGFuCnRoZSBjb2xvciBmb3JtYXQgb2YgdGhlIGlucHV0IGRhdGEgKEV4OiA4LWJpdCBpbnB1 dCBkYXRhIGFuZCA2LWJpdApkaXNwbGF5IGNvbG9yIGRlcHRoKS4gVGhlbiB0aGUgaW5wdXQgZGF0 YSB3aWxsIGJlIGVpdGhlciB0cnVuY2F0ZWQKb3Igcm91bmRlZCwgYnV0IHRoaXMgYXBwcm9hY2gg dXN1YWxseSBjYXVzZXMgbG9zcyBvZiBkZXRhaWwgYW5kIGFsc28KcHJvZHVjZSBsYXJnZSBiYW5k ZWQgYXJlYXMgb2YgYSBzaW5nbGUgY29sb3IgdGhhdCBzaWduaWZpY2FudGx5CmRpZmZlcnMgZnJv bSB0aGUgb3JpZ2luYWwgaW1hZ2UuCgpEaXRoZXJpbmcgaXMgYSB0ZWNobmlxdWUgdXNlZCB0byBl bmhhbmNlIHRoZXNlIGNvbG9ycyBieSBjcmVhdGluZyB0aGUKaWxsdXNpb24gb2Ygc21vb3RobmVz cyBieSBhZGp1c3RpbmcgdGhlIG5lYXJieSBwaXhlbCBjb2xvci4KRm9yIEVnOiBDb252ZXJ0aW5n IDgtYml0IHRvIDYtYml0IGJ5IG1vZGlmeWluZyB0aGUgcGl4ZWwgaW5mb3JtYXRpb24uCgpEaXRo ZXJpbmcgc2hvdWxkIGJlIGVuYWJsZWQgd2hlbiBhIHBhbmVsIGNvbG9yIGRlcHRoIGlzIGxvd2Vy IHRoYW4gdGhlCmNvbG9yIGRlcHRoIG9mIHRoZSBmcmFtZWJ1ZmZlci4KCkV2ZW4gdGhvdWdoIGZl YXR1cmUgRGl0aGVyaW5nIGlzIHRoZXJlIHNpbmNlIGxlZ2FjeSwgdGhlcmUgaXMgbm8Kc3BlY2lm aWMgSUdUIGZvciB0aGlzLiBUaGlzIHBhdGNoIHdpbGwgY3JlYXRlIE5ldyBJR1QgZm9yIERpdGhl cmluZy4KQW5kIGJlbG93IGlzIHRoZSB0cnV0aCB0YWJsZSBmb3IgQ1JUQyBEaXRoZXJpbmcuCgp8 LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCAgRnJhbWUgYnVmZmVy ICB8ICBQYW5lbCAgfCAgRGl0aGVyaW5nICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwt LS0tLS0tLS0tLS0tfAp8ICAgICAgOCBCUEMgICAgIHwgIDYgQlBDICB8ICAgICBZZXMgICAgIHwK fC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgICAgICA4IEJQQyAg ICAgfCAgOCBCUEMgIHwgICAgIE5vICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18 LS0tLS0tLS0tLS0tLXwKfCAgICAgIDggQlBDICAgICB8IDEwIEJQQyAgfCAgICAgTm8gICAgICB8 CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8ICAgICAxMCBCUEMg ICAgIHwgIDYgQlBDICB8ICAgICBZZXMgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0t fC0tLS0tLS0tLS0tLS18CnwgICAgIDEwIEJQQyAgICAgfCAgOCBCUEMgIHwgICAgIFllcyAgICAg fAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCAgICAgMTAgQlBD ICAgICB8IDEwIEJQQyAgfCAgICAgTm8gICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0t LXwtLS0tLS0tLS0tLS0tfAp8ICAgICAxNiBCUEMgICAgIHwgIDYgQlBDICB8ICAgICBZZXMgICAg IHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgICAgIDE2IEJQ QyAgICAgfCAgOCBCUEMgIHwgICAgIFllcyAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0t LS18LS0tLS0tLS0tLS0tLXwKfCAgICAgMTYgQlBDICAgICB8IDEwIEJQQyAgfCAgICAgWWVzICAg ICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAoKTm90ZTogQXMg aTkxNSBlbmFibGVzIGRpdGhlcmluZyBmb3IgNiBicGMgcGFuZWxzIG9ubHksIHdlIG5lZWQgdG8g bGltaXQKdGhlIGV4ZWN1dGlvbiB0byA2ICYgOCBicGMgcGFuZWxzIChOZWdhdGl2ZSB0ZXN0aW5n KSBvbmx5LgoKQ2M6IFN3YXRpIFNoYXJtYSA8c3dhdGkyLnNoYXJtYUBpbnRlbC5jb20+CkNjOiBV bWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgpDYzogTmlzY2hhbCBWYXJpZGUgPG5p c2NoYWwudmFyaWRlQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQmhhbnVwcmFrYXNoIE1vZGVt IDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwuY29tPgotLS0KIHRlc3RzL2ttc19kaXRoZXIuYyB8 IDI0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3Rz L21lc29uLmJ1aWxkICB8ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDI0MyBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2RpdGhlci5jCgpkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2RpdGhlci5jIGIvdGVzdHMva21zX2RpdGhlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uNTBjNjQ5Y2E4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMva21z X2RpdGhlci5jCkBAIC0wLDAgKzEsMjQyIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMjAgSW50 ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIo UykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBP VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICAgQmhhbnVwcmFrYXNoIE1vZGVtIDxiaGFu dXByYWthc2gubW9kZW1AaW50ZWwuY29tPgorICoKKyAqLworCisjaW5jbHVkZSAiaWd0LmgiCisj aW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisjaW5jbHVkZSA8dW5pc3Rk Lmg+CisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IERpdGhlcmluZyBibG9jayBzdGF0dXMi KTsKKworLyogQ29ubmVjdG9yIEJQQyAqLworI2RlZmluZSBJR1RfQ09OTkVDVE9SX0JQQ182CQk2 CisjZGVmaW5lIElHVF9DT05ORUNUT1JfQlBDXzgJCTgKKworLyogRnJhbWVidWZmZXIgQlBDICov CisjZGVmaW5lIElHVF9GUkFNRV9CVUZGRVJfQlBDXzgJCTgKKworLyogQ29tbW9uIHRlc3QgZGF0 YS4gKi8KK3R5cGVkZWYgc3RydWN0IGRhdGEgeworCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKKwlp Z3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlpZ3RfcGlwZV90 ICpwaXBlOworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKwllbnVtIHBpcGUgcGlwZV9pZDsKKwlp bnQgZHJtX2ZkOworCWlndF9mYl90IGZiOworfSBkYXRhX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsK Kwl1bnNpZ25lZCBpbnQgYnBjOworCXVuc2lnbmVkIGludCBkaXRoZXI7Cit9IGRpdGhlcl9zdGF0 dXNfdDsKKworLyogUHJlcGFyZSB0ZXN0IGRhdGEuICovCitzdGF0aWMgdm9pZCBwcmVwYXJlX3Rl c3QoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUpCit7 CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCisJZGF0YS0+cGlw ZV9pZCA9IHBpcGU7CisJZGF0YS0+cGlwZSA9ICZkYXRhLT5kaXNwbGF5LnBpcGVzW2RhdGEtPnBp cGVfaWRdOworCWlndF9hc3NlcnQoZGF0YS0+cGlwZSk7CisKKwlpZ3RfZGlzcGxheV9yZXNldChk aXNwbGF5KTsKKworCWRhdGEtPm91dHB1dCA9IG91dHB1dDsKKwlpZ3RfYXNzZXJ0KGRhdGEtPm91 dHB1dCk7CisKKwlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShkYXRhLT5vdXRwdXQp OworCWlndF9hc3NlcnQoZGF0YS0+bW9kZSk7CisKKwlkYXRhLT5wcmltYXJ5ID0KKwkJaWd0X3Bp cGVfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+cGlwZSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisK KwlpZ3Rfb3V0cHV0X3NldF9waXBlKGRhdGEtPm91dHB1dCwgZGF0YS0+cGlwZV9pZCk7Cit9CisK Ky8qIFJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgZGl0aGVyaW5nIGZyb20gdGhlIGNydGMg ZGVidWdmcy4gKi8KK3N0YXRpYyBkaXRoZXJfc3RhdHVzX3QgZ2V0X2RpdGhlcl9zdGF0ZShkYXRh X3QgKmRhdGEpCit7CisJY2hhciBidWZbNTEyXSwgdG1wWzVdOworCWNoYXIgKnN0YXJ0X2xvYzsK KwlpbnQgZGlyLCByZXM7CisJZGl0aGVyX3N0YXR1c190IHN0YXR1czsKKworCWRpciA9IGlndF9k ZWJ1Z2ZzX2RpcihkYXRhLT5kcm1fZmQpOworCWlndF9hc3NlcnQoZGlyID49IDApOworCisJcmVz ID0gaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGlyLCAiaTkxNV9kaXNwbGF5X2luZm8iLCBidWYs IHNpemVvZihidWYpKTsKKwlpZ3RfcmVxdWlyZShyZXMgPiAwKTsKKwljbG9zZShkaXIpOworCisJ aWd0X2Fzc2VydChzdGFydF9sb2MgPSBzdHJzdHIoYnVmLCAiLCBicHA9IikpOworCWlndF9hc3Nl cnRfZXEoc3NjYW5mKHN0YXJ0X2xvYywgIiwgYnBwPSV1IiwgJnN0YXR1cy5icGMpLCAxKTsKKwlz dGF0dXMuYnBjIC89IDM7CisKKwlpZ3RfYXNzZXJ0KHN0YXJ0X2xvYyA9IHN0cnN0cihidWYsICIs IGRpdGhlcj0iKSk7CisJaWd0X2Fzc2VydF9lcShzc2NhbmYoc3RhcnRfbG9jLCAiLCBkaXRoZXI9 JXMiLCB0bXApLCAxKTsKKwlzdGF0dXMuZGl0aGVyID0gIXN0cmNtcCh0bXAsICJ5ZXMsIik7CisK KwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2RpdGhlcmluZyhkYXRhX3Qg KmRhdGEsIGVudW0gcGlwZSBwaXBlLAorCQkJICAgaWd0X291dHB1dF90ICpvdXRwdXQsCisJCQkg ICBpbnQgZmJfYnBjLCBpbnQgZmJfZm9ybWF0LAorCQkJICAgaW50IG91dHB1dF9icGMpCit7CisJ aWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCWRpdGhlcl9zdGF0dXNf dCBzdGF0dXM7CisJaW50IGJwYyA9IDA7CisKKwlpZ3RfaW5mbygiRGl0aGVyaW5nIHRlc3QgZXhl Y3V0aW9uIG9uICVzIFBJUEVfJXNcbiIsCisJCQlvdXRwdXQtPm5hbWUsIGttc3Rlc3RfcGlwZV9u YW1lKHBpcGUpKTsKKwlwcmVwYXJlX3Rlc3QoZGF0YSwgb3V0cHV0LCBwaXBlKTsKKworCWlndF9h c3NlcnQoaWd0X2NyZWF0ZV9mYihkYXRhLT5kcm1fZmQsIGRhdGEtPm1vZGUtPmhkaXNwbGF5LAor CQkJCSBkYXRhLT5tb2RlLT52ZGlzcGxheSwgZmJfZm9ybWF0LAorCQkJCSBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FLCAmZGF0YS0+ZmIpKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnByaW1h cnksICZkYXRhLT5mYik7CisJaWd0X3BsYW5lX3NldF9zaXplKGRhdGEtPnByaW1hcnksIGRhdGEt Pm1vZGUtPmhkaXNwbGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxheSk7CisKKwlpZiAoaWd0X291dHB1 dF9oYXNfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfTUFYX0JQQykpIHsKKwkJYnBjID0gaWd0 X291dHB1dF9nZXRfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfTUFYX0JQQyk7CisJCWlndF9v dXRwdXRfc2V0X3Byb3BfdmFsdWUoZGF0YS0+b3V0cHV0LCBJR1RfQ09OTkVDVE9SX01BWF9CUEMs IG91dHB1dF9icGMpOworCX0KKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIGRpc3BsYXkt PmlzX2F0b21pYyA/IENPTU1JVF9BVE9NSUMgOiBDT01NSVRfTEVHQUNZKTsKKworCS8qCisJICog Q2hlY2sgdGhlIHN0YXR1cyBvZiBEaXRoZXJpbmcgYmxvY2s6CisJICoKKwkgKiBQcmVzZXJ2ZSB0 aGUgcmVzdWx0ICYgY29tcHV0ZSBsYXRlciAoYWZ0ZXIgY2xlYW4tdXApLgorCSAqIElmIGZiX2Jw YyBpcyBncmVhdGVyIHRoYW4gb3V0cHV0X2JwYywgRGl0aGVyaW5nIHNob3VsZCBiZSBlbmFibGVk CisJICogRWxzZSBkaXNhYmxlZAorCSAqLworCXN0YXR1cyA9IGdldF9kaXRoZXJfc3RhdGUoZGF0 YSk7CisKKwlpZ3RfaW5mbygiRkIgQlBDOiVkLCBQYW5lbCBCUEM6JWQsIFBpcGUgQlBDOiVkLCBF eHBlY3RlZCBEaXRoZXI6JXMsIEFjdHVhbCByZXN1bHQ6JXNcbiIsCisJCSAgZmJfYnBjLCBvdXRw dXRfYnBjLCBzdGF0dXMuYnBjLAorCQkgIChmYl9icGMgPiBvdXRwdXRfYnBjKSA/ICJFbmFibGUi OiAiRGlzYWJsZSIsCisJCSAgc3RhdHVzLmRpdGhlciA/ICJFbmFibGUiOiAiRGlzYWJsZSIpOwor CisgICAgICAgLyoKKwkqIFdlIG11c3QgdXBkYXRlIHRoZSBDb25uZWN0b3IgbWF4X2JwYyBwcm9w ZXJ0eSBiYWNrCisJKiBPdGhlcndpc2UsIHByZXZpb3VzbHkgdXBkYXRlZCB2YWx1ZSB3aWxsIHN0 YXkgZm9yZXZlciBhbmQKKwkqIG1heSBjYXVzZSB0aGUgZmFpbHVyZXMgZm9yIG5leHQvb3RoZXIg c3VidGVzdHMuCisJKi8KKwlpZiAoYnBjKQorCQlpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKGRh dGEtPm91dHB1dCwgSUdUX0NPTk5FQ1RPUl9NQVhfQlBDLCBicGMpOworCWlndF9wbGFuZV9zZXRf ZmIoZGF0YS0+cHJpbWFyeSwgTlVMTCk7CisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJ UEVfTk9ORSk7CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBkaXNwbGF5LT5pc19hdG9t aWMgPyBDT01NSVRfQVRPTUlDIDogQ09NTUlUX0xFR0FDWSk7CisJaWd0X3JlbW92ZV9mYihkYXRh LT5kcm1fZmQsICZkYXRhLT5mYik7CisKKwkvKiBDaGVjayBpZiBjcnRjIGJwYyBpcyB1cGRhdGVk IHdpdGggcmVxdWVzdGVkIG9uZS4gKi8KKwlpZ3RfcmVxdWlyZV9mKChzdGF0dXMuYnBjID09IG91 dHB1dF9icGMpLAorCQkJIiVzIGNhbiBzdXBwb3J0IG1heCAldS1icGMsIGJ1dCByZXF1ZXN0ZWQg JWQtYnBjXG4iLAorCQkJCW91dHB1dC0+bmFtZSwgc3RhdHVzLmJwYywgb3V0cHV0X2JwYyk7CisK KwkvKiBDb21wdXRlIHRoZSByZXN1bHQuICovCisJaWYgKGZiX2JwYyA+IG91dHB1dF9icGMpCisJ CWlndF9hc3NlcnRfZihzdGF0dXMuZGl0aGVyLCAiKGZiXyVkYnBjID4gb3V0cHV0XyVkYnBjKTog RGl0aGVyIHNob3VsZCBiZSBlbmFibGVkXG4iLAorCQkJCWZiX2JwYywgb3V0cHV0X2JwYyk7CisJ ZWxzZQorCQlpZ3RfYXNzZXJ0X2YoIXN0YXR1cy5kaXRoZXIsICIoZmJfJWRicGMgPD0gb3V0cHV0 XyVkYnBjKTogRGl0aGVyIHNob3VsZCBiZSBkaXNhYmxlZFxuIiwKKwkJCQlmYl9icGMsIG91dHB1 dF9icGMpOworCisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZAorcnVuX2RpdGhlcl90ZXN0KGRh dGFfdCAqZGF0YSwgaW50IGZiX2JwYywgaW50IGZiX2Zvcm1hdCwgaW50IG91dHB1dF9icGMpCit7 CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRh LT5kaXNwbGF5OworCisJZm9yX2VhY2hfY29ubmVjdGVkX291dHB1dChkaXNwbGF5LCBvdXRwdXQp IHsKKwkJZW51bSBwaXBlIHBpcGU7CisJCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvciA9IG91 dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKKworCQkvKiBIRE1JIHdvbid0IHN1cHBvcnQgNiBCUEMg Ki8KKwkJaWYgKG91dHB1dF9icGMgPT0gSUdUX0NPTk5FQ1RPUl9CUENfNiAmJgorCQkgICAoY29u bmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEgfHwKKwkJ ICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlC KSkKKwkJCWNvbnRpbnVlOworCisJCWZvcl9lYWNoX3BpcGUoZGlzcGxheSwgcGlwZSkgeworCQkJ aWYgKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKSB7CisJCQkJaWd0X2R5 bmFtaWNfZigiJXMtcGlwZS0lcyIsIG91dHB1dC0+bmFtZSwga21zdGVzdF9waXBlX25hbWUocGlw ZSkpCisJCQkJCXRlc3RfZGl0aGVyaW5nKGRhdGEsIHBpcGUsIG91dHB1dCwgZmJfYnBjLAorCQkJ CQkJCWZiX2Zvcm1hdCwgb3V0cHV0X2JwYyk7CisKKwkJCQkvKiBPbmUgcGlwZSBpcyBlbm91Z2gg Ki8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KK30KKworaWd0X21haW4KK3sKKwlzdHJ1Y3Qg eworCQlpbnQgZmJfYnBjOworCQlpbnQgZm9ybWF0OworCQlpbnQgb3V0cHV0X2JwYzsKKwl9IHRl c3RzW10gPSB7CisJCXsgSUdUX0ZSQU1FX0JVRkZFUl9CUENfOCwgRFJNX0ZPUk1BVF9YUkdCODg4 OCwgSUdUX0NPTk5FQ1RPUl9CUENfNiB9LAorCQl7IElHVF9GUkFNRV9CVUZGRVJfQlBDXzgsIERS TV9GT1JNQVRfWFJHQjg4ODgsIElHVF9DT05ORUNUT1JfQlBDXzggfSwKKwl9OworCWludCBpOwor CWRhdGFfdCBkYXRhID0geyAwIH07CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEuZHJtX2ZkID0g ZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOworCQlrbXN0ZXN0X3NldF92dF9n cmFwaGljc19tb2RlKCk7CisKKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBk YXRhLmRybV9mZCk7CisJCWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0KCZkYXRhLmRpc3BsYXkp OworCX0KKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHRlc3RzKTsgaSsrKSB7CisJCWln dF9kZXNjcmliZV9mKCJGcmFtZWJ1ZmZlciBCUEM6JWQsIFBhbmVsIEJQQzolZCwgRXhwZWN0ZWQg RGl0aGVyOiVzXG4iLAorCQkJICAgICAgIHRlc3RzW2ldLmZiX2JwYywgdGVzdHNbaV0ub3V0cHV0 X2JwYywKKwkJCSAgICAgICAodGVzdHNbaV0uZmJfYnBjID4gdGVzdHNbaV0ub3V0cHV0X2JwYykg PworCQkJCQkJCSJFbmFibGUiOiAiRGlzYWJsZSIpOworCisJCWlndF9zdWJ0ZXN0X3dpdGhfZHlu YW1pY19mKCJGQi0lZEJQQy1Wcy1QYW5lbC0lZEJQQyIsCisJCQkJdGVzdHNbaV0uZmJfYnBjLCB0 ZXN0c1tpXS5vdXRwdXRfYnBjKQorCQkJcnVuX2RpdGhlcl90ZXN0KCZkYXRhLAorCQkJCQl0ZXN0 c1tpXS5mYl9icGMsCisJCQkJCXRlc3RzW2ldLmZvcm1hdCwKKwkJCQkJdGVzdHNbaV0ub3V0cHV0 X2JwYyk7CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRp c3BsYXkpOworCX0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVz b24uYnVpbGQKaW5kZXggMDE5MTFjNDU3Li5kM2RlNDBiZTAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21l c29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0yOSw2ICsyOSw3IEBAIHRlc3Rf cHJvZ3MgPSBbCiAJJ2ttc19jdXJzb3JfY3JjJywKIAkna21zX2N1cnNvcl9lZGdlX3dhbGsnLAog CSdrbXNfY3Vyc29yX2xlZ2FjeScsCisJJ2ttc19kaXRoZXInLAogCSdrbXNfZHBfYXV4X2Rldics CiAJJ2ttc19kcF9kc2MnLAogCSdrbXNfZHBfdGlsZWRfZGlzcGxheScsCi0tIAoyLjIwLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFp bGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=