From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH libdrm 7/7] add syncobj timeline tests v3 Date: Thu, 16 May 2019 16:07:14 +0800 Message-ID: <20190516080714.14980-7-david1.zhou@amd.com> References: <20190516080714.14980-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710074.outbound.protection.outlook.com [40.107.71.74]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F9FE8932E for ; Thu, 16 May 2019 08:07:45 +0000 (UTC) In-Reply-To: <20190516080714.14980-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: Christian.Koenig@amd.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org djI6IGRyb3AgRFJNX1NZTkNPQkpfQ1JFQVRFX1RZUEVfVElNRUxJTkUsIGZpeCB0aW1lb3V0IGNh bGN1bGF0aW9uLAogICAgZml4IHNvbWUgd2FybmluZ3MKdjM6IGFkZCBleHBvcnQvaW1wb3J0IGFu ZCBjcHUgc2lnbmFsIHRlc3RpbmcgY2FzZXMKClNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3Ug PGRhdmlkMS56aG91QGFtZC5jb20+CkFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+CkFja2VkLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcu bGFuZHdlcmxpbkBpbnRlbC5jb20+Ci0tLQogdGVzdHMvYW1kZ3B1L01ha2VmaWxlLmFtICAgICB8 ICAgMyArLQogdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgICB8ICAxMSArKwogdGVzdHMvYW1k Z3B1L2FtZGdwdV90ZXN0LmggICB8ICAyMSArKysKIHRlc3RzL2FtZGdwdS9tZXNvbi5idWlsZCAg ICAgfCAgIDIgKy0KIHRlc3RzL2FtZGdwdS9zeW5jb2JqX3Rlc3RzLmMgfCAyOTAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMzI1IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvYW1kZ3B1L3N5 bmNvYmpfdGVzdHMuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rl c3RzL2FtZGdwdS9NYWtlZmlsZS5hbQppbmRleCA0ODI3ODg0OC4uOTIwODgyZDAgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9hbWRncHUvTWFrZWZpbGUu YW0KQEAgLTM0LDQgKzM0LDUgQEAgYW1kZ3B1X3Rlc3RfU09VUkNFUyA9IFwKIAl1dmVfaWIuaCBc CiAJZGVhZGxvY2tfdGVzdHMuYyBcCiAJdm1fdGVzdHMuYwlcCi0JcmFzX3Rlc3RzLmMKKwlyYXNf dGVzdHMuYyBcCisJc3luY29ial90ZXN0cy5jCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1k Z3B1X3Rlc3QuYyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCmluZGV4IDM1YzhiZjZjLi43 MzQwM2ZiNCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKKysrIGIvdGVz dHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKQEAgLTU3LDYgKzU3LDcgQEAKICNkZWZpbmUgREVBRExP Q0tfVEVTVFNfU1RSICJEZWFkbG9jayBUZXN0cyIKICNkZWZpbmUgVk1fVEVTVFNfU1RSICJWTSBU ZXN0cyIKICNkZWZpbmUgUkFTX1RFU1RTX1NUUiAiUkFTIFRlc3RzIgorI2RlZmluZSBTWU5DT0JK X1RJTUVMSU5FX1RFU1RTX1NUUiAiU1lOQ09CSiBUSU1FTElORSBUZXN0cyIKIAogLyoqCiAgKiAg T3BlbiBoYW5kbGVzIGZvciBhbWRncHUgZGV2aWNlcwpAQCAtMTIzLDYgKzEyNCwxMiBAQCBzdGF0 aWMgQ1VfU3VpdGVJbmZvIHN1aXRlc1tdID0gewogCQkucENsZWFudXBGdW5jID0gc3VpdGVfcmFz X3Rlc3RzX2NsZWFuLAogCQkucFRlc3RzID0gcmFzX3Rlc3RzLAogCX0sCisJeworCQkucE5hbWUg PSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiwKKwkJLnBJbml0RnVuYyA9IHN1aXRlX3N5bmNv YmpfdGltZWxpbmVfdGVzdHNfaW5pdCwKKwkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3N5bmNvYmpf dGltZWxpbmVfdGVzdHNfY2xlYW4sCisJCS5wVGVzdHMgPSBzeW5jb2JqX3RpbWVsaW5lX3Rlc3Rz LAorCX0sCiAKIAlDVV9TVUlURV9JTkZPX05VTEwsCiB9OwpAQCAtMTc2LDYgKzE4MywxMCBAQCBz dGF0aWMgU3VpdGVzX0FjdGl2ZV9TdGF0dXMgc3VpdGVzX2FjdGl2ZV9zdGF0W10gPSB7CiAJCQku cE5hbWUgPSBSQVNfVEVTVFNfU1RSLAogCQkJLnBBY3RpdmUgPSBzdWl0ZV9yYXNfdGVzdHNfZW5h YmxlLAogCQl9LAorCQl7CisJCQkucE5hbWUgPSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiwK KwkJCS5wQWN0aXZlID0gc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUsCisJCX0s CiB9OwogCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIvdGVzdHMv YW1kZ3B1L2FtZGdwdV90ZXN0LmgKaW5kZXggYmNkMGJjN2UuLjM2Njc1ZWEzIDEwMDY0NAotLS0g YS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rl c3QuaApAQCAtMjE2LDYgKzIxNiwyNyBAQCBDVV9CT09MIHN1aXRlX3Jhc190ZXN0c19lbmFibGUo dm9pZCk7CiBleHRlcm4gQ1VfVGVzdEluZm8gcmFzX3Rlc3RzW107CiAKIAorLyoqCisgKiBJbml0 aWFsaXplIHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3luY29i al90aW1lbGluZV90ZXN0c19pbml0KCk7CisKKy8qKgorICogRGVpbml0aWFsaXplIHN5bmNvYmog dGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0 c19jbGVhbigpOworCisvKioKKyAqIERlY2lkZSBpZiB0aGUgc3VpdGUgaXMgZW5hYmxlZCBieSBk ZWZhdWx0IG9yIG5vdC4KKyAqLworQ1VfQk9PTCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Rz X2VuYWJsZSh2b2lkKTsKKworLyoqCisgKiBUZXN0cyBpbiBzeW5jb2JqIHRpbWVsaW5lIHRlc3Qg c3VpdGUKKyAqLworZXh0ZXJuIENVX1Rlc3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNbXTsK KworCiAvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKICAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvYW1k Z3B1L21lc29uLmJ1aWxkIGIvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCmluZGV4IDk1ZWQ5MzA1 Li4xNzI2Y2I0MyAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCisrKyBiL3Rl c3RzL2FtZGdwdS9tZXNvbi5idWlsZApAQCAtMjQsNyArMjQsNyBAQCBpZiBkZXBfY3VuaXQuZm91 bmQoKQogICAgIGZpbGVzKAogICAgICAgJ2FtZGdwdV90ZXN0LmMnLCAnYmFzaWNfdGVzdHMuYycs ICdib190ZXN0cy5jJywgJ2NzX3Rlc3RzLmMnLAogICAgICAgJ3ZjZV90ZXN0cy5jJywgJ3V2ZF9l bmNfdGVzdHMuYycsICd2Y25fdGVzdHMuYycsICdkZWFkbG9ja190ZXN0cy5jJywKLSAgICAgICd2 bV90ZXN0cy5jJywgJ3Jhc190ZXN0cy5jJywKKyAgICAgICd2bV90ZXN0cy5jJywgJ3Jhc190ZXN0 cy5jJywgJ3N5bmNvYmpfdGVzdHMuYycsCiAgICAgKSwKICAgICBkZXBlbmRlbmNpZXMgOiBbZGVw X2N1bml0LCBkZXBfdGhyZWFkc10sCiAgICAgaW5jbHVkZV9kaXJlY3RvcmllcyA6IFtpbmNfcm9v dCwgaW5jX2RybSwgaW5jbHVkZV9kaXJlY3RvcmllcygnLi4vLi4vYW1kZ3B1JyldLApkaWZmIC0t Z2l0IGEvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9zeW5jb2Jq X3Rlc3RzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmEwYzYyN2Q3Ci0t LSAvZGV2L251bGwKKysrIGIvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYwpAQCAtMCwwICsx LDI5MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklH SFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdT IElOIFRIRSBTT0ZUV0FSRS4KKyAqCisqLworCisjaW5jbHVkZSAiQ1VuaXQvQmFzaWMuaCIKKwor I2luY2x1ZGUgImFtZGdwdV90ZXN0LmgiCisjaW5jbHVkZSAiYW1kZ3B1X2RybS5oIgorI2luY2x1 ZGUgImFtZGdwdV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworc3RhdGljICBh bWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlOworc3RhdGljICB1aW50MzJfdCAgbWFq b3JfdmVyc2lvbjsKK3N0YXRpYyAgdWludDMyX3QgIG1pbm9yX3ZlcnNpb247CisKK3N0YXRpYyB2 b2lkIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qodm9pZCk7CisKK0NVX0JPT0wgc3VpdGVf c3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCkKK3sKKwlyZXR1cm4gQ1VfVFJVRTsK K30KKworaW50IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVzdHNfaW5pdCh2b2lkKQoreworCWlu dCByOworCisJciA9IGFtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZShkcm1fYW1kZ3B1WzBdLCAmbWFq b3JfdmVyc2lvbiwKKwkJCQkgICAmbWlub3JfdmVyc2lvbiwgJmRldmljZV9oYW5kbGUpOworCisJ aWYgKHIpIHsKKwkJaWYgKChyID09IC1FQUNDRVMpICYmIChlcnJubyA9PSBFQUNDRVMpKQorCQkJ cHJpbnRmKCJcblxuRXJyb3I6JXMuICIKKwkJCQkiSGludDpUcnkgdG8gcnVuIHRoaXMgdGVzdCBw cm9ncmFtIGFzIHJvb3QuIiwKKwkJCQlzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4gQ1VFX1NJ TklUX0ZBSUxFRDsKKwl9CisKKwlyZXR1cm4gQ1VFX1NVQ0NFU1M7Cit9CisKK2ludCBzdWl0ZV9z eW5jb2JqX3RpbWVsaW5lX3Rlc3RzX2NsZWFuKHZvaWQpCit7CisJaW50IHIgPSBhbWRncHVfZGV2 aWNlX2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxlKTsKKworCWlmIChyID09IDApCisJCXJldHVy biBDVUVfU1VDQ0VTUzsKKwllbHNlCisJCXJldHVybiBDVUVfU0NMRUFOX0ZBSUxFRDsKK30KKwor CitDVV9UZXN0SW5mbyBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzW10gPSB7CisJeyAic3luY29iaiB0 aW1lbGluZSB0ZXN0IiwgIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3QgfSwKKwlDVV9URVNU X0lORk9fTlVMTCwKK307CisKKyNkZWZpbmUgR0ZYX0NPTVBVVEVfTk9QICAweGZmZmYxMDAwCisj ZGVmaW5lIFNETUFfTk9QICAweDAKK3N0YXRpYyBpbnQgc3luY29ial9jb21tYW5kX3N1Ym1pc3Np b25faGVscGVyKHVpbnQzMl90IHN5bmNvYmpfaGFuZGxlLCBib29sCisJCQkJCSAgICAgd2FpdF9v cl9zaWduYWwsIHVpbnQ2NF90IHBvaW50KQoreworCWFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250 ZXh0X2hhbmRsZTsKKwlhbWRncHVfYm9faGFuZGxlIGliX3Jlc3VsdF9oYW5kbGU7CisJdm9pZCAq aWJfcmVzdWx0X2NwdTsKKwl1aW50NjRfdCBpYl9yZXN1bHRfbWNfYWRkcmVzczsKKwlzdHJ1Y3Qg ZHJtX2FtZGdwdV9jc19jaHVuayBjaHVua3NbMl07CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1 bmtfZGF0YSBjaHVua19kYXRhOworCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmog c3luY29ial9kYXRhOworCXN0cnVjdCBhbWRncHVfY3NfZmVuY2UgZmVuY2Vfc3RhdHVzOworCWFt ZGdwdV9ib19saXN0X2hhbmRsZSBib19saXN0OworCWFtZGdwdV92YV9oYW5kbGUgdmFfaGFuZGxl OworCXVpbnQzMl90IGV4cGlyZWQsIGZsYWdzOworCWludCBpLCByOworCXVpbnQ2NF90IHNlcV9u bzsKKwlzdGF0aWMgdWludDMyX3QgKnB0cjsKKworCXIgPSBhbWRncHVfY3NfY3R4X2NyZWF0ZShk ZXZpY2VfaGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsK KworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCA0MDk2LCA0MDk2 LAorCQkJCSAgICBBTURHUFVfR0VNX0RPTUFJTl9HVFQsIDAsCisJCQkJICAgICZpYl9yZXN1bHRf aGFuZGxlLCAmaWJfcmVzdWx0X2NwdSwKKwkJCQkgICAgJmliX3Jlc3VsdF9tY19hZGRyZXNzLCAm dmFfaGFuZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2dldF9i b19saXN0KGRldmljZV9oYW5kbGUsIGliX3Jlc3VsdF9oYW5kbGUsIE5VTEwsCisJCQkgICAgICAg JmJvX2xpc3QpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXB0ciA9IGliX3Jlc3VsdF9j cHU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTY7ICsraSkKKwkJcHRyW2ldID0gd2FpdF9vcl9zaWdu YWwgPyBHRlhfQ09NUFVURV9OT1A6IFNETUFfTk9QOworCisJY2h1bmtzWzBdLmNodW5rX2lkID0g QU1ER1BVX0NIVU5LX0lEX0lCOworCWNodW5rc1swXS5sZW5ndGhfZHcgPSBzaXplb2Yoc3RydWN0 IGRybV9hbWRncHVfY3NfY2h1bmtfaWIpIC8gNDsKKwljaHVua3NbMF0uY2h1bmtfZGF0YSA9ICh1 aW50NjRfdCkodWludHB0cl90KSZjaHVua19kYXRhOworCWNodW5rX2RhdGEuaWJfZGF0YS5fcGFk ID0gMDsKKwljaHVua19kYXRhLmliX2RhdGEudmFfc3RhcnQgPSBpYl9yZXN1bHRfbWNfYWRkcmVz czsKKwljaHVua19kYXRhLmliX2RhdGEuaWJfYnl0ZXMgPSAxNiAqIDQ7CisJY2h1bmtfZGF0YS5p Yl9kYXRhLmlwX3R5cGUgPSB3YWl0X29yX3NpZ25hbCA/IEFNREdQVV9IV19JUF9HRlggOgorCQlB TURHUFVfSFdfSVBfRE1BOworCWNodW5rX2RhdGEuaWJfZGF0YS5pcF9pbnN0YW5jZSA9IDA7CisJ Y2h1bmtfZGF0YS5pYl9kYXRhLnJpbmcgPSAwOworCWNodW5rX2RhdGEuaWJfZGF0YS5mbGFncyA9 IDA7CisKKwljaHVua3NbMV0uY2h1bmtfaWQgPSB3YWl0X29yX3NpZ25hbCA/CisJCUFNREdQVV9D SFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQgOgorCQlBTURHUFVfQ0hVTktfSURfU1lOQ09C Sl9USU1FTElORV9TSUdOQUw7CisJY2h1bmtzWzFdLmxlbmd0aF9kdyA9IHNpemVvZihzdHJ1Y3Qg ZHJtX2FtZGdwdV9jc19jaHVua19zeW5jb2JqKSAvIDQ7CisJY2h1bmtzWzFdLmNodW5rX2RhdGEg PSAodWludDY0X3QpKHVpbnRwdHJfdCkmc3luY29ial9kYXRhOworCXN5bmNvYmpfZGF0YS5oYW5k bGUgPSBzeW5jb2JqX2hhbmRsZTsKKwlzeW5jb2JqX2RhdGEucG9pbnQgPSBwb2ludDsKKwlzeW5j b2JqX2RhdGEuZmxhZ3MgPSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVDsK KworCXIgPSBhbWRncHVfY3Nfc3VibWl0X3JhdyhkZXZpY2VfaGFuZGxlLAorCQkJCSBjb250ZXh0 X2hhbmRsZSwKKwkJCQkgYm9fbGlzdCwKKwkJCQkgMiwKKwkJCQkgY2h1bmtzLAorCQkJCSAmc2Vx X25vKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKworCW1lbXNldCgmZmVuY2Vfc3RhdHVz LCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV9jc19mZW5jZSkpOworCWZlbmNlX3N0YXR1cy5jb250 ZXh0ID0gY29udGV4dF9oYW5kbGU7CisJZmVuY2Vfc3RhdHVzLmlwX3R5cGUgPSB3YWl0X29yX3Np Z25hbCA/IEFNREdQVV9IV19JUF9HRlg6CisJCUFNREdQVV9IV19JUF9ETUE7CisJZmVuY2Vfc3Rh dHVzLmlwX2luc3RhbmNlID0gMDsKKwlmZW5jZV9zdGF0dXMucmluZyA9IDA7CisJZmVuY2Vfc3Rh dHVzLmZlbmNlID0gc2VxX25vOworCisJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMo JmZlbmNlX3N0YXR1cywKKwkJCUFNREdQVV9USU1FT1VUX0lORklOSVRFLDAsICZleHBpcmVkKTsK KwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2xpc3RfZGVzdHJveShi b19saXN0KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX3VubWFw X2FuZF9mcmVlKGliX3Jlc3VsdF9oYW5kbGUsIHZhX2hhbmRsZSwKKwkJCQkgICAgIGliX3Jlc3Vs dF9tY19hZGRyZXNzLCA0MDk2KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1k Z3B1X2NzX2N0eF9mcmVlKGNvbnRleHRfaGFuZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7 CisKKwlyZXR1cm4gcjsKK30KKworc3RydWN0IHN5bmNvYmpfcG9pbnQgeworCXVpbnQzMl90IHN5 bmNvYmpfaGFuZGxlOworCXVpbnQ2NF90IHBvaW50OworfTsKKworc3RhdGljIHZvaWQgKnN5bmNv Ympfd2FpdCh2b2lkICpkYXRhKQoreworCXN0cnVjdCBzeW5jb2JqX3BvaW50ICpzcCA9IChzdHJ1 Y3Qgc3luY29ial9wb2ludCAqKWRhdGE7CisJaW50IHI7CisKKwlyID0gc3luY29ial9jb21tYW5k X3N1Ym1pc3Npb25faGVscGVyKHNwLT5zeW5jb2JqX2hhbmRsZSwgdHJ1ZSwKKwkJCQkJICAgICAg c3AtPnBvaW50KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyZXR1cm4gKHZvaWQgKiko bG9uZylyOworfQorCitzdGF0aWMgdm9pZCAqc3luY29ial9zaWduYWwodm9pZCAqZGF0YSkKK3sK KwlzdHJ1Y3Qgc3luY29ial9wb2ludCAqc3AgPSAoc3RydWN0IHN5bmNvYmpfcG9pbnQgKilkYXRh OworCWludCByOworCisJciA9IHN5bmNvYmpfY29tbWFuZF9zdWJtaXNzaW9uX2hlbHBlcihzcC0+ c3luY29ial9oYW5kbGUsIGZhbHNlLAorCQkJCQkgICAgICBzcC0+cG9pbnQpOworCUNVX0FTU0VS VF9FUVVBTChyLCAwKTsKKworCXJldHVybiAodm9pZCAqKShsb25nKXI7Cit9CisKK3N0YXRpYyB2 b2lkIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qodm9pZCkKK3sKKwlzdGF0aWMgcHRocmVh ZF90IHdhaXRfdGhyZWFkOworCXN0YXRpYyBwdGhyZWFkX3Qgc2lnbmFsX3RocmVhZDsKKwlzdGF0 aWMgcHRocmVhZF90IGNfdGhyZWFkOworCXN0cnVjdCBzeW5jb2JqX3BvaW50IHNwMSwgc3AyLCBz cDM7CisJdWludDMyX3Qgc3luY29ial9oYW5kbGU7CisJdWludDY0X3QgcGF5bG9hZDsKKwl1aW50 NjRfdCB3YWl0X3BvaW50LCBzaWduYWxfcG9pbnQ7CisJdWludDY0X3QgdGltZW91dDsKKwlzdHJ1 Y3QgdGltZXNwZWMgdHA7CisJaW50IHIsIHN5bmNfZmQ7CisJdm9pZCAqdG1wOworCisJciA9ICBh bWRncHVfY3NfY3JlYXRlX3N5bmNvYmoyKGRldmljZV9oYW5kbGUsIDAsICZzeW5jb2JqX2hhbmRs ZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJLy8gd2FpdCBvbiBwb2ludCA1CisJc3Ax LnN5bmNvYmpfaGFuZGxlID0gc3luY29ial9oYW5kbGU7CisJc3AxLnBvaW50ID0gNTsKKwlyID0g cHRocmVhZF9jcmVhdGUoJndhaXRfdGhyZWFkLCBOVUxMLCBzeW5jb2JqX3dhaXQsICZzcDEpOwor CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCS8vIHNpZ25hbCBvbiBwb2ludCAxMAorCXNwMi5z eW5jb2JqX2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOworCXNwMi5wb2ludCA9IDEwOworCXIgPSBw dGhyZWFkX2NyZWF0ZSgmc2lnbmFsX3RocmVhZCwgTlVMTCwgc3luY29ial9zaWduYWwsICZzcDIp OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBwdGhyZWFkX2pvaW4od2FpdF90aHJl YWQsICZ0bXApOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwodG1w LCAwKTsKKworCXIgPSBwdGhyZWFkX2pvaW4oc2lnbmFsX3RocmVhZCwgJnRtcCk7CisJQ1VfQVNT RVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTCh0bXAsIDApOworCisJLy9xdWVyeSB0 aW1lbGluZSBwYXlsb2FkCisJciA9IGFtZGdwdV9jc19zeW5jb2JqX3F1ZXJ5KGRldmljZV9oYW5k bGUsICZzeW5jb2JqX2hhbmRsZSwKKwkJCQkgICAgJnBheWxvYWQsIDEpOworCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMTApOworCisJLy9zaWduYWwg b24gcG9pbnQgMTYKKwlzcDMuc3luY29ial9oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKKwlzcDMu cG9pbnQgPSAxNjsKKwlyID0gcHRocmVhZF9jcmVhdGUoJmNfdGhyZWFkLCBOVUxMLCBzeW5jb2Jq X3NpZ25hbCwgJnNwMyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCS8vQ1BVIHdhaXQgb24g cG9pbnQgMTYKKwl3YWl0X3BvaW50ID0gMTY7CisJdGltZW91dCA9IDA7CisJY2xvY2tfZ2V0dGlt ZShDTE9DS19NT05PVE9OSUMsICZ0cCk7CisJdGltZW91dCA9IHRwLnR2X3NlYyAqIDEwMDAwMDAw MDBVTEwgKyB0cC50dl9uc2VjOworCXRpbWVvdXQgKz0gMHgxMDAwMDAwMDAwMDsgLy8xMHMKKwly ID0gYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfd2FpdChkZXZpY2VfaGFuZGxlLCAmc3luY29i al9oYW5kbGUsCisJCQkJCSAgICAmd2FpdF9wb2ludCwgMSwgdGltZW91dCwKKwkJCQkJICAgIERS TV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgfAorCQkJCQkgICAgRFJNX1NZTkNPQkpfV0FJ VF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQsCisJCQkJCSAgICBOVUxMKTsKKworCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKKwlyID0gcHRocmVhZF9qb2luKGNfdGhyZWFkLCAmdG1wKTsKKwlDVV9BU1NF UlRfRVFVQUwociwgMCk7CisJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7CisKKwkvLyBleHBvcnQg cG9pbnQgMTYgYW5kIGltcG9ydCB0byBwb2ludCAxOAorCXIgPSBhbWRncHVfY3Nfc3luY29ial9l eHBvcnRfc3luY19maWxlMihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hhbmRsZSwKKwkJCQkJCTE2 LAorCQkJCQkJRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQsCisJCQkJCQkm c3luY19mZCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCXIgPSBhbWRncHVfY3Nfc3luY29i al9pbXBvcnRfc3luY19maWxlMihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hhbmRsZSwKKwkJCQkJ CTE4LCBzeW5jX2ZkKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJciA9IGFtZGdwdV9jc19z eW5jb2JqX3F1ZXJ5KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hhbmRsZSwKKwkJCQkgICAgJnBh eWxvYWQsIDEpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwocGF5 bG9hZCwgMTgpOworCisJLy8gQ1BVIHNpZ25hbCBvbiBwb2ludCAyMAorCXNpZ25hbF9wb2ludCA9 IDIwOworCXIgPSBhbWRncHVfY3Nfc3luY29ial90aW1lbGluZV9zaWduYWwoZGV2aWNlX2hhbmRs ZSwgJnN5bmNvYmpfaGFuZGxlLAorCQkJCQkgICAgICAmc2lnbmFsX3BvaW50LCAxKTsKKwlDVV9B U1NFUlRfRVFVQUwociwgMCk7CisJciA9IGFtZGdwdV9jc19zeW5jb2JqX3F1ZXJ5KGRldmljZV9o YW5kbGUsICZzeW5jb2JqX2hhbmRsZSwKKwkJCQkgICAgJnBheWxvYWQsIDEpOworCUNVX0FTU0VS VF9FUVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMjApOworCisJciA9IGFt ZGdwdV9jc19kZXN0cm95X3N5bmNvYmooZGV2aWNlX2hhbmRsZSwgc3luY29ial9oYW5kbGUpOwor CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworfQotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=