From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH v2 6/9] drm/vc4: Bind and initialize the V3D engine. Date: Tue, 8 Dec 2015 10:30:15 -0800 Message-ID: <1449599418-20780-7-git-send-email-eric@anholt.net> References: <1449599418-20780-1-git-send-email-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1449599418-20780-1-git-send-email-eric@anholt.net> 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 Cc: linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBpcyB0aGUgY29tcG9uZW50IG9mIHRoZSBHUFUgdGhhdCBkb2VzIDNEIHJlbmRlcmluZy4K ClNpZ25lZC1vZmYtYnk6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL3ZjNC9NYWtlZmlsZSAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2RlYnVnZnMuYyB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYyAgICAg fCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmggICAgIHwgIDEzICsrKwogZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfdjNkLmMgICAgIHwgMjI1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdjNkLmMKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC9N YWtlZmlsZQppbmRleCBlYjc3NmE2Li5lODdhNmYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmM0L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvTWFrZWZpbGUKQEAgLTEx LDYgKzExLDcgQEAgdmM0LXkgOj0gXAogCXZjNF9oZG1pLm8gXAogCXZjNF9odnMubyBcCiAJdmM0 X3BsYW5lLm8gXAorCXZjNF92M2QubyBcCiAJdmM0X3ZhbGlkYXRlX3NoYWRlcnMubwogCiB2YzQt JChDT05GSUdfREVCVUdfRlMpICs9IHZjNF9kZWJ1Z2ZzLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RlYnVn ZnMuYwppbmRleCA2YmNmOTZlLi5kNzZhZDEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZGVidWdmcy5j CkBAIC0yMiw2ICsyMiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCB2YzRf ZGVidWdmc19saXN0W10gPSB7CiAJeyJjcnRjMF9yZWdzIiwgdmM0X2NydGNfZGVidWdmc19yZWdz LCAwLCAodm9pZCAqKSh1aW50cHRyX3QpMH0sCiAJeyJjcnRjMV9yZWdzIiwgdmM0X2NydGNfZGVi dWdmc19yZWdzLCAwLCAodm9pZCAqKSh1aW50cHRyX3QpMX0sCiAJeyJjcnRjMl9yZWdzIiwgdmM0 X2NydGNfZGVidWdmc19yZWdzLCAwLCAodm9pZCAqKSh1aW50cHRyX3QpMn0sCisJeyJ2M2RfaWRl bnQiLCB2YzRfdjNkX2RlYnVnZnNfaWRlbnQsIDB9LAorCXsidjNkX3JlZ3MiLCB2YzRfdjNkX2Rl YnVnZnNfcmVncywgMH0sCiB9OwogCiAjZGVmaW5lIFZDNF9ERUJVR0ZTX0VOVFJJRVMgQVJSQVlf U0laRSh2YzRfZGVidWdmc19saXN0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92 YzRfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYwppbmRleCBkYTRiZTljLi5k YjU4ZDc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYwpAQCAtMjM2LDYgKzIzNiw3IEBAIHN0YXRpYyBz dHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICpjb25zdCBjb21wb25lbnRfZHJpdmVyc1tdID0gewogCSZ2 YzRfaGRtaV9kcml2ZXIsCiAJJnZjNF9jcnRjX2RyaXZlciwKIAkmdmM0X2h2c19kcml2ZXIsCisJ JnZjNF92M2RfZHJpdmVyLAogfTsKIAogc3RhdGljIGludCB2YzRfcGxhdGZvcm1fZHJtX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmM0L3ZjNF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCmluZGV4IGJk NzdkNTUuLjg5NDU0NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCkBAIC0xNSw2ICsxNSw3IEBAIHN0 cnVjdCB2YzRfZGV2IHsKIAlzdHJ1Y3QgdmM0X2hkbWkgKmhkbWk7CiAJc3RydWN0IHZjNF9odnMg Kmh2czsKIAlzdHJ1Y3QgdmM0X2NydGMgKmNydGNbM107CisJc3RydWN0IHZjNF92M2QgKnYzZDsK IAogCXN0cnVjdCBkcm1fZmJkZXZfY21hICpmYmRldjsKIApAQCAtODIsNiArODMsMTEgQEAgdG9f dmM0X2JvKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqYm8pCiAJcmV0dXJuIChzdHJ1Y3QgdmM0X2Jv ICopYm87CiB9CiAKK3N0cnVjdCB2YzRfdjNkIHsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2OworCXZvaWQgX19pb21lbSAqcmVnczsKK307CisKIHN0cnVjdCB2YzRfaHZzIHsKIAlzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OwogCXZvaWQgX19pb21lbSAqcmVnczsKQEAgLTExOSw2 ICsxMjUsOCBAQCB0b192YzRfZW5jb2RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJ cmV0dXJuIGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgdmM0X2VuY29kZXIsIGJhc2UpOwog fQogCisjZGVmaW5lIFYzRF9SRUFEKG9mZnNldCkgcmVhZGwodmM0LT52M2QtPnJlZ3MgKyBvZmZz ZXQpCisjZGVmaW5lIFYzRF9XUklURShvZmZzZXQsIHZhbCkgd3JpdGVsKHZhbCwgdmM0LT52M2Qt PnJlZ3MgKyBvZmZzZXQpCiAjZGVmaW5lIEhWU19SRUFEKG9mZnNldCkgcmVhZGwodmM0LT5odnMt PnJlZ3MgKyBvZmZzZXQpCiAjZGVmaW5lIEhWU19XUklURShvZmZzZXQsIHZhbCkgd3JpdGVsKHZh bCwgdmM0LT5odnMtPnJlZ3MgKyBvZmZzZXQpCiAKQEAgLTI0MSw2ICsyNDksMTEgQEAgc3RydWN0 IGRybV9wbGFuZSAqdmM0X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIHUzMiB2 YzRfcGxhbmVfd3JpdGVfZGxpc3Qoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHUzMiBfX2lvbWVt ICpkbGlzdCk7CiB1MzIgdmM0X3BsYW5lX2RsaXN0X3NpemUoc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqc3RhdGUpOwogCisvKiB2YzRfdjNkLmMgKi8KK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJp dmVyIHZjNF92M2RfZHJpdmVyOworaW50IHZjNF92M2RfZGVidWdmc19pZGVudChzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCk7CitpbnQgdmM0X3YzZF9kZWJ1Z2ZzX3JlZ3Moc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpOworCiAvKiB2YzRfdmFsaWRhdGVfc2hhZGVyLmMg Ki8KIHN0cnVjdCB2YzRfdmFsaWRhdGVkX3NoYWRlcl9pbmZvICoKIHZjNF92YWxpZGF0ZV9zaGFk ZXIoc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqc2hhZGVyX29iaik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3Yz ZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MGFkMGQKLS0tIC9kZXYv bnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYwpAQCAtMCwwICsxLDIyNSBA QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBSZWQgSGF0CisgKiBBdXRob3I6 IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAor ICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJz aW9uIDIgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAorICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAorICog dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorICovCisKKyNpbmNsdWRlICJsaW51eC9jb21wb25lbnQuaCIKKyNpbmNsdWRlICJ2YzRfZHJ2 LmgiCisjaW5jbHVkZSAidmM0X3JlZ3MuaCIKKworI2lmZGVmIENPTkZJR19ERUJVR19GUworI2Rl ZmluZSBSRUdERUYocmVnKSB7IHJlZywgI3JlZyB9CitzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwl1 aW50MzJfdCByZWc7CisJY29uc3QgY2hhciAqbmFtZTsKK30gdmM0X3JlZ19kZWZzW10gPSB7CisJ UkVHREVGKFYzRF9JREVOVDApLAorCVJFR0RFRihWM0RfSURFTlQxKSwKKwlSRUdERUYoVjNEX0lE RU5UMiksCisJUkVHREVGKFYzRF9TQ1JBVENIKSwKKwlSRUdERUYoVjNEX0wyQ0FDVEwpLAorCVJF R0RFRihWM0RfU0xDQUNUTCksCisJUkVHREVGKFYzRF9JTlRDVEwpLAorCVJFR0RFRihWM0RfSU5U RU5BKSwKKwlSRUdERUYoVjNEX0lOVERJUyksCisJUkVHREVGKFYzRF9DVDBDUyksCisJUkVHREVG KFYzRF9DVDFDUyksCisJUkVHREVGKFYzRF9DVDBFQSksCisJUkVHREVGKFYzRF9DVDFFQSksCisJ UkVHREVGKFYzRF9DVDBDQSksCisJUkVHREVGKFYzRF9DVDFDQSksCisJUkVHREVGKFYzRF9DVDAw UkEwKSwKKwlSRUdERUYoVjNEX0NUMDFSQTApLAorCVJFR0RFRihWM0RfQ1QwTEMpLAorCVJFR0RF RihWM0RfQ1QxTEMpLAorCVJFR0RFRihWM0RfQ1QwUEMpLAorCVJFR0RFRihWM0RfQ1QxUEMpLAor CVJFR0RFRihWM0RfUENTKSwKKwlSRUdERUYoVjNEX0JGQyksCisJUkVHREVGKFYzRF9SRkMpLAor CVJFR0RFRihWM0RfQlBDQSksCisJUkVHREVGKFYzRF9CUENTKSwKKwlSRUdERUYoVjNEX0JQT0Ep LAorCVJFR0RFRihWM0RfQlBPUyksCisJUkVHREVGKFYzRF9CWENGKSwKKwlSRUdERUYoVjNEX1NR UlNWMCksCisJUkVHREVGKFYzRF9TUVJTVjEpLAorCVJFR0RFRihWM0RfU1FDTlRMKSwKKwlSRUdE RUYoVjNEX1NSUVBDKSwKKwlSRUdERUYoVjNEX1NSUVVBKSwKKwlSRUdERUYoVjNEX1NSUVVMKSwK KwlSRUdERUYoVjNEX1NSUUNTKSwKKwlSRUdERUYoVjNEX1ZQQUNOVEwpLAorCVJFR0RFRihWM0Rf VlBNQkFTRSksCisJUkVHREVGKFYzRF9QQ1RSQyksCisJUkVHREVGKFYzRF9QQ1RSRSksCisJUkVH REVGKFYzRF9QQ1RSMCksCisJUkVHREVGKFYzRF9QQ1RSUzApLAorCVJFR0RFRihWM0RfUENUUjEp LAorCVJFR0RFRihWM0RfUENUUlMxKSwKKwlSRUdERUYoVjNEX1BDVFIyKSwKKwlSRUdERUYoVjNE X1BDVFJTMiksCisJUkVHREVGKFYzRF9QQ1RSMyksCisJUkVHREVGKFYzRF9QQ1RSUzMpLAorCVJF R0RFRihWM0RfUENUUjQpLAorCVJFR0RFRihWM0RfUENUUlM0KSwKKwlSRUdERUYoVjNEX1BDVFI1 KSwKKwlSRUdERUYoVjNEX1BDVFJTNSksCisJUkVHREVGKFYzRF9QQ1RSNiksCisJUkVHREVGKFYz RF9QQ1RSUzYpLAorCVJFR0RFRihWM0RfUENUUjcpLAorCVJFR0RFRihWM0RfUENUUlM3KSwKKwlS RUdERUYoVjNEX1BDVFI4KSwKKwlSRUdERUYoVjNEX1BDVFJTOCksCisJUkVHREVGKFYzRF9QQ1RS OSksCisJUkVHREVGKFYzRF9QQ1RSUzkpLAorCVJFR0RFRihWM0RfUENUUjEwKSwKKwlSRUdERUYo VjNEX1BDVFJTMTApLAorCVJFR0RFRihWM0RfUENUUjExKSwKKwlSRUdERUYoVjNEX1BDVFJTMTEp LAorCVJFR0RFRihWM0RfUENUUjEyKSwKKwlSRUdERUYoVjNEX1BDVFJTMTIpLAorCVJFR0RFRihW M0RfUENUUjEzKSwKKwlSRUdERUYoVjNEX1BDVFJTMTMpLAorCVJFR0RFRihWM0RfUENUUjE0KSwK KwlSRUdERUYoVjNEX1BDVFJTMTQpLAorCVJFR0RFRihWM0RfUENUUjE1KSwKKwlSRUdERUYoVjNE X1BDVFJTMTUpLAorCVJFR0RFRihWM0RfREJHRSksCisJUkVHREVGKFYzRF9GREJHTyksCisJUkVH REVGKFYzRF9GREJHQiksCisJUkVHREVGKFYzRF9GREJHUiksCisJUkVHREVGKFYzRF9GREJHUyks CisJUkVHREVGKFYzRF9FUlJTVEFUKSwKK307CisKK2ludCB2YzRfdjNkX2RlYnVnZnNfcmVncyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKK3sKKwlzdHJ1Y3QgZHJtX2luZm9fbm9k ZSAqbm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKW0tPnByaXZhdGU7CisJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CisJc3RydWN0IHZjNF9kZXYgKnZjNCA9 IHRvX3ZjNF9kZXYoZGV2KTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpF KHZjNF9yZWdfZGVmcyk7IGkrKykgeworCQlzZXFfcHJpbnRmKG0sICIlcyAoMHglMDR4KTogMHgl MDh4XG4iLAorCQkJICAgdmM0X3JlZ19kZWZzW2ldLm5hbWUsIHZjNF9yZWdfZGVmc1tpXS5yZWcs CisJCQkgICBWM0RfUkVBRCh2YzRfcmVnX2RlZnNbaV0ucmVnKSk7CisJfQorCisJcmV0dXJuIDA7 Cit9CisKK2ludCB2YzRfdjNkX2RlYnVnZnNfaWRlbnQoc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICp1bnVzZWQpCit7CisJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9p bmZvX25vZGUgKiltLT5wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5t aW5vci0+ZGV2OworCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2KGRldik7CisJdWlu dDMyX3QgaWRlbnQxID0gVjNEX1JFQUQoVjNEX0lERU5UMSk7CisJdWludDMyX3QgbnNsYyA9IFZD NF9HRVRfRklFTEQoaWRlbnQxLCBWM0RfSURFTlQxX05TTEMpOworCXVpbnQzMl90IHR1cHMgPSBW QzRfR0VUX0ZJRUxEKGlkZW50MSwgVjNEX0lERU5UMV9UVVBTKTsKKwl1aW50MzJfdCBxdXBzID0g VkM0X0dFVF9GSUVMRChpZGVudDEsIFYzRF9JREVOVDFfUVVQUyk7CisKKwlzZXFfcHJpbnRmKG0s ICJSZXZpc2lvbjogICAlZFxuIiwKKwkJICAgVkM0X0dFVF9GSUVMRChpZGVudDEsIFYzRF9JREVO VDFfUkVWKSk7CisJc2VxX3ByaW50ZihtLCAiU2xpY2VzOiAgICAgJWRcbiIsIG5zbGMpOworCXNl cV9wcmludGYobSwgIlRNVXM6ICAgICAgICVkXG4iLCBuc2xjICogdHVwcyk7CisJc2VxX3ByaW50 ZihtLCAiUVBVczogICAgICAgJWRcbiIsIG5zbGMgKiBxdXBzKTsKKwlzZXFfcHJpbnRmKG0sICJT ZW1hcGhvcmVzOiAlZFxuIiwKKwkJICAgVkM0X0dFVF9GSUVMRChpZGVudDEsIFYzRF9JREVOVDFf TlNFTSkpOworCisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogQ09ORklHX0RFQlVHX0ZTICovCisK K3N0YXRpYyB2b2lkIHZjNF92M2RfaW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorewor CXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2KGRldik7CisKKwkvKiBUYWtlIGFsbCB0 aGUgbWVtb3J5IHRoYXQgd291bGQgaGF2ZSBiZWVuIHJlc2VydmVkIGZvciB1c2VyCisJICogUVBV IHByb2dyYW1zLCBzaW5jZSB3ZSBkb24ndCBoYXZlIGFuIGludGVyZmFjZSBmb3IgcnVubmluZwor CSAqIHRoZW0sIGFueXdheS4KKwkgKi8KKwlWM0RfV1JJVEUoVjNEX1ZQTUJBU0UsIDApOworfQor CitzdGF0aWMgaW50IHZjNF92M2RfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp Y2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRl dl9nZXRfZHJ2ZGF0YShtYXN0ZXIpOworCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2 KGRybSk7CisJc3RydWN0IHZjNF92M2QgKnYzZCA9IE5VTEw7CisKKwl2M2QgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwgc2l6ZW9mKCp2M2QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXYzZCkKKwkJ cmV0dXJuIC1FTk9NRU07CisKKwl2M2QtPnBkZXYgPSBwZGV2OworCisJdjNkLT5yZWdzID0gdmM0 X2lvcmVtYXBfcmVncyhwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKHYzZC0+cmVncykpCisJCXJldHVy biBQVFJfRVJSKHYzZC0+cmVncyk7CisKKwl2YzQtPnYzZCA9IHYzZDsKKworCWlmIChWM0RfUkVB RChWM0RfSURFTlQwKSAhPSBWM0RfRVhQRUNURURfSURFTlQwKSB7CisJCURSTV9FUlJPUigiVjNE X0lERU5UMCByZWFkIDB4JTA4eCBpbnN0ZWFkIG9mIDB4JTA4eFxuIiwKKwkJCSAgVjNEX1JFQUQo VjNEX0lERU5UMCksIFYzRF9FWFBFQ1RFRF9JREVOVDApOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisKKwl2YzRfdjNkX2luaXRfaHcoZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9p ZCB2YzRfdjNkX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rl ciwKKwkJCSAgIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRldl9n ZXRfZHJ2ZGF0YShtYXN0ZXIpOworCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2KGRy bSk7CisKKwl2YzQtPnYzZCA9IE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9u ZW50X29wcyB2YzRfdjNkX29wcyA9IHsKKwkuYmluZCAgID0gdmM0X3YzZF9iaW5kLAorCS51bmJp bmQgPSB2YzRfdjNkX3VuYmluZCwKK307CisKK3N0YXRpYyBpbnQgdmM0X3YzZF9kZXZfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gY29tcG9uZW50X2FkZCgm cGRldi0+ZGV2LCAmdmM0X3YzZF9vcHMpOworfQorCitzdGF0aWMgaW50IHZjNF92M2RfZGV2X3Jl bW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCWNvbXBvbmVudF9kZWwoJnBk ZXYtPmRldiwgJnZjNF92M2Rfb3BzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBvZl9kZXZpY2VfaWQgdmM0X3YzZF9kdF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUg PSAiYnJjbSx2YzQtdjNkIiB9LAorCXt9Cit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHZj NF92M2RfZHJpdmVyID0geworCS5wcm9iZSA9IHZjNF92M2RfZGV2X3Byb2JlLAorCS5yZW1vdmUg PSB2YzRfdjNkX2Rldl9yZW1vdmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAidmM0X3YzZCIs CisJCS5vZl9tYXRjaF90YWJsZSA9IHZjNF92M2RfZHRfbWF0Y2gsCisJfSwKK307Ci0tIAoyLjYu MgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK