From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7632F6E87A for ; Tue, 12 May 2020 08:24:10 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Tue, 12 May 2020 10:24:00 +0200 Message-Id: <20200512082402.26792-5-zbigniew.kempczynski@intel.com> In-Reply-To: <20200512082402.26792-1-zbigniew.kempczynski@intel.com> References: <20200512082402.26792-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 4/6] lib/gpu_cmds: Add gpgpu pipeline functions based on intel_bb 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: Chris Wilson List-ID: QWRkIG5vLWxpYmRybSBmdW5jdGlvbnMgd2hpY2ggd2lsbCByZXBsYWNlIGxpYmRybSB2ZXJzaW9u IGluIHRoZQpmaW5hbCB2ZXJzaW9uLgoKU2lnbmVkLW9mZi1ieTogWmJpZ25pZXcgS2VtcGN6ecWE c2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBsaWIvZ3B1X2NtZHMuYyB8IDM0MCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvZ3B1X2NtZHMu aCB8ICAzMyArKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzNzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2xpYi9ncHVfY21kcy5jIGIvbGliL2dwdV9jbWRzLmMKaW5kZXggZGMwYWU5NmMuLmM1 ZDVlODA5IDEwMDY0NAotLS0gYS9saWIvZ3B1X2NtZHMuYworKysgYi9saWIvZ3B1X2NtZHMuYwpA QCAtNzY4LDMgKzc2OCwzNDMgQEAgZ2VuOV9lbWl0X3N0YXRlX2Jhc2VfYWRkcmVzcyhzdHJ1Y3Qg aW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoKQogCU9VVF9CQVRDSCgwKTsKIAlPVVRfQkFUQ0goMHhm ZmZmZjAwMCk7CiB9CisKKy8qCisgKiBIZXJlIHdlIHN0YXJ0IHZlcnNpb24gb2YgdGhlIGdwZ3B1 IGZpbGwgcGlwZWxpbmUgY3JlYXRpb24gd2hpY2ggaXMgYmFzZWQKKyAqIG9uIGludGVsX2JiLgor ICovCit1aW50MzJfdAorZ2VuN19maWxsX2N1cmJlX2J1ZmZlcl9kYXRhX3YyKHN0cnVjdCBpbnRl bF9iYiAqaWJiLCB1aW50OF90IGNvbG9yKQoreworCXVpbnQzMl90ICpjdXJiZV9idWZmZXI7CisJ dWludDMyX3Qgb2Zmc2V0OworCisJaW50ZWxfYmJfcHRyX2FsaWduKGliYiwgNjQpOworCWN1cmJl X2J1ZmZlciA9IGludGVsX2JiX3B0cihpYmIpOworCW9mZnNldCA9IGludGVsX2JiX29mZnNldChp YmIpOworCisJKmN1cmJlX2J1ZmZlciA9IGNvbG9yOworCWludGVsX2JiX3B0cl9hZGQoaWJiLCAz Mik7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgdWludDMyX3QKK2dlbjdfZmlsbF9r ZXJuZWxfdjIoc3RydWN0IGludGVsX2JiICppYmIsCisJCSAgICBjb25zdCB1aW50MzJfdCBrZXJu ZWxbXVs0XSwKKwkJICAgIHNpemVfdCBzaXplKQoreworCXVpbnQzMl90ICprZXJuZWxfZHN0Owor CXVpbnQzMl90IG9mZnNldDsKKworCWludGVsX2JiX3B0cl9hbGlnbihpYmIsIDY0KTsKKwlrZXJu ZWxfZHN0ID0gaW50ZWxfYmJfcHRyKGliYik7CisJb2Zmc2V0ID0gaW50ZWxfYmJfb2Zmc2V0KGli Yik7CisKKwltZW1jcHkoa2VybmVsX2RzdCwga2VybmVsLCBzaXplKTsKKworCWludGVsX2JiX3B0 cl9hZGQoaWJiLCBzaXplKTsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKK3N0YXRpYyB1aW50MzJf dAorZ2VuN19maWxsX3N1cmZhY2Vfc3RhdGVfdjIoc3RydWN0IGludGVsX2JiICppYmIsCisJCQkg ICBzdHJ1Y3QgaW50ZWxfYnVmICpidWYsCisJCQkgICB1aW50MzJfdCBmb3JtYXQsCisJCQkgICBp bnQgaXNfZHN0KQoreworCXN0cnVjdCBnZW43X3N1cmZhY2Vfc3RhdGUgKnNzOworCXVpbnQzMl90 IHdyaXRlX2RvbWFpbiwgcmVhZF9kb21haW4sIG9mZnNldDsKKworCWlmIChpc19kc3QpIHsKKwkJ d3JpdGVfZG9tYWluID0gcmVhZF9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOworCX0g ZWxzZSB7CisJCXdyaXRlX2RvbWFpbiA9IDA7CisJCXJlYWRfZG9tYWluID0gSTkxNV9HRU1fRE9N QUlOX1NBTVBMRVI7CisJfQorCisJaW50ZWxfYmJfcHRyX2FsaWduKGliYiwgNjQpOworCW9mZnNl dCA9IGludGVsX2JiX29mZnNldChpYmIpOworCXNzID0gaW50ZWxfYmJfcHRyKGliYik7CisJaW50 ZWxfYmJfcHRyX2FkZChpYmIsIDY0KTsKKworCXNzLT5zczAuc3VyZmFjZV90eXBlID0gU1VSRkFD RV8yRDsKKwlzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gZm9ybWF0OworCXNzLT5zczAucmVuZGVy X2NhY2hlX3JlYWRfd3JpdGUgPSAxOworCisJaWYgKGJ1Zi0+dGlsaW5nID09IEk5MTVfVElMSU5H X1gpCisJCXNzLT5zczAudGlsZWRfbW9kZSA9IDI7CisJZWxzZSBpZiAoYnVmLT50aWxpbmcgPT0g STkxNV9USUxJTkdfWSkKKwkJc3MtPnNzMC50aWxlZF9tb2RlID0gMzsKKworCXNzLT5zczEuYmFz ZV9hZGRyID0gMDsKKworCWludGVsX2JiX29mZnNldF9yZWxvYyhpYmIsIGJ1Zi0+aGFuZGxlLCBv ZmZzZXQgKyA0LAorCQkJICAgICAgcmVhZF9kb21haW4sIHdyaXRlX2RvbWFpbik7CisKKwlzcy0+ c3MyLmhlaWdodCA9IGludGVsX2J1Zl9oZWlnaHQoYnVmKSAtIDE7CisJc3MtPnNzMi53aWR0aCAg PSBpbnRlbF9idWZfd2lkdGgoYnVmKSAtIDE7CisJc3MtPnNzMy5waXRjaCAgPSBidWYtPnN0cmlk ZSAtIDE7CisKKwlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X3IgPSA0OworCXNzLT5zczcu c2hhZGVyX2NoYW5lbF9zZWxlY3RfZyA9IDU7CisJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3NlbGVj dF9iID0gNjsKKwlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X2EgPSA3OworCisJcmV0dXJu IG9mZnNldDsKK30KKworc3RhdGljIHVpbnQzMl90CitnZW44X2ZpbGxfc3VyZmFjZV9zdGF0ZV92 MihzdHJ1Y3QgaW50ZWxfYmIgKmliYiwKKwkJCSAgIHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwKKwkJ CSAgIHVpbnQzMl90IGZvcm1hdCwKKwkJCSAgIGludCBpc19kc3QpCit7CisJc3RydWN0IGdlbjhf c3VyZmFjZV9zdGF0ZSAqc3M7CisJdWludDMyX3Qgd3JpdGVfZG9tYWluLCByZWFkX2RvbWFpbiwg b2Zmc2V0OworCisJaWYgKGlzX2RzdCkgeworCQl3cml0ZV9kb21haW4gPSByZWFkX2RvbWFpbiA9 IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7CisJfSBlbHNlIHsKKwkJd3JpdGVfZG9tYWluID0gMDsK KwkJcmVhZF9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fU0FNUExFUjsKKwl9CisKKwlpbnRlbF9i Yl9wdHJfYWxpZ24oaWJiLCA2NCk7CisJb2Zmc2V0ID0gaW50ZWxfYmJfb2Zmc2V0KGliYik7CisJ c3MgPSBpbnRlbF9iYl9wdHIoaWJiKTsKKwlpbnRlbF9iYl9wdHJfYWRkKGliYiwgNjQpOworCisJ c3MtPnNzMC5zdXJmYWNlX3R5cGUgPSBTVVJGQUNFXzJEOworCXNzLT5zczAuc3VyZmFjZV9mb3Jt YXQgPSBmb3JtYXQ7CisJc3MtPnNzMC5yZW5kZXJfY2FjaGVfcmVhZF93cml0ZSA9IDE7CisJc3Mt PnNzMC52ZXJ0aWNhbF9hbGlnbm1lbnQgPSAxOyAvKiBhbGlnbiA0ICovCisJc3MtPnNzMC5ob3Jp em9udGFsX2FsaWdubWVudCA9IDE7IC8qIGFsaWduIDQgKi8KKworCWlmIChidWYtPnRpbGluZyA9 PSBJOTE1X1RJTElOR19YKQorCQlzcy0+c3MwLnRpbGVkX21vZGUgPSAyOworCWVsc2UgaWYgKGJ1 Zi0+dGlsaW5nID09IEk5MTVfVElMSU5HX1kpCisJCXNzLT5zczAudGlsZWRfbW9kZSA9IDM7CisK Kwlzcy0+c3M4LmJhc2VfYWRkciA9IDA7CisKKwlpbnRlbF9iYl9vZmZzZXRfcmVsb2MoaWJiLCBi dWYtPmhhbmRsZSwgb2Zmc2V0ICsgNCwKKwkJCSAgICAgIHJlYWRfZG9tYWluLCB3cml0ZV9kb21h aW4pOworCisJc3MtPnNzMi5oZWlnaHQgPSBpbnRlbF9idWZfaGVpZ2h0KGJ1ZikgLSAxOworCXNz LT5zczIud2lkdGggID0gaW50ZWxfYnVmX3dpZHRoKGJ1ZikgLSAxOworCXNzLT5zczMucGl0Y2gg ID0gYnVmLT5zdHJpZGUgLSAxOworCisJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3NlbGVjdF9yID0g NDsKKwlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X2cgPSA1OworCXNzLT5zczcuc2hhZGVy X2NoYW5lbF9zZWxlY3RfYiA9IDY7CisJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3NlbGVjdF9hID0g NzsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKK3N0YXRpYyB1aW50MzJfdAorZ2VuN19maWxsX2Jp bmRpbmdfdGFibGVfdjIoc3RydWN0IGludGVsX2JiICppYmIsCisJCQkgICBzdHJ1Y3QgaW50ZWxf YnVmICpidWYpCit7CisJdWludDMyX3QgYmluZGluZ190YWJsZV9vZmZzZXQ7CisJdWludDMyX3Qg KmJpbmRpbmdfdGFibGU7CisJdWludDMyX3QgZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGli Yi0+aTkxNSk7CisKKwlpbnRlbF9iYl9wdHJfYWxpZ24oaWJiLCA2NCk7CisJYmluZGluZ190YWJs ZV9vZmZzZXQgPSBpbnRlbF9iYl9vZmZzZXQoaWJiKTsKKwliaW5kaW5nX3RhYmxlID0gaW50ZWxf YmJfcHRyKGliYik7CisJaW50ZWxfYmJfcHRyX2FkZChpYmIsIDY0KTsKKworCWlmIChJU19HRU43 KGRldmlkKSkKKwkJYmluZGluZ190YWJsZVswXSA9IGdlbjdfZmlsbF9zdXJmYWNlX3N0YXRlX3Yy KGliYiwgYnVmLAorCQkJCQkJCSAgICAgIFNVUkZBQ0VGT1JNQVRfUjhfVU5PUk0sIDEpOworCisJ ZWxzZQorCQliaW5kaW5nX3RhYmxlWzBdID0gZ2VuOF9maWxsX3N1cmZhY2Vfc3RhdGVfdjIoaWJi LCBidWYsCisJCQkJCQkJICAgICAgU1VSRkFDRUZPUk1BVF9SOF9VTk9STSwgMSk7CisKKwlyZXR1 cm4gYmluZGluZ190YWJsZV9vZmZzZXQ7Cit9CisKK3VpbnQzMl90CitnZW43X2ZpbGxfaW50ZXJm YWNlX2Rlc2NyaXB0b3JfdjIoc3RydWN0IGludGVsX2JiICppYmIsCisJCQkJICBzdHJ1Y3QgaW50 ZWxfYnVmICpidWYsCisJCQkJICBjb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwKKwkJCQkgIHNp emVfdCBzaXplKQoreworCXN0cnVjdCBnZW43X2ludGVyZmFjZV9kZXNjcmlwdG9yX2RhdGEgKmlk ZDsKKwl1aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3QgYmluZGluZ190YWJsZV9vZmZzZXQsIGtl cm5lbF9vZmZzZXQ7CisKKwliaW5kaW5nX3RhYmxlX29mZnNldCA9IGdlbjdfZmlsbF9iaW5kaW5n X3RhYmxlX3YyKGliYiwgYnVmKTsKKwlrZXJuZWxfb2Zmc2V0ID0gZ2VuN19maWxsX2tlcm5lbF92 MihpYmIsIGtlcm5lbCwgc2l6ZSk7CisKKwlpbnRlbF9iYl9wdHJfYWxpZ24oaWJiLCA2NCk7CisJ aWRkID0gaW50ZWxfYmJfcHRyKGliYik7CisJb2Zmc2V0ID0gaW50ZWxfYmJfb2Zmc2V0KGliYik7 CisKKwlpZGQtPmRlc2MwLmtlcm5lbF9zdGFydF9wb2ludGVyID0gKGtlcm5lbF9vZmZzZXQgPj4g Nik7CisKKwlpZGQtPmRlc2MxLnNpbmdsZV9wcm9ncmFtX2Zsb3cgPSAxOworCWlkZC0+ZGVzYzEu ZmxvYXRpbmdfcG9pbnRfbW9kZSA9IEdFTjdfRkxPQVRJTkdfUE9JTlRfSUVFRV83NTQ7CisKKwlp ZGQtPmRlc2MyLnNhbXBsZXJfY291bnQgPSAwOyAgICAgIC8qIDAgc2FtcGxlcnMgdXNlZCAqLwor CWlkZC0+ZGVzYzIuc2FtcGxlcl9zdGF0ZV9wb2ludGVyID0gMDsKKworCWlkZC0+ZGVzYzMuYmlu ZGluZ190YWJsZV9lbnRyeV9jb3VudCA9IDA7CisJaWRkLT5kZXNjMy5iaW5kaW5nX3RhYmxlX3Bv aW50ZXIgPSAoYmluZGluZ190YWJsZV9vZmZzZXQgPj4gNSk7CisKKwlpZGQtPmRlc2M0LmNvbnN0 YW50X3VyYl9lbnRyeV9yZWFkX29mZnNldCA9IDA7CisJaWRkLT5kZXNjNC5jb25zdGFudF91cmJf ZW50cnlfcmVhZF9sZW5ndGggPSAxOyAvKiBncmYgMSAqLworCisJaW50ZWxfYmJfcHRyX2FkZChp YmIsIHNpemVvZigqaWRkKSk7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCit2b2lkCitnZW43X2Vt aXRfc3RhdGVfYmFzZV9hZGRyZXNzX3YyKHN0cnVjdCBpbnRlbF9iYiAqaWJiKQoreworCWludGVs X2JiX291dChpYmIsIEdFTjdfU1RBVEVfQkFTRV9BRERSRVNTIHwgKDEwIC0gMikpOworCisJLyog Z2VuZXJhbCAqLworCWludGVsX2JiX291dChpYmIsIDApOworCisJLyogc3VyZmFjZSAqLworCWlu dGVsX2JiX291dF9yZWxvYyhpYmIsCisJCQkgICBJOTE1X0dFTV9ET01BSU5fSU5TVFJVQ1RJT04s IDAsCisJCQkgICBCQVNFX0FERFJFU1NfTU9ESUZZKTsKKworCS8qIGR5bmFtaWMgKi8KKwlpbnRl bF9iYl9vdXRfcmVsb2MoaWJiLAorCQkJICAgSTkxNV9HRU1fRE9NQUlOX0lOU1RSVUNUSU9OLCAw LAorCQkJICAgQkFTRV9BRERSRVNTX01PRElGWSk7CisKKwkvKiBpbmRpcmVjdCAqLworCWludGVs X2JiX291dChpYmIsIDApOworCisJLyogaW5zdHJ1Y3Rpb24gKi8KKwlpbnRlbF9iYl9vdXRfcmVs b2MoaWJiLAorCQkJICAgSTkxNV9HRU1fRE9NQUlOX0lOU1RSVUNUSU9OLCAwLAorCQkJICAgQkFT RV9BRERSRVNTX01PRElGWSk7CisKKwkvKiBnZW5lcmFsL2R5bmFtaWMvaW5kaXJlY3QvaW5zdHJ1 Y3Rpb24gYWNjZXNzIEJvdW5kICovCisJaW50ZWxfYmJfb3V0KGliYiwgMCk7CisJaW50ZWxfYmJf b3V0KGliYiwgMCB8IEJBU0VfQUREUkVTU19NT0RJRlkpOworCWludGVsX2JiX291dChpYmIsIDAp OworCWludGVsX2JiX291dChpYmIsIDAgfCBCQVNFX0FERFJFU1NfTU9ESUZZKTsKK30KKwordm9p ZAorZ2VuN19lbWl0X3ZmZV9zdGF0ZV92MihzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgdWludDMyX3Qg dGhyZWFkcywKKwkJICAgICAgIHVpbnQzMl90IHVyYl9lbnRyaWVzLCB1aW50MzJfdCB1cmJfc2l6 ZSwKKwkJICAgICAgIHVpbnQzMl90IGN1cmJlX3NpemUsIHVpbnQzMl90IG1vZGUpCit7CisJaW50 ZWxfYmJfb3V0KGliYiwgR0VON19NRURJQV9WRkVfU1RBVEUgfCAoOCAtIDIpKTsKKworCS8qIHNj cmF0Y2ggYnVmZmVyICovCisJaW50ZWxfYmJfb3V0KGliYiwgMCk7CisKKwkvKiBudW1iZXIgb2Yg dGhyZWFkcyAmIHVyYiBlbnRyaWVzICovCisJaW50ZWxfYmJfb3V0KGliYiwgdGhyZWFkcyA8PCAx NiB8CisJCSAgICAgdXJiX2VudHJpZXMgPDwgOCB8CisJCSAgICAgbW9kZSA8PCAyKTsgLyogR1BH UFUgdnMgbWVkaWEgbW9kZSAqLworCisJaW50ZWxfYmJfb3V0KGliYiwgMCk7CisKKwkvKiB1cmIg ZW50cnkgc2l6ZSAmIGN1cmJlIHNpemUgKi8KKwlpbnRlbF9iYl9vdXQoaWJiLCB1cmJfc2l6ZSA8 PCAxNiB8CS8qIGluIDI1NiBiaXRzIHVuaXQgKi8KKwkJICAgICBjdXJiZV9zaXplKTsJCS8qIGlu IDI1NiBiaXRzIHVuaXQgKi8KKworCS8qIHNjb3JlYm9hcmQgKi8KKwlpbnRlbF9iYl9vdXQoaWJi LCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAwKTsKK30K Kwordm9pZAorZ2VuN19lbWl0X2N1cmJlX2xvYWRfdjIoc3RydWN0IGludGVsX2JiICppYmIsIHVp bnQzMl90IGN1cmJlX2J1ZmZlcikKK3sKKwlpbnRlbF9iYl9vdXQoaWJiLCBHRU43X01FRElBX0NV UkJFX0xPQUQgfCAoNCAtIDIpKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAwKTsKKwkvKiBjdXJiZSB0 b3RhbCBkYXRhIGxlbmd0aCAqLworCWludGVsX2JiX291dChpYmIsIDY0KTsKKwkvKiBjdXJiZSBk YXRhIHN0YXJ0IGFkZHJlc3MsIGlzIHJlbGF0aXZlIHRvIHRoZSBkeW5hbWljcyBiYXNlIGFkZHJl c3MgKi8KKwlpbnRlbF9iYl9vdXQoaWJiLCBjdXJiZV9idWZmZXIpOworfQorCit2b2lkCitnZW43 X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfbG9hZF92MihzdHJ1Y3QgaW50ZWxfYmIgKmliYiwK KwkJCQkgICAgICAgdWludDMyX3QgaW50ZXJmYWNlX2Rlc2NyaXB0b3IpCit7CisJaW50ZWxfYmJf b3V0KGliYiwgR0VON19NRURJQV9JTlRFUkZBQ0VfREVTQ1JJUFRPUl9MT0FEIHwgKDQgLSAyKSk7 CisJaW50ZWxfYmJfb3V0KGliYiwgMCk7CisJLyogaW50ZXJmYWNlIGRlc2NyaXB0b3IgZGF0YSBs ZW5ndGggKi8KKwlpZiAoaWJiLT5nZW4gPT0gNykKKwkJaW50ZWxfYmJfb3V0KGliYiwgc2l6ZW9m KHN0cnVjdCBnZW43X2ludGVyZmFjZV9kZXNjcmlwdG9yX2RhdGEpKTsKKwllbHNlCisJCWludGVs X2JiX291dChpYmIsIHNpemVvZihzdHJ1Y3QgZ2VuOF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9kYXRh KSk7CisJLyogaW50ZXJmYWNlIGRlc2NyaXB0b3IgYWRkcmVzcywgaXMgcmVsYXRpdmUgdG8gdGhl IGR5bmFtaWNzIGJhc2UKKwkgKiBhZGRyZXNzCisJICovCisJaW50ZWxfYmJfb3V0KGliYiwgaW50 ZXJmYWNlX2Rlc2NyaXB0b3IpOworfQorCit2b2lkCitnZW43X2VtaXRfZ3BncHVfd2Fsa192Mihz dHJ1Y3QgaW50ZWxfYmIgKmliYiwKKwkJCXVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQgeSwK KwkJCXVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCkKK3sKKwl1aW50MzJf dCB4X2RpbSwgeV9kaW0sIHRtcCwgcmlnaHRfbWFzazsKKworCS8qCisJICogU2ltcGx5IGRvIFNJ TUQxNiBiYXNlZCBkaXNwYXRjaCwgc28gZXZlcnkgdGhyZWFkIHVzZXMKKwkgKiBTSU1EMTYgY2hh bm5lbHMuCisJICoKKwkgKiBEZWZpbmUgb3VyIG93biB0aHJlYWQgZ3JvdXAgc2l6ZSwgZS5nIDE2 eDEgZm9yIGV2ZXJ5IGdyb3VwLCB0aGVuCisJICogd2lsbCBoYXZlIDEgdGhyZWFkIGVhY2ggZ3Jv dXAgaW4gU0lNRDE2IGRpc3BhdGNoLiBTbyB0aHJlYWQKKwkgKiB3aWR0aC9oZWlnaHQvZGVwdGgg YXJlIGFsbCAxLgorCSAqCisJICogVGhlbiB0aHJlYWQgZ3JvdXAgWCA9IHdpZHRoIC8gMTYgKGFs aWduZWQgdG8gMTYpCisJICogdGhyZWFkIGdyb3VwIFkgPSBoZWlnaHQ7CisJICovCisJeF9kaW0g PSAod2lkdGggKyAxNSkgLyAxNjsKKwl5X2RpbSA9IGhlaWdodDsKKworCXRtcCA9IHdpZHRoICYg MTU7CisJaWYgKHRtcCA9PSAwKQorCQlyaWdodF9tYXNrID0gKDEgPDwgMTYpIC0gMTsKKwllbHNl CisJCXJpZ2h0X21hc2sgPSAoMSA8PCB0bXApIC0gMTsKKworCWludGVsX2JiX291dChpYmIsIEdF TjdfR1BHUFVfV0FMS0VSIHwgOSk7CisKKwkvKiBpbnRlcmZhY2UgZGVzY3JpcHRvciBvZmZzZXQg Ki8KKwlpbnRlbF9iYl9vdXQoaWJiLCAwKTsKKworCS8qIFNJTUQgc2l6ZSwgdGhyZWFkIHcvaC9k ICovCisJaW50ZWxfYmJfb3V0KGliYiwgMSA8PCAzMCB8IC8qIFNJTUQxNiAqLworCQkgIDAgPDwg MTYgfCAvKiBkZXB0aDoxICovCisJCSAgMCA8PCA4IHwgLyogaGVpZ2h0OjEgKi8KKwkJICAwKTsg Lyogd2lkdGg6MSAqLworCisJLyogdGhyZWFkIGdyb3VwIFggKi8KKwlpbnRlbF9iYl9vdXQoaWJi LCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCB4X2RpbSk7CisKKwkvKiB0aHJlYWQgZ3JvdXAgWSAq LworCWludGVsX2JiX291dChpYmIsIDApOworCWludGVsX2JiX291dChpYmIsIHlfZGltKTsKKwor CS8qIHRocmVhZCBncm91cCBaICovCisJaW50ZWxfYmJfb3V0KGliYiwgMCk7CisJaW50ZWxfYmJf b3V0KGliYiwgMSk7CisKKwkvKiByaWdodCBtYXNrICovCisJaW50ZWxfYmJfb3V0KGliYiwgcmln aHRfbWFzayk7CisKKwkvKiBib3R0b20gbWFzaywgaGVpZ2h0IDEsIGFsd2F5cyAweGZmZmZmZmZm ICovCisJaW50ZWxfYmJfb3V0KGliYiwgMHhmZmZmZmZmZik7Cit9CmRpZmYgLS1naXQgYS9saWIv Z3B1X2NtZHMuaCBiL2xpYi9ncHVfY21kcy5oCmluZGV4IDEzMjFhZjQ0Li43MjhiNGU2OCAxMDA2 NDQKLS0tIGEvbGliL2dwdV9jbWRzLmgKKysrIGIvbGliL2dwdV9jbWRzLmgKQEAgLTM1LDYgKzM1 LDcgQEAKICNpbmNsdWRlICJkcm10ZXN0LmgiCiAjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIu aCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCisjaW5jbHVkZSAiaW50ZWxfYnVmb3BzLmgi CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAKIHZvaWQKQEAgLTE0OCw0ICsxNDksMzYgQEAgZ2VuX2Vt aXRfbWVkaWFfb2JqZWN0KHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsIHVuc2lnbmVk IGludCB4b2Zmc2V0LAogdm9pZAogZ2VuOV9lbWl0X3N0YXRlX2Jhc2VfYWRkcmVzcyhzdHJ1Y3Qg aW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoKTsKIAorCisvKiBObyBsaWJkcm0gKi8KK3VpbnQzMl90 CitnZW43X2ZpbGxfY3VyYmVfYnVmZmVyX2RhdGFfdjIoc3RydWN0IGludGVsX2JiICppYmIsCisJ CQkgICAgICAgdWludDhfdCBjb2xvcik7CisKK3VpbnQzMl90CitnZW43X2ZpbGxfaW50ZXJmYWNl X2Rlc2NyaXB0b3JfdjIoc3RydWN0IGludGVsX2JiICppYmIsCisJCQkJICBzdHJ1Y3QgaW50ZWxf YnVmICpidWYsCisJCQkJICBjb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwKKwkJCQkgIHNpemVf dCBzaXplKTsKKwordm9pZAorZ2VuN19lbWl0X3N0YXRlX2Jhc2VfYWRkcmVzc192MihzdHJ1Y3Qg aW50ZWxfYmIgKmliYik7CisKK3ZvaWQKK2dlbjdfZW1pdF92ZmVfc3RhdGVfdjIoc3RydWN0IGlu dGVsX2JiICppYmIsIHVpbnQzMl90IHRocmVhZHMsCisJCSAgICAgICB1aW50MzJfdCB1cmJfZW50 cmllcywgdWludDMyX3QgdXJiX3NpemUsCisJCSAgICAgICB1aW50MzJfdCBjdXJiZV9zaXplLCB1 aW50MzJfdCBtb2RlKTsKKwordm9pZAorZ2VuN19lbWl0X2N1cmJlX2xvYWRfdjIoc3RydWN0IGlu dGVsX2JiICppYmIsIHVpbnQzMl90IGN1cmJlX2J1ZmZlcik7CisKK3ZvaWQKK2dlbjdfZW1pdF9p bnRlcmZhY2VfZGVzY3JpcHRvcl9sb2FkX3YyKHN0cnVjdCBpbnRlbF9iYiAqaWJiLAorCQkJCSAg ICAgICB1aW50MzJfdCBpbnRlcmZhY2VfZGVzY3JpcHRvcik7CisKK3ZvaWQKK2dlbjdfZW1pdF9n cGdwdV93YWxrX3YyKHN0cnVjdCBpbnRlbF9iYiAqaWJiLAorCQkJdW5zaWduZWQgaW50IHgsIHVu c2lnbmVkIGludCB5LAorCQkJdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0 KTsKKwogI2VuZGlmIC8qIEdQVV9DTURTX0ggKi8KLS0gCjIuMjYuMAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0 LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==