From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 1/6] drm/i915: support creating LMEM objects Date: Fri, 18 Oct 2019 17:55:53 +0100 Message-ID: <20191018165558.18518-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id CF9D06E14A for ; Fri, 18 Oct 2019 16:56:03 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2UgY3VycmVudGx5IGRlZmluZSBMTUVNLCBvciBsb2NhbCBtZW1vcnksIGFzIGp1c3QgYW5vdGhl ciBtZW1vcnkKcmVnaW9uLCBsaWtlIHN5c3RlbSBtZW1vcnkgb3Igc3RvbGVuLCB3aGljaCB3ZSBj YW4gZXhwb3NlIHRvIHVzZXJzcGFjZQphbmQgY2FuIGJlIG1hcHBlZCB0byB0aGUgQ1BVIHZpYSBz b21lIEJBUi4KClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVs LmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KQ2M6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgMiAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jICAgICAgfCAyOSArKysr KysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oICAgICAg fCAyMyArKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAg ICAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyAg ICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmVnaW9uX2xtZW0uaCAgICAgIHwgMTEgKysrKysKIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9saXZlX3NlbGZ0ZXN0cy5oICB8ICAxICsKIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxf bWVtb3J5X3JlZ2lvbi5jICB8IDQwICsrKysrKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQs IDE1MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5k ZXggZTc5MWQ5MzIzYjUxLi4wMmU2NWYzYmQzNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC0x MTgsNiArMTE4LDcgQEAgZ2VtLXkgKz0gXAogCWdlbS9pOTE1X2dlbV9pbnRlcm5hbC5vIFwKIAln ZW0vaTkxNV9nZW1fb2JqZWN0Lm8gXAogCWdlbS9pOTE1X2dlbV9vYmplY3RfYmx0Lm8gXAorCWdl bS9pOTE1X2dlbV9sbWVtLm8gXAogCWdlbS9pOTE1X2dlbV9tbWFuLm8gXAogCWdlbS9pOTE1X2dl bV9wYWdlcy5vIFwKIAlnZW0vaTkxNV9nZW1fcGh5cy5vIFwKQEAgLTE0Niw2ICsxNDcsNyBAQCBp OTE1LXkgKz0gXAogCSAgaTkxNV9zY2hlZHVsZXIubyBcCiAJICBpOTE1X3RyYWNlX3BvaW50cy5v IFwKIAkgIGk5MTVfdm1hLm8gXAorCSAgaW50ZWxfcmVnaW9uX2xtZW0ubyBcCiAJICBpbnRlbF93 b3BjbS5vCiAKICMgZ2VuZXJhbC1wdXJwb3NlIG1pY3JvY29udHJvbGxlciAoR3VDKSBzdXBwb3J0 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1M2U0NDYzNTcwZAotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmMKQEAgLTAsMCArMSwyOSBA QAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAy MDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImludGVsX21lbW9yeV9yZWdp b24uaCIKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcmVnaW9uLmgiCisjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX2xtZW0uaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCitjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fbG1lbV9vYmpfb3BzID0geworCS5nZXRfcGFn ZXMgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2J1ZGR5LAorCS5wdXRfcGFnZXMgPSBpOTE1 X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2J1ZGR5LAorCS5yZWxlYXNlID0gaTkxNV9nZW1fb2JqZWN0 X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbiwKK307CisKK2Jvb2wgaTkxNV9nZW1fb2JqZWN0X2lzX2xt ZW0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlyZXR1cm4gb2JqLT5vcHMg PT0gJmk5MTVfZ2VtX2xtZW1fb2JqX29wczsKK30KKworc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKgoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9sbWVtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAorCQkJICAgIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJICAgIHVuc2lnbmVkIGlu dCBmbGFncykKK3sKKwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24oaTkxNS0+ bW0ucmVnaW9uc1tJTlRFTF9SRUdJT05fTE1FTV0sCisJCQkJCSAgICAgc2l6ZSwgZmxhZ3MpOwor fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYmMxNWZlMjRmNTgKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oCkBAIC0wLDAgKzEsMjMg QEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQg wqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X0dFTV9MTUVN X0gKKyNkZWZpbmUgX19JOTE1X0dFTV9MTUVNX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ CisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7 CisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1f bG1lbV9vYmpfb3BzOworCitib29sIGk5MTVfZ2VtX29iamVjdF9pc19sbWVtKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopOworCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCitp OTE1X2dlbV9vYmplY3RfY3JlYXRlX2xtZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs CisJCQkgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCQkgICAgdW5zaWduZWQgaW50IGZsYWdz KTsKKworI2VuZGlmIC8qICFfX0k5MTVfR0VNX0xNRU1fSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggZGIzYzNhMDI1YTAzLi43ZTcyZWI4MzJiYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaApAQCAtMTAxLDYgKzEwMSw4IEBACiAjaW5jbHVkZSAiaTkxNV92bWEuaCIKICNpbmNsdWRl ICJpOTE1X2lycS5oIgogCisjaW5jbHVkZSAiaW50ZWxfcmVnaW9uX2xtZW0uaCIKKwogI2luY2x1 ZGUgImludGVsX2d2dC5oIgogCiAvKiBHZW5lcmFsIGN1c3RvbWl6YXRpb246CkBAIC0xNzg2LDYg KzE3ODgsNyBAQCBJU19TVUJQTEFURk9STShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKICNkZWZpbmUgSEFTX0lQQyhkZXZfcHJpdikJCSAoSU5URUxfSU5GTyhkZXZfcHJpdikt PmRpc3BsYXkuaGFzX2lwYykKIAogI2RlZmluZSBIQVNfUkVHSU9OKGk5MTUsIGkpIChJTlRFTF9J TkZPKGk5MTUpLT5tZW1vcnlfcmVnaW9ucyAmIChpKSkKKyNkZWZpbmUgSEFTX0xNRU0oaTkxNSkg SEFTX1JFR0lPTihpOTE1LCBSRUdJT05fTE1FTSkKIAogI2RlZmluZSBIQVNfR1RfVUMoZGV2X3By aXYpCShJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX2d0X3VjKQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmVnaW9uX2xtZW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjdhM2Y5NmUxZjc2NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKQEAgLTAsMCArMSw0MyBAQAorLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0 aW9uCisgKi8KKworI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfbWVtb3J5 X3JlZ2lvbi5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9sbWVtLmgiCisjaW5jbHVkZSAiZ2Vt L2k5MTVfZ2VtX3JlZ2lvbi5oIgorI2luY2x1ZGUgImludGVsX3JlZ2lvbl9sbWVtLmgiCisKK3N0 YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCitsbWVtX2NyZWF0ZV9vYmplY3Qoc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUs CisJCSAgIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IG1lbS0+aTkxNTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCisJ aWYgKHNpemUgPiBCSVQobWVtLT5tbS5tYXhfb3JkZXIpICogbWVtLT5tbS5jaHVua19zaXplKQor CQlyZXR1cm4gRVJSX1BUUigtRTJCSUcpOworCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9j KCk7CisJaWYgKCFvYmopCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJZHJtX2dlbV9w cml2YXRlX29iamVjdF9pbml0KCZpOTE1LT5kcm0sICZvYmotPmJhc2UsIHNpemUpOworCWk5MTVf Z2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX2xtZW1fb2JqX29wcyk7CisKKwlvYmotPnJl YWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9XQyB8IEk5MTVfR0VNX0RPTUFJTl9HVFQ7CisK KwlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShvYmosIEk5MTVfQ0FDSEVfTk9O RSk7CisKKwlpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKG9iaiwgbWVtLCBmbGFn cyk7CisKKwlyZXR1cm4gb2JqOworfQorCitjb25zdCBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv bl9vcHMgaW50ZWxfcmVnaW9uX2xtZW1fb3BzID0geworCS5pbml0ID0gaW50ZWxfbWVtb3J5X3Jl Z2lvbl9pbml0X2J1ZGR5LAorCS5yZWxlYXNlID0gaW50ZWxfbWVtb3J5X3JlZ2lvbl9yZWxlYXNl X2J1ZGR5LAorCS5jcmVhdGVfb2JqZWN0ID0gbG1lbV9jcmVhdGVfb2JqZWN0LAorfTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZWQyYTNiYWI2NDQzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uaApAQCAtMCwwICsxLDExIEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkg SW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSU5URUxfUkVHSU9OX0xNRU1fSAor I2RlZmluZSBfX0lOVEVMX1JFR0lPTl9MTUVNX0gKKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRl bF9tZW1vcnlfcmVnaW9uX29wcyBpbnRlbF9yZWdpb25fbG1lbV9vcHM7CisKKyNlbmRpZiAvKiAh X19JTlRFTF9SRUdJT05fTE1FTV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaAppbmRleCA2ZGFmNjU5OWVjNzkuLjU3NGU4 NjRhYjhhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf bGl2ZV9zZWxmdGVzdHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9saXZlX3NlbGZ0ZXN0cy5oCkBAIC0zMiw2ICszMiw3IEBAIHNlbGZ0ZXN0KGdlbV9jb250ZXh0 cywgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGJsdCwgaTkxNV9n ZW1fb2JqZWN0X2JsdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGNsaWVudCwgaTkxNV9nZW1f Y2xpZW50X2JsdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KHJlc2V0LCBpbnRlbF9yZXNldF9s aXZlX3NlbGZ0ZXN0cykKK3NlbGZ0ZXN0KG1lbW9yeV9yZWdpb24sIGludGVsX21lbW9yeV9yZWdp b25fbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChoYW5nY2hlY2ssIGludGVsX2hhbmdjaGVja19s aXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGV4ZWNsaXN0cywgaW50ZWxfZXhlY2xpc3RzX2xpdmVf c2VsZnRlc3RzKQogc2VsZnRlc3QoZ3VjLCBpbnRlbF9ndWNfbGl2ZV9zZWxmdGVzdCkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9u LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5j CmluZGV4IDU2MDkxZTdlNTk5ZS4uNjE3YTM1Y2ZhYzJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKQEAgLTExLDggKzEx LDEwIEBACiAjaW5jbHVkZSAibW9ja19nZW1fZGV2aWNlLmgiCiAjaW5jbHVkZSAibW9ja19yZWdp b24uaCIKIAorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9sbWVtLmgiCiAjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX3JlZ2lvbi5oIgogI2luY2x1ZGUgImdlbS9zZWxmdGVzdHMvbW9ja19jb250ZXh0Lmgi CisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJzZWxmdGVzdHMvaTkxNV9yYW5k b20uaCIKIAogc3RhdGljIHZvaWQgY2xvc2Vfb2JqZWN0cyhzdHJ1Y3QgaW50ZWxfbWVtb3J5X3Jl Z2lvbiAqbWVtLApAQCAtMjUyLDYgKzI1NCwyNyBAQCBzdGF0aWMgaW50IGlndF9tb2NrX2NvbnRp Z3VvdXModm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X2xtZW1f Y3JlYXRlKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFy ZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludCBlcnIgPSAwOworCisJ b2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9sbWVtKGk5MTUsIFBBR0VfU0laRSwgMCk7CisJ aWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gUFRSX0VSUihvYmopOworCisJZXJyID0gaTkxNV9n ZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOworCWlmIChlcnIpCisJCWdvdG8gb3V0X3B1dDsKKwor CWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworb3V0X3B1dDoKKwlpOTE1X2dlbV9v YmplY3RfcHV0KG9iaik7CisKKwlyZXR1cm4gZXJyOworfQorCiBpbnQgaW50ZWxfbWVtb3J5X3Jl Z2lvbl9tb2NrX3NlbGZ0ZXN0cyh2b2lkKQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9z dWJ0ZXN0IHRlc3RzW10gPSB7CkBAIC0yODAsMyArMzAzLDIwIEBAIGludCBpbnRlbF9tZW1vcnlf cmVnaW9uX21vY2tfc2VsZnRlc3RzKHZvaWQpCiAJZHJtX2Rldl9wdXQoJmk5MTUtPmRybSk7CiAJ cmV0dXJuIGVycjsKIH0KKworaW50IGludGVsX21lbW9yeV9yZWdpb25fbGl2ZV9zZWxmdGVzdHMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBp OTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKKwkJU1VCVEVTVChpZ3RfbG1lbV9jcmVhdGUpLAorCX07 CisKKwlpZiAoIUhBU19MTUVNKGk5MTUpKSB7CisJCXByX2luZm8oImRldmljZSBsYWNrcyBMTUVN IHN1cHBvcnQsIHNraXBwaW5nXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGludGVsX2d0 X2lzX3dlZGdlZCgmaTkxNS0+Z3QpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBpOTE1X2xpdmVf c3VidGVzdHModGVzdHMsIGk5MTUpOworfQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=