From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH libdrm 7/7] add syncobj timeline tests v3 Date: Mon, 13 May 2019 17:53:05 +0800 Message-ID: <20190513095305.14110-7-david1.zhou@amd.com> References: <20190513095305.14110-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190513095305.14110-1-david1.zhou@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Cc: Christian.Koenig@amd.com List-Id: amd-gfx.lists.freedesktop.org djI6IGRyb3AgRFJNX1NZTkNPQkpfQ1JFQVRFX1RZUEVfVElNRUxJTkUsIGZpeCB0aW1lb3V0IGNh bGN1bGF0aW9uLAogICAgZml4IHNvbWUgd2FybmluZ3MKdjM6IGFkZCBleHBvcnQvaW1wb3J0IGFu ZCBjcHUgc2lnbmFsIHRlc3RpbmcgY2FzZXMKClNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3Ug PGRhdmlkMS56aG91QGFtZC5jb20+CkFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+Ci0tLQogdGVzdHMvYW1kZ3B1L01ha2VmaWxlLmFtICAgICB8ICAg MyArLQogdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgICB8ICAxMSArKwogdGVzdHMvYW1kZ3B1 L2FtZGdwdV90ZXN0LmggICB8ICAyMSArKysKIHRlc3RzL2FtZGdwdS9tZXNvbi5idWlsZCAgICAg fCAgIDIgKy0KIHRlc3RzL2FtZGdwdS9zeW5jb2JqX3Rlc3RzLmMgfCAyOTAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMzI1IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvYW1kZ3B1L3N5bmNv YmpfdGVzdHMuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rlc3Rz L2FtZGdwdS9NYWtlZmlsZS5hbQppbmRleCA0ODI3ODg0OC4uOTIwODgyZDAgMTAwNjQ0Ci0tLSBh L3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0K QEAgLTM0LDQgKzM0LDUgQEAgYW1kZ3B1X3Rlc3RfU09VUkNFUyA9IFwKIAl1dmVfaWIuaCBcCiAJ ZGVhZGxvY2tfdGVzdHMuYyBcCiAJdm1fdGVzdHMuYwlcCi0JcmFzX3Rlc3RzLmMKKwlyYXNfdGVz dHMuYyBcCisJc3luY29ial90ZXN0cy5jCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1kZ3B1 X3Rlc3QuYyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCmluZGV4IDM1YzhiZjZjLi43MzQw M2ZiNCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKKysrIGIvdGVzdHMv YW1kZ3B1L2FtZGdwdV90ZXN0LmMKQEAgLTU3LDYgKzU3LDcgQEAKICNkZWZpbmUgREVBRExPQ0tf VEVTVFNfU1RSICJEZWFkbG9jayBUZXN0cyIKICNkZWZpbmUgVk1fVEVTVFNfU1RSICJWTSBUZXN0 cyIKICNkZWZpbmUgUkFTX1RFU1RTX1NUUiAiUkFTIFRlc3RzIgorI2RlZmluZSBTWU5DT0JKX1RJ TUVMSU5FX1RFU1RTX1NUUiAiU1lOQ09CSiBUSU1FTElORSBUZXN0cyIKIAogLyoqCiAgKiAgT3Bl biBoYW5kbGVzIGZvciBhbWRncHUgZGV2aWNlcwpAQCAtMTIzLDYgKzEyNCwxMiBAQCBzdGF0aWMg Q1VfU3VpdGVJbmZvIHN1aXRlc1tdID0gewogCQkucENsZWFudXBGdW5jID0gc3VpdGVfcmFzX3Rl c3RzX2NsZWFuLAogCQkucFRlc3RzID0gcmFzX3Rlc3RzLAogCX0sCisJeworCQkucE5hbWUgPSBT WU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiwKKwkJLnBJbml0RnVuYyA9IHN1aXRlX3N5bmNvYmpf dGltZWxpbmVfdGVzdHNfaW5pdCwKKwkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3N5bmNvYmpfdGlt ZWxpbmVfdGVzdHNfY2xlYW4sCisJCS5wVGVzdHMgPSBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzLAor CX0sCiAKIAlDVV9TVUlURV9JTkZPX05VTEwsCiB9OwpAQCAtMTc2LDYgKzE4MywxMCBAQCBzdGF0 aWMgU3VpdGVzX0FjdGl2ZV9TdGF0dXMgc3VpdGVzX2FjdGl2ZV9zdGF0W10gPSB7CiAJCQkucE5h bWUgPSBSQVNfVEVTVFNfU1RSLAogCQkJLnBBY3RpdmUgPSBzdWl0ZV9yYXNfdGVzdHNfZW5hYmxl LAogCQl9LAorCQl7CisJCQkucE5hbWUgPSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiwKKwkJ CS5wQWN0aXZlID0gc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUsCisJCX0sCiB9 OwogCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIvdGVzdHMvYW1k Z3B1L2FtZGdwdV90ZXN0LmgKaW5kZXggYmNkMGJjN2UuLjM2Njc1ZWEzIDEwMDY0NAotLS0gYS90 ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3Qu aApAQCAtMjE2LDYgKzIxNiwyNyBAQCBDVV9CT09MIHN1aXRlX3Jhc190ZXN0c19lbmFibGUodm9p ZCk7CiBleHRlcm4gQ1VfVGVzdEluZm8gcmFzX3Rlc3RzW107CiAKIAorLyoqCisgKiBJbml0aWFs aXplIHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3luY29ial90 aW1lbGluZV90ZXN0c19pbml0KCk7CisKKy8qKgorICogRGVpbml0aWFsaXplIHN5bmNvYmogdGlt ZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19j bGVhbigpOworCisvKioKKyAqIERlY2lkZSBpZiB0aGUgc3VpdGUgaXMgZW5hYmxlZCBieSBkZWZh dWx0IG9yIG5vdC4KKyAqLworQ1VfQk9PTCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3RzX2Vu YWJsZSh2b2lkKTsKKworLyoqCisgKiBUZXN0cyBpbiBzeW5jb2JqIHRpbWVsaW5lIHRlc3Qgc3Vp dGUKKyAqLworZXh0ZXJuIENVX1Rlc3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNbXTsKKwor CiAvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKICAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1 L21lc29uLmJ1aWxkIGIvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCmluZGV4IDk1ZWQ5MzA1Li4x NzI2Y2I0MyAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCisrKyBiL3Rlc3Rz L2FtZGdwdS9tZXNvbi5idWlsZApAQCAtMjQsNyArMjQsNyBAQCBpZiBkZXBfY3VuaXQuZm91bmQo KQogICAgIGZpbGVzKAogICAgICAgJ2FtZGdwdV90ZXN0LmMnLCAnYmFzaWNfdGVzdHMuYycsICdi b190ZXN0cy5jJywgJ2NzX3Rlc3RzLmMnLAogICAgICAgJ3ZjZV90ZXN0cy5jJywgJ3V2ZF9lbmNf dGVzdHMuYycsICd2Y25fdGVzdHMuYycsICdkZWFkbG9ja190ZXN0cy5jJywKLSAgICAgICd2bV90 ZXN0cy5jJywgJ3Jhc190ZXN0cy5jJywKKyAgICAgICd2bV90ZXN0cy5jJywgJ3Jhc190ZXN0cy5j JywgJ3N5bmNvYmpfdGVzdHMuYycsCiAgICAgKSwKICAgICBkZXBlbmRlbmNpZXMgOiBbZGVwX2N1 bml0LCBkZXBfdGhyZWFkc10sCiAgICAgaW5jbHVkZV9kaXJlY3RvcmllcyA6IFtpbmNfcm9vdCwg aW5jX2RybSwgaW5jbHVkZV9kaXJlY3RvcmllcygnLi4vLi4vYW1kZ3B1JyldLApkaWZmIC0tZ2l0 IGEvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9zeW5jb2JqX3Rl c3RzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmEwYzYyN2Q3Ci0tLSAv ZGV2L251bGwKKysrIGIvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYwpAQCAtMCwwICsxLDI5 MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQg SE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KKyAqCisqLworCisjaW5jbHVkZSAiQ1VuaXQvQmFzaWMuaCIKKworI2lu Y2x1ZGUgImFtZGdwdV90ZXN0LmgiCisjaW5jbHVkZSAiYW1kZ3B1X2RybS5oIgorI2luY2x1ZGUg ImFtZGdwdV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworc3RhdGljICBhbWRn cHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlOworc3RhdGljICB1aW50MzJfdCAgbWFqb3Jf dmVyc2lvbjsKK3N0YXRpYyAgdWludDMyX3QgIG1pbm9yX3ZlcnNpb247CisKK3N0YXRpYyB2b2lk IGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qodm9pZCk7CisKK0NVX0JPT0wgc3VpdGVfc3lu Y29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCkKK3sKKwlyZXR1cm4gQ1VfVFJVRTsKK30K KworaW50IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVzdHNfaW5pdCh2b2lkKQoreworCWludCBy OworCisJciA9IGFtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZShkcm1fYW1kZ3B1WzBdLCAmbWFqb3Jf dmVyc2lvbiwKKwkJCQkgICAmbWlub3JfdmVyc2lvbiwgJmRldmljZV9oYW5kbGUpOworCisJaWYg KHIpIHsKKwkJaWYgKChyID09IC1FQUNDRVMpICYmIChlcnJubyA9PSBFQUNDRVMpKQorCQkJcHJp bnRmKCJcblxuRXJyb3I6JXMuICIKKwkJCQkiSGludDpUcnkgdG8gcnVuIHRoaXMgdGVzdCBwcm9n cmFtIGFzIHJvb3QuIiwKKwkJCQlzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4gQ1VFX1NJTklU X0ZBSUxFRDsKKwl9CisKKwlyZXR1cm4gQ1VFX1NVQ0NFU1M7Cit9CisKK2ludCBzdWl0ZV9zeW5j b2JqX3RpbWVsaW5lX3Rlc3RzX2NsZWFuKHZvaWQpCit7CisJaW50IHIgPSBhbWRncHVfZGV2aWNl X2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxlKTsKKworCWlmIChyID09IDApCisJCXJldHVybiBD VUVfU1VDQ0VTUzsKKwllbHNlCisJCXJldHVybiBDVUVfU0NMRUFOX0ZBSUxFRDsKK30KKworCitD VV9UZXN0SW5mbyBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzW10gPSB7CisJeyAic3luY29iaiB0aW1l bGluZSB0ZXN0IiwgIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3QgfSwKKwlDVV9URVNUX0lO Rk9fTlVMTCwKK307CisKKyNkZWZpbmUgR0ZYX0NPTVBVVEVfTk9QICAweGZmZmYxMDAwCisjZGVm aW5lIFNETUFfTk9QICAweDAKK3N0YXRpYyBpbnQgc3luY29ial9jb21tYW5kX3N1Ym1pc3Npb25f aGVscGVyKHVpbnQzMl90IHN5bmNvYmpfaGFuZGxlLCBib29sCisJCQkJCSAgICAgd2FpdF9vcl9z aWduYWwsIHVpbnQ2NF90IHBvaW50KQoreworCWFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0 X2hhbmRsZTsKKwlhbWRncHVfYm9faGFuZGxlIGliX3Jlc3VsdF9oYW5kbGU7CisJdm9pZCAqaWJf cmVzdWx0X2NwdTsKKwl1aW50NjRfdCBpYl9yZXN1bHRfbWNfYWRkcmVzczsKKwlzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVuayBjaHVua3NbMl07CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtf ZGF0YSBjaHVua19kYXRhOworCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogc3lu Y29ial9kYXRhOworCXN0cnVjdCBhbWRncHVfY3NfZmVuY2UgZmVuY2Vfc3RhdHVzOworCWFtZGdw dV9ib19saXN0X2hhbmRsZSBib19saXN0OworCWFtZGdwdV92YV9oYW5kbGUgdmFfaGFuZGxlOwor CXVpbnQzMl90IGV4cGlyZWQsIGZsYWdzOworCWludCBpLCByOworCXVpbnQ2NF90IHNlcV9ubzsK KwlzdGF0aWMgdWludDMyX3QgKnB0cjsKKworCXIgPSBhbWRncHVfY3NfY3R4X2NyZWF0ZShkZXZp Y2VfaGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwor CXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCA0MDk2LCA0MDk2LAor CQkJCSAgICBBTURHUFVfR0VNX0RPTUFJTl9HVFQsIDAsCisJCQkJICAgICZpYl9yZXN1bHRfaGFu ZGxlLCAmaWJfcmVzdWx0X2NwdSwKKwkJCQkgICAgJmliX3Jlc3VsdF9tY19hZGRyZXNzLCAmdmFf aGFuZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2dldF9ib19s aXN0KGRldmljZV9oYW5kbGUsIGliX3Jlc3VsdF9oYW5kbGUsIE5VTEwsCisJCQkgICAgICAgJmJv X2xpc3QpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXB0ciA9IGliX3Jlc3VsdF9jcHU7 CisKKwlmb3IgKGkgPSAwOyBpIDwgMTY7ICsraSkKKwkJcHRyW2ldID0gd2FpdF9vcl9zaWduYWwg PyBHRlhfQ09NUFVURV9OT1A6IFNETUFfTk9QOworCisJY2h1bmtzWzBdLmNodW5rX2lkID0gQU1E R1BVX0NIVU5LX0lEX0lCOworCWNodW5rc1swXS5sZW5ndGhfZHcgPSBzaXplb2Yoc3RydWN0IGRy bV9hbWRncHVfY3NfY2h1bmtfaWIpIC8gNDsKKwljaHVua3NbMF0uY2h1bmtfZGF0YSA9ICh1aW50 NjRfdCkodWludHB0cl90KSZjaHVua19kYXRhOworCWNodW5rX2RhdGEuaWJfZGF0YS5fcGFkID0g MDsKKwljaHVua19kYXRhLmliX2RhdGEudmFfc3RhcnQgPSBpYl9yZXN1bHRfbWNfYWRkcmVzczsK KwljaHVua19kYXRhLmliX2RhdGEuaWJfYnl0ZXMgPSAxNiAqIDQ7CisJY2h1bmtfZGF0YS5pYl9k YXRhLmlwX3R5cGUgPSB3YWl0X29yX3NpZ25hbCA/IEFNREdQVV9IV19JUF9HRlggOgorCQlBTURH UFVfSFdfSVBfRE1BOworCWNodW5rX2RhdGEuaWJfZGF0YS5pcF9pbnN0YW5jZSA9IDA7CisJY2h1 bmtfZGF0YS5pYl9kYXRhLnJpbmcgPSAwOworCWNodW5rX2RhdGEuaWJfZGF0YS5mbGFncyA9IDA7 CisKKwljaHVua3NbMV0uY2h1bmtfaWQgPSB3YWl0X29yX3NpZ25hbCA/CisJCUFNREdQVV9DSFVO S19JRF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQgOgorCQlBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9U SU1FTElORV9TSUdOQUw7CisJY2h1bmtzWzFdLmxlbmd0aF9kdyA9IHNpemVvZihzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVua19zeW5jb2JqKSAvIDQ7CisJY2h1bmtzWzFdLmNodW5rX2RhdGEgPSAo dWludDY0X3QpKHVpbnRwdHJfdCkmc3luY29ial9kYXRhOworCXN5bmNvYmpfZGF0YS5oYW5kbGUg PSBzeW5jb2JqX2hhbmRsZTsKKwlzeW5jb2JqX2RhdGEucG9pbnQgPSBwb2ludDsKKwlzeW5jb2Jq X2RhdGEuZmxhZ3MgPSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVDsKKwor CXIgPSBhbWRncHVfY3Nfc3VibWl0X3JhdyhkZXZpY2VfaGFuZGxlLAorCQkJCSBjb250ZXh0X2hh bmRsZSwKKwkJCQkgYm9fbGlzdCwKKwkJCQkgMiwKKwkJCQkgY2h1bmtzLAorCQkJCSAmc2VxX25v KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKworCW1lbXNldCgmZmVuY2Vfc3RhdHVzLCAw LCBzaXplb2Yoc3RydWN0IGFtZGdwdV9jc19mZW5jZSkpOworCWZlbmNlX3N0YXR1cy5jb250ZXh0 ID0gY29udGV4dF9oYW5kbGU7CisJZmVuY2Vfc3RhdHVzLmlwX3R5cGUgPSB3YWl0X29yX3NpZ25h bCA/IEFNREdQVV9IV19JUF9HRlg6CisJCUFNREdQVV9IV19JUF9ETUE7CisJZmVuY2Vfc3RhdHVz LmlwX2luc3RhbmNlID0gMDsKKwlmZW5jZV9zdGF0dXMucmluZyA9IDA7CisJZmVuY2Vfc3RhdHVz LmZlbmNlID0gc2VxX25vOworCisJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZl bmNlX3N0YXR1cywKKwkJCUFNREdQVV9USU1FT1VUX0lORklOSVRFLDAsICZleHBpcmVkKTsKKwlD VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2xpc3RfZGVzdHJveShib19s aXN0KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2Fu ZF9mcmVlKGliX3Jlc3VsdF9oYW5kbGUsIHZhX2hhbmRsZSwKKwkJCQkgICAgIGliX3Jlc3VsdF9t Y19hZGRyZXNzLCA0MDk2KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1 X2NzX2N0eF9mcmVlKGNvbnRleHRfaGFuZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisK KwlyZXR1cm4gcjsKK30KKworc3RydWN0IHN5bmNvYmpfcG9pbnQgeworCXVpbnQzMl90IHN5bmNv YmpfaGFuZGxlOworCXVpbnQ2NF90IHBvaW50OworfTsKKworc3RhdGljIHZvaWQgKnN5bmNvYmpf d2FpdCh2b2lkICpkYXRhKQoreworCXN0cnVjdCBzeW5jb2JqX3BvaW50ICpzcCA9IChzdHJ1Y3Qg c3luY29ial9wb2ludCAqKWRhdGE7CisJaW50IHI7CisKKwlyID0gc3luY29ial9jb21tYW5kX3N1 Ym1pc3Npb25faGVscGVyKHNwLT5zeW5jb2JqX2hhbmRsZSwgdHJ1ZSwKKwkJCQkJICAgICAgc3At PnBvaW50KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyZXR1cm4gKHZvaWQgKikobG9u ZylyOworfQorCitzdGF0aWMgdm9pZCAqc3luY29ial9zaWduYWwodm9pZCAqZGF0YSkKK3sKKwlz dHJ1Y3Qgc3luY29ial9wb2ludCAqc3AgPSAoc3RydWN0IHN5bmNvYmpfcG9pbnQgKilkYXRhOwor CWludCByOworCisJciA9IHN5bmNvYmpfY29tbWFuZF9zdWJtaXNzaW9uX2hlbHBlcihzcC0+c3lu Y29ial9oYW5kbGUsIGZhbHNlLAorCQkJCQkgICAgICBzcC0+cG9pbnQpOworCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKKworCXJldHVybiAodm9pZCAqKShsb25nKXI7Cit9CisKK3N0YXRpYyB2b2lk IGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qodm9pZCkKK3sKKwlzdGF0aWMgcHRocmVhZF90 IHdhaXRfdGhyZWFkOworCXN0YXRpYyBwdGhyZWFkX3Qgc2lnbmFsX3RocmVhZDsKKwlzdGF0aWMg cHRocmVhZF90IGNfdGhyZWFkOworCXN0cnVjdCBzeW5jb2JqX3BvaW50IHNwMSwgc3AyLCBzcDM7 CisJdWludDMyX3Qgc3luY29ial9oYW5kbGU7CisJdWludDY0X3QgcGF5bG9hZDsKKwl1aW50NjRf dCB3YWl0X3BvaW50LCBzaWduYWxfcG9pbnQ7CisJdWludDY0X3QgdGltZW91dDsKKwlzdHJ1Y3Qg dGltZXNwZWMgdHA7CisJaW50IHIsIHN5bmNfZmQ7CisJdm9pZCAqdG1wOworCisJciA9ICBhbWRn cHVfY3NfY3JlYXRlX3N5bmNvYmoyKGRldmljZV9oYW5kbGUsIDAsICZzeW5jb2JqX2hhbmRsZSk7 CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJLy8gd2FpdCBvbiBwb2ludCA1CisJc3AxLnN5 bmNvYmpfaGFuZGxlID0gc3luY29ial9oYW5kbGU7CisJc3AxLnBvaW50ID0gNTsKKwlyID0gcHRo cmVhZF9jcmVhdGUoJndhaXRfdGhyZWFkLCBOVUxMLCBzeW5jb2JqX3dhaXQsICZzcDEpOworCUNV X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCS8vIHNpZ25hbCBvbiBwb2ludCAxMAorCXNwMi5zeW5j b2JqX2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOworCXNwMi5wb2ludCA9IDEwOworCXIgPSBwdGhy ZWFkX2NyZWF0ZSgmc2lnbmFsX3RocmVhZCwgTlVMTCwgc3luY29ial9zaWduYWwsICZzcDIpOwor CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBwdGhyZWFkX2pvaW4od2FpdF90aHJlYWQs ICZ0bXApOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwodG1wLCAw KTsKKworCXIgPSBwdGhyZWFkX2pvaW4oc2lnbmFsX3RocmVhZCwgJnRtcCk7CisJQ1VfQVNTRVJU X0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTCh0bXAsIDApOworCisJLy9xdWVyeSB0aW1l bGluZSBwYXlsb2FkCisJciA9IGFtZGdwdV9jc19zeW5jb2JqX3F1ZXJ5KGRldmljZV9oYW5kbGUs ICZzeW5jb2JqX2hhbmRsZSwKKwkJCQkgICAgJnBheWxvYWQsIDEpOworCUNVX0FTU0VSVF9FUVVB TChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMTApOworCisJLy9zaWduYWwgb24g cG9pbnQgMTYKKwlzcDMuc3luY29ial9oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKKwlzcDMucG9p bnQgPSAxNjsKKwlyID0gcHRocmVhZF9jcmVhdGUoJmNfdGhyZWFkLCBOVUxMLCBzeW5jb2JqX3Np Z25hbCwgJnNwMyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCS8vQ1BVIHdhaXQgb24gcG9p bnQgMTYKKwl3YWl0X3BvaW50ID0gMTY7CisJdGltZW91dCA9IDA7CisJY2xvY2tfZ2V0dGltZShD TE9DS19NT05PVE9OSUMsICZ0cCk7CisJdGltZW91dCA9IHRwLnR2X3NlYyAqIDEwMDAwMDAwMDBV TEwgKyB0cC50dl9uc2VjOworCXRpbWVvdXQgKz0gMHgxMDAwMDAwMDAwMDsgLy8xMHMKKwlyID0g YW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfd2FpdChkZXZpY2VfaGFuZGxlLCAmc3luY29ial9o YW5kbGUsCisJCQkJCSAgICAmd2FpdF9wb2ludCwgMSwgdGltZW91dCwKKwkJCQkJICAgIERSTV9T WU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgfAorCQkJCQkgICAgRFJNX1NZTkNPQkpfV0FJVF9G TEFHU19XQUlUX0ZPUl9TVUJNSVQsCisJCQkJCSAgICBOVUxMKTsKKworCUNVX0FTU0VSVF9FUVVB TChyLCAwKTsKKwlyID0gcHRocmVhZF9qb2luKGNfdGhyZWFkLCAmdG1wKTsKKwlDVV9BU1NFUlRf RVFVQUwociwgMCk7CisJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7CisKKwkvLyBleHBvcnQgcG9p bnQgMTYgYW5kIGltcG9ydCB0byBwb2ludCAxOAorCXIgPSBhbWRncHVfY3Nfc3luY29ial9leHBv cnRfc3luY19maWxlMihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hhbmRsZSwKKwkJCQkJCTE2LAor CQkJCQkJRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQsCisJCQkJCQkmc3lu Y19mZCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCXIgPSBhbWRncHVfY3Nfc3luY29ial9p bXBvcnRfc3luY19maWxlMihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hhbmRsZSwKKwkJCQkJCTE4 LCBzeW5jX2ZkKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJciA9IGFtZGdwdV9jc19zeW5j b2JqX3F1ZXJ5KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hhbmRsZSwKKwkJCQkgICAgJnBheWxv YWQsIDEpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9h ZCwgMTgpOworCisJLy8gQ1BVIHNpZ25hbCBvbiBwb2ludCAyMAorCXNpZ25hbF9wb2ludCA9IDIw OworCXIgPSBhbWRncHVfY3Nfc3luY29ial90aW1lbGluZV9zaWduYWwoZGV2aWNlX2hhbmRsZSwg JnN5bmNvYmpfaGFuZGxlLAorCQkJCQkgICAgICAmc2lnbmFsX3BvaW50LCAxKTsKKwlDVV9BU1NF UlRfRVFVQUwociwgMCk7CisJciA9IGFtZGdwdV9jc19zeW5jb2JqX3F1ZXJ5KGRldmljZV9oYW5k bGUsICZzeW5jb2JqX2hhbmRsZSwKKwkJCQkgICAgJnBheWxvYWQsIDEpOworCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMjApOworCisJciA9IGFtZGdw dV9jc19kZXN0cm95X3N5bmNvYmooZGV2aWNlX2hhbmRsZSwgc3luY29ial9oYW5kbGUpOworCUNV X0FTU0VSVF9FUVVBTChyLCAwKTsKKworfQotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=