From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [RFC][PATCH 5/6 v3] dma-buf: Add Dummy Importer Test Device Date: Thu, 28 Mar 2019 17:16:01 -0700 Message-ID: <1553818562-2516-6-git-send-email-john.stultz@linaro.org> References: <1553818562-2516-1-git-send-email-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8FA326E4AA for ; Fri, 29 Mar 2019 00:16:17 +0000 (UTC) Received: by mail-pf1-x443.google.com with SMTP id c207so150410pfc.7 for ; Thu, 28 Mar 2019 17:16:17 -0700 (PDT) In-Reply-To: <1553818562-2516-1-git-send-email-john.stultz@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: lkml Cc: Yudongbin , Sudipto Paul , Xu YiPing , Vincent Donnefort , "Chenfeng (puck)" , dri-devel@lists.freedesktop.org, Chenbo Feng , Alistair Strachan , Liam Mark , Christoph Hellwig , "Xiaqing (A)" , "Andrew F. Davis" , Pratik Patel , butao List-Id: dri-devel@lists.freedesktop.org RnJvbTogIkFuZHJldyBGLiBEYXZpcyIgPGFmZEB0aS5jb20+CgpUaGlzIGR1bW15IHRlc3QgZHJp dmVyIGxldHMgdXMgZG8gc29tZSB2ZXJ5IGJhc2ljIHRlc3Rpbmcgb2YKaW1wb3J0aW5nIGRtYS1i dWZzLgoKSXQgaXMgYmFzZWQgb3JpZ2luYWxseSBvbiBUSSdzIG91dCBvZiB0cmVlICJETUEtQlVG IHBoeXNpY2FsCmFkZHJlc3MgdXNlci1zcGFjZSBleHBvcnRlciIgb3JpZ2luYWxseSBieQpBbmRy ZXcgRi4gRGF2aXMgPGFmZEB0aS5jb20+CgpDYzogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWlu LmdhaWduYXJkQGxpbmFyby5vcmc+CkNjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5h cm8ub3JnPgpDYzogTGlhbSBNYXJrIDxsbWFya0Bjb2RlYXVyb3JhLm9yZz4KQ2M6IFByYXRpayBQ YXRlbCA8cHJhdGlrcEBjb2RlYXVyb3JhLm9yZz4KQ2M6IEJyaWFuIFN0YXJrZXkgPEJyaWFuLlN0 YXJrZXlAYXJtLmNvbT4KQ2M6IFZpbmNlbnQgRG9ubmVmb3J0IDxWaW5jZW50LkRvbm5lZm9ydEBh cm0uY29tPgpDYzogU3VkaXB0byBQYXVsIDxTdWRpcHRvLlBhdWxAYXJtLmNvbT4KQ2M6IEFuZHJl dyBGLiBEYXZpcyA8YWZkQHRpLmNvbT4KQ2M6IFh1IFlpUGluZyA8eHV5aXBpbmdAaGlzaWxpY29u LmNvbT4KQ2M6ICJDaGVuZmVuZyAocHVjaykiIDxwdWNrLmNoZW5AaGlzaWxpY29uLmNvbT4KQ2M6 IGJ1dGFvIDxidXRhb0BoaXNpbGljb24uY29tPgpDYzogIlhpYXFpbmcgKEEpIiA8c2FiZXJsaWx5 LnhpYUBoaXNpbGljb24uY29tPgpDYzogWXVkb25nYmluIDx5dWRvbmdiaW5AaGlzaWxpY29uLmNv bT4KQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAaW5mcmFkZWFkLm9yZz4KQ2M6IENoZW5ibyBG ZW5nIDxmZW5nY0Bnb29nbGUuY29tPgpDYzogQWxpc3RhaXIgU3RyYWNoYW4gPGFzdHJhY2hhbkBn b29nbGUuY29tPgpDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpTaWduZWQtb2Zm LWJ5OiBBbmRyZXcgRi4gRGF2aXMgPGFmZEB0aS5jb20+CltSZW5hbWVkIGFuZCByZWZhY3RvcmVk IGRtYV9idWZfcGh5cyBkcml2ZXIsIHJld290ZSBjb21taXRsb2ddClNpZ25lZC1vZmYtYnk6IEpv aG4gU3R1bHR6IDxqb2huLnN0dWx0ekBsaW5hcm8ub3JnPgotLS0KIGRyaXZlcnMvZG1hLWJ1Zi9L Y29uZmlnICAgICAgICAgICAgICB8ICAgNiArCiBkcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUgICAg ICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9kbWEtYnVmL2RtYS1idWYtdGVzdGRldi5jICAgIHwg MjM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3VhcGkvbGlu dXgvZG1hLWJ1Zi10ZXN0ZGV2LmggfCAgMzcgKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI4MyBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYt dGVzdGRldi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L2RtYS1idWYt dGVzdGRldi5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL0tjb25maWcgYi9kcml2ZXJz L2RtYS1idWYvS2NvbmZpZwppbmRleCA2M2MxMzlkLi4zY2JjYmUwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2RtYS1idWYvS2NvbmZpZworKysgYi9kcml2ZXJzL2RtYS1idWYvS2NvbmZpZwpAQCAtNDks NCArNDksMTAgQEAgbWVudWNvbmZpZyBETUFCVUZfSEVBUFMKIAogc291cmNlICJkcml2ZXJzL2Rt YS1idWYvaGVhcHMvS2NvbmZpZyIKIAorY29uZmlnIERNQUJVRl9URVNUREVWCisJYm9vbCAiRE1B LUJVRiBEdW1teSBUZXN0IERldmljZSIKKwlkZXBlbmRzIG9uIERNQV9TSEFSRURfQlVGRkVSCisJ aGVscAorCSAgVGhpcyBwcm92aWRlcyBhIGR1bW15IHRlc3QgZGV2aWNlIHRoYXQgY2FuIGJlIHVz ZWQgdG8gdGVzdAorCSAgaW1wb3J0aW5nIGRtYS1idWZzLgogZW5kbWVudQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlIGIvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlCmluZGV4 IDA5YzJmMmQuLjY5YmY0NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZQor KysgYi9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKQEAgLTQsMyArNCw0IEBAIG9iai0kKENPTkZJ R19ETUFCVUZfSEVBUFMpCSs9IGRtYS1oZWFwLm8KIG9iai0kKENPTkZJR19TWU5DX0ZJTEUpCQkr PSBzeW5jX2ZpbGUubwogb2JqLSQoQ09ORklHX1NXX1NZTkMpCQkrPSBzd19zeW5jLm8gc3luY19k ZWJ1Zy5vCiBvYmotJChDT05GSUdfVURNQUJVRikJCSs9IHVkbWFidWYubworb2JqLSQoQ09ORklH X0RNQUJVRl9URVNUREVWKQkrPSBkbWEtYnVmLXRlc3RkZXYubwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEtYnVmL2RtYS1idWYtdGVzdGRldi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYtdGVz dGRldi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjM2VkOTMKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi10ZXN0ZGV2LmMKQEAgLTAsMCAr MSwyMzkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogRE1B LUJVRiBEdW1teSBJbXBvcnRlciBUZXN0IERldmljZQorICoKKyAqIE9yaWdpbmFsbHkgZnJvbSBU SSBETUEgQlVGIGNvbnRpZ3VvdXMgYnVmZmVyIHBoeXNpY2FsIGFkZHJlc3MKKyAqIHVzZXItc3Bh Y2UgZXhwb3J0ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggVGV4YXMgSW5zdHJ1bWVudHMg SW5jb3Jwb3JhdGVkIC0gaHR0cDovL3d3dy50aS5jb20vCisgKglBbmRyZXcgRi4gRGF2aXMgPGFm ZEB0aS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxp bnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgv cGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxp bnV4L3VhY2Nlc3MuaD4KKworI2luY2x1ZGUgPHVhcGkvbGludXgvZG1hLWJ1Zi10ZXN0ZGV2Lmg+ CisKKyNkZWZpbmUgREVWSUNFX05BTUUgImRtYS1idWYtdGVzdGRldiIKKworc3RydWN0IGRtYV9i dWZfdGVzdGRldl9wcml2IHsKKwlzdHJ1Y3QgbWlzY2RldmljZSBtaXNjZGV2OworfTsKKworc3Ry dWN0IGRtYV9idWZfdGVzdGRldl9maWxlIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0 IGRtYV9idWYgKmRtYV9idWY7CisJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVu dDsKKwlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKK307CisKK3N0YXRpYyBpbnQgZG1hX2J1Zl90ZXN0 ZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3Ry dWN0IG1pc2NkZXZpY2UgKm1pc2NkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGRl dmljZSAqZGV2ID0gbWlzY2Rldi0+dGhpc19kZXZpY2U7CisJc3RydWN0IGRtYV9idWZfdGVzdGRl dl9maWxlICpwcml2OworCisJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKwlwcml2LT5kZXYgPSBkZXY7CisJ ZmlsZS0+cHJpdmF0ZV9kYXRhID0gKHZvaWQgKilwcml2OworCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgZG1hX2J1Zl90ZXN0ZGV2X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGRtYV9idWZfdGVzdGRldl9maWxlICpwcml2ID0g ZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJaWYgKHByaXYtPmF0dGFjaG1lbnQgJiYgcHJpdi0+c2d0 KQorCQlkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQocHJpdi0+YXR0YWNobWVudCwgcHJpdi0+c2d0 LAorCQkJCQkgRE1BX0JJRElSRUNUSU9OQUwpOworCWlmIChwcml2LT5kbWFfYnVmICYmIHByaXYt PmF0dGFjaG1lbnQpCisJCWRtYV9idWZfZGV0YWNoKHByaXYtPmRtYV9idWYsIHByaXYtPmF0dGFj aG1lbnQpOworCWlmIChwcml2LT5kbWFfYnVmKQorCQlkbWFfYnVmX3B1dChwcml2LT5kbWFfYnVm KTsKKworCWtmcmVlKHByaXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZG1hX2J1 Zl90ZXN0ZGV2X2NvbnZlcnQoc3RydWN0IGRtYV9idWZfdGVzdGRldl9maWxlICpwcml2LCBpbnQg ZmQsCisJCQkJICAgcGh5c19hZGRyX3QgKnBoeXMpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0g cHJpdi0+ZGV2OworCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmOworCXN0cnVjdCBkbWFfYnVmX2F0 dGFjaG1lbnQgKmF0dGFjaG1lbnQ7CisJc3RydWN0IHNnX3RhYmxlICpzZ3Q7CisJZG1hX2FkZHJf dCBkbWFfYWRkcjsKKwlpbnQgcmV0OworCisJZG1hX2J1ZiA9IGRtYV9idWZfZ2V0KGZkKTsKKwlp ZiAoSVNfRVJSKGRtYV9idWYpKQorCQlyZXR1cm4gUFRSX0VSUihkbWFfYnVmKTsKKworCS8qIEF0 dGFjaCBhcyB0aGUgcGFyZW50IGRldmljZSBhcyBpdCB3aWxsIGhhdmUgdGhlIGNvcnJlY3QgRE1B IG9wcyAqLworCWF0dGFjaG1lbnQgPSBkbWFfYnVmX2F0dGFjaChkbWFfYnVmLCBkZXYtPnBhcmVu dCk7CisJaWYgKElTX0VSUihhdHRhY2htZW50KSkgeworCQlyZXQgPSBQVFJfRVJSKGF0dGFjaG1l bnQpOworCQlnb3RvIGZhaWxfcHV0OworCX0KKworCXNndCA9IGRtYV9idWZfbWFwX2F0dGFjaG1l bnQoYXR0YWNobWVudCwgRE1BX0JJRElSRUNUSU9OQUwpOworCWlmIChJU19FUlIoc2d0KSkgewor CQlyZXQgPSBQVFJfRVJSKHNndCk7CisJCWdvdG8gZmFpbF9kZXRhY2g7CisJfQorCisJLyogV2l0 aG91dCBQQVQgb25seSBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgYnVmZmVycyBjYW4gYmUgc3VwcG9y dGVkICovCisJaWYgKHNndC0+b3JpZ19uZW50cyAhPSAxKSB7CisJCWRldl9lcnIoZGV2LCAiRE1B LUJVRiBub3QgY29udGlndW91c1xuIik7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZmFpbF91 bm1hcDsKKwl9CisKKwlkbWFfYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNndC0+c2dsKTsKKworCSpw aHlzID0gZG1hX2FkZHI7CisKKwlwcml2LT5kbWFfYnVmID0gZG1hX2J1ZjsKKwlwcml2LT5hdHRh Y2htZW50ID0gYXR0YWNobWVudDsKKwlwcml2LT5zZ3QgPSBzZ3Q7CisKKwlyZXR1cm4gMDsKKwor ZmFpbF91bm1hcDoKKwlkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQoYXR0YWNobWVudCwgc2d0LCBE TUFfQklESVJFQ1RJT05BTCk7CitmYWlsX2RldGFjaDoKKwlkbWFfYnVmX2RldGFjaChkbWFfYnVm LCBhdHRhY2htZW50KTsKK2ZhaWxfcHV0OgorCWRtYV9idWZfcHV0KGRtYV9idWYpOworCisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIGxvbmcgZG1hX2J1Zl90ZXN0ZGV2X2lvY3RsKHN0cnVjdCBm aWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJCSAgdW5zaWduZWQgbG9uZyBhcmcpCit7 CisJc3RydWN0IGRtYV9idWZfdGVzdGRldl9maWxlICpwcml2ID0gZmlsZS0+cHJpdmF0ZV9kYXRh OworCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIERNQV9CVUZfVEVTVERFVl9JT0NfQ09OVkVSVDoK Kwl7CisJCXN0cnVjdCBkbWFfYnVmX3Rlc3RkZXZfZGF0YSBkYXRhOworCQlpbnQgcmV0OworCisJ CS8qCisJCSAqIFRPRE86IHRoaXMgc2hvdWxkIGxpa2VseSBiZSBwcm9wZXJseSBzZXJpYWxpemVk LCBidXQgSQorCQkgKiBzZWUgbm8gcmVhc29uIHRoaXMgZmlsZSB3b3VsZCBldmVyIG5lZWQgdG8g YmUgc2hhcmVkLgorCQkgKi8KKwkJLyogb25lIGF0dGFjaG1lbnQgcGVyIGZpbGUgKi8KKwkJaWYg KHByaXYtPmRtYV9idWYpCisJCQlyZXR1cm4gLUVGQVVMVDsKKworCQlpZiAoY29weV9mcm9tX3Vz ZXIoJmRhdGEsICh2b2lkIF9fdXNlciAqKWFyZywgX0lPQ19TSVpFKGNtZCkpKQorCQkJcmV0dXJu IC1FRkFVTFQ7CisKKwkJcmV0ID0gZG1hX2J1Zl90ZXN0ZGV2X2NvbnZlcnQocHJpdiwgZGF0YS5m ZCwgJmRhdGEucGh5cyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCWlmIChjb3B5 X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCAmZGF0YSwgX0lPQ19TSVpFKGNtZCkpKQorCQkJ cmV0dXJuIC1FRkFVTFQ7CisKKwkJYnJlYWs7CisJfQorCWRlZmF1bHQ6CisJCXJldHVybiAtRU5P VFRZOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3Bl cmF0aW9ucyBkbWFfYnVmX3Rlc3RkZXZfZm9wcyA9IHsKKwkub3duZXIgPSBUSElTX01PRFVMRSwK Kwkub3BlbiA9IGRtYV9idWZfdGVzdGRldl9vcGVuLAorCS5yZWxlYXNlID0gZG1hX2J1Zl90ZXN0 ZGV2X3JlbGVhc2UsCisJLnVubG9ja2VkX2lvY3RsID0gZG1hX2J1Zl90ZXN0ZGV2X2lvY3RsLAor I2lmZGVmIENPTkZJR19DT01QQVQKKwkuY29tcGF0X2lvY3RsCT0gZG1hX2J1Zl90ZXN0ZGV2X2lv Y3RsLAorI2VuZGlmCit9OworCitzdGF0aWMgaW50IGRtYV9idWZfdGVzdGRldl9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBkbWFfYnVmX3Rlc3RkZXZfcHJp diAqcHJpdjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCWludCBlcnI7CisK Kwlwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXZfc2V0X2RydmRhdGEoZGV2LCBwcml2 KTsKKworCWRtYV9jb2VyY2VfbWFza19hbmRfY29oZXJlbnQoZGV2LCBETUFfQklUX01BU0soMzIp KTsKKworCWlmICghZGV2LT5kbWFfcGFybXMpIHsKKwkJZGV2LT5kbWFfcGFybXMgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2YoKmRldi0+ZG1hX3Bhcm1zKSwKKwkJCQkJICAgICAgR0ZQX0tFUk5F TCk7CisJCWlmICghZGV2LT5kbWFfcGFybXMpCisJCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJZG1h X3NldF9tYXhfc2VnX3NpemUoZGV2LCBETUFfQklUX01BU0soMzIpKTsKKworCXByaXYtPm1pc2Nk ZXYubWlub3IgPSBNSVNDX0RZTkFNSUNfTUlOT1I7CisJcHJpdi0+bWlzY2Rldi5uYW1lID0gZGV2 bV9rYXNwcmludGYoZGV2LCBHRlBfS0VSTkVMLCAiJXMiLAorCQkJCQkgICAgREVWSUNFX05BTUUp OworCXByaXYtPm1pc2NkZXYuZm9wcyA9ICZkbWFfYnVmX3Rlc3RkZXZfZm9wczsKKwlwcml2LT5t aXNjZGV2LnBhcmVudCA9IGRldjsKKwllcnIgPSBtaXNjX3JlZ2lzdGVyKCZwcml2LT5taXNjZGV2 KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LAorCQkJInVuYWJsZSB0byByZWdpc3RlciBE TUEtQlVGIHRvIFBoeXMgbWlzYyBkZXZpY2VcbiIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGRtYV9idWZfdGVzdGRldl9yZW1vdmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZG1hX2J1Zl90ZXN0ZGV2X3ByaXYgKnBy aXYgPSBkZXZfZ2V0X2RydmRhdGEoJnBkZXYtPmRldik7CisKKwltaXNjX2RlcmVnaXN0ZXIoJnBy aXYtPm1pc2NkZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGRtYV9idWZfdGVzdGRldl9kcml2ZXIgPSB7CisJLnByb2JlID0gZG1hX2J1Zl90ZXN0 ZGV2X3Byb2JlLAorCS5yZW1vdmUgPSBkbWFfYnVmX3Rlc3RkZXZfcmVtb3ZlLAorCS5kcml2ZXIg PSB7CisJCS5uYW1lID0gImRtYV9idWZfdGVzdGRldiIsCisJfQorfTsKK21vZHVsZV9wbGF0Zm9y bV9kcml2ZXIoZG1hX2J1Zl90ZXN0ZGV2X2RyaXZlcik7CisKK3N0YXRpYyBpbnQgX19pbml0IGRt YV9idWZfdGVzdGRldl9pbml0KHZvaWQpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl djsKKworCXBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJkbWFfYnVmX3Rl c3RkZXYiLCAtMSwgTlVMTCwgMCk7CisKKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHBkZXYpOwor fQorCitwb3N0Y29yZV9pbml0Y2FsbChkbWFfYnVmX3Rlc3RkZXZfaW5pdCk7CisKK01PRFVMRV9B VVRIT1IoIkFuZHJldyBGLiBEYXZpcyA8YWZkQHRpLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElP TigiRE1BLUJVRiBEdW1teSBJbXBvcnRlciBUZXN0IERldmljZSIpOworTU9EVUxFX0xJQ0VOU0Uo IkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RtYS1idWYtdGVzdGRl di5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2RtYS1idWYtdGVzdGRldi5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NzA2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvZG1hLWJ1Zi10ZXN0ZGV2LmgKQEAgLTAsMCArMSwzNyBAQAorLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KKy8q CisgKiBETUEtQlVGIER1bW15IEltcG9ydGVyIFRlc3QgRGV2aWNlCisgKgorICogQ29weXJpZ2h0 IChDKSAyMDE4IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCAtIGh0dHA6Ly93d3cudGku Y29tLworICoJQW5kcmV3IEYuIERhdmlzIDxhZmRAdGkuY29tPgorICovCisKKyNpZm5kZWYgRE1B X0JVRl9URVNUREVWX0gKKyNkZWZpbmUgRE1BX0JVRl9URVNUREVWX0gKKworI2luY2x1ZGUgPGxp bnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoqCisgKiBzdHJ1Y3Qg ZG1hX2J1Zl90ZXN0ZGV2X2RhdGEgLSBtZXRhZGF0YSBwYXNzZWQgZnJvbSB1c2Vyc3BhY2UgZm9y IGNvbnZlcnNpb24KKyAqIEBmZDoJCURNQS1CVUYgZmQgZm9yIGNvbnZlcnNpb24KKyAqIEBwaHlz Oglwb3B1bGF0ZWQgd2l0aCBDUFUgcGh5c2ljYWwgYWRkcmVzcyBvZiBETUEtQlVGCisgKi8KK3N0 cnVjdCBkbWFfYnVmX3Rlc3RkZXZfZGF0YSB7CisJX191MzIgZmQ7CisJX191NjQgcGh5czsKK307 CisKKyNkZWZpbmUgRE1BX0JVRl9URVNUREVWX0lPQ19NQUdJQyAnRCcKKworLyoqCisgKiBET0M6 IERNQV9CVUZfVEVTVERFVl9JT0NfQ09OVkVSVCAtIENvbnZlcnQgRE1BLUJVRiB0byBwaHlzaWNh bCBhZGRyZXNzCisgKgorICogVGFrZXMgYSBkbWFfYnVmX3Rlc3RkZXZfZGF0YSBzdHJ1Y3QgY29u dGFpbmluZyBhIGZkIGZvciBhCisgKiBwaHlzaWNhbHkgY29udGlnb3VzIGJ1ZmZlci4gUGlucyB0 aGlzIGJ1ZmZlciBhbmQgcG9wdWxhdGVzCisgKiBwaHlzIGZpZWxkIHdpdGggdGhlIENQVSBwaHlz aWNhbCBhZGRyZXNzLgorICovCisjZGVmaW5lIERNQV9CVUZfVEVTVERFVl9JT0NfQ09OVkVSVCBf SU9XUihETUFfQlVGX1RFU1RERVZfSU9DX01BR0lDLCAwLCBcCisJCQkJCSAgc3RydWN0IGRtYV9i dWZfdGVzdGRldl9kYXRhKQorCisjZW5kaWYgLyogRE1BX0JVRl9QSFlTX0ggKi8KLS0gCjIuNy40 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=