From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 08/12] gpu: host1x: Set DMA mask based on IOMMU setup Date: Mon, 28 Oct 2019 13:37:14 +0100 Message-ID: <20191028123718.3890217-9-thierry.reding@gmail.com> References: <20191028123718.3890217-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191028123718.3890217-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, Sachin Nikam , dri-devel@lists.freedesktop.org, Puneet Saxena List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCklmIHRoZSBUZWdyYSBE Uk0gY2xpZW50cyBhcmUgYmFja2VkIGJ5IGFuIElPTU1VLCBwdXNoIGJ1ZmZlcnMgYXJlIGxpa2Vs eQp0byBiZSBhbGxvY2F0ZWQgYmV5b25kIHRoZSAzMi1iaXQgYm91bmRhcnkgaWYgc3VmZmljaWVu dCBzeXN0ZW0gbWVtb3J5CmlzIGF2YWlsYWJsZS4gVGhpcyBpcyBwcm9ibGVtYXRpYyBvbiBlYXJs aWVyIGdlbmVyYXRpb25zIG9mIFRlZ3JhIHdoZXJlCmhvc3QxeCBzdXBwb3J0cyBhIG1heGltdW0g b2YgMzIgYWRkcmVzcyBiaXRzIGZvciB0aGUgR0FUSEVSIG9wY29kZS4gTW9yZQpyZWNlbnQgdmVy c2lvbnMgb2YgVGVncmEgKFRlZ3JhMTg2IGFuZCBsYXRlcikgaGF2ZSBhIHdpZGUgdmFyaWFudCBv ZiB0aGUKR0FUSEVSIG9wY29kZSwgd2hpY2ggYWxsb3dzIGFkZHJlc3NpbmcgdXAgdG8gNjQgYml0 cyBvZiBtZW1vcnkuCgpJZiBob3N0MXggaXRzZWxmIGlzIGJlaGluZCBhbiBJT01NVSBhcyB3ZWxs IHRoaXMgZG9lc24ndCBtYXR0ZXIgYmVjYXVzZQp0aGUgSU9NTVUncyBpbnB1dCBhZGRyZXNzIHNw YWNlIGlzIHJlc3RyaWN0ZWQgdG8gMzIgYml0cyBvbiBnZW5lcmF0aW9ucwp3aXRob3V0IHN1cHBv cnQgZm9yIHdpZGUgR0FUSEVSIG9wY29kZXMuCgpIb3dldmVyLCBpZiBob3N0MXggaXMgbm90IGJl aGluZCBhbiBJT01NVSwgaXQgd29uJ3QgYmUgYWJsZSB0byBwcm9jZXNzCnB1c2ggYnVmZmVycyBi ZXlvbmQgdGhlIDMyLWJpdCBib3VuZGFyeSBvbiBUZWdyYSBnZW5lcmF0aW9ucyB0aGF0IGRvbid0 CnN1cHBvcnQgd2lkZSBHQVRIRVIgb3Bjb2Rlcy4gUmVzdHJpY3QgdGhlIERNQSBtYXNrIHRvIDMy IGJpdHMgb24gdGhlc2UKZ2VuZXJhdGlvbnMgcHJldmVudHMgYnVmZmVycyBmcm9tIGJlaW5nIGFs bG9jYXRlZCBmcm9tIGJleW9uZCB0aGUgMzItYml0CmJvdW5kYXJ5LgoKU2lnbmVkLW9mZi1ieTog VGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9ob3N0 MXgvZGV2LmMgfCAyMTQgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9ob3N0MXgvZGV2LmggfCAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAxMzYgaW5z ZXJ0aW9ucygrKSwgNzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvaG9z dDF4L2Rldi5jIGIvZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5jCmluZGV4IDViZGM0ODQzOThmNC4u YTczOGVhNTVlNDA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2LmMKKysrIGIv ZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5jCkBAIC03Myw2ICs3Myw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaG9zdDF4X2luZm8gaG9zdDF4MDFfaW5mbyA9IHsKIAkuaW5pdCA9IGhvc3QxeDAxX2lu aXQsCiAJLnN5bmNfb2Zmc2V0ID0gMHgzMDAwLAogCS5kbWFfbWFzayA9IERNQV9CSVRfTUFTSygz MiksCisJLmhhc193aWRlX2dhdGhlciA9IGZhbHNlLAogCS5oYXNfaHlwZXJ2aXNvciA9IGZhbHNl LAogCS5udW1fc2lkX2VudHJpZXMgPSAwLAogCS5zaWRfdGFibGUgPSBOVUxMLApAQCAtODYsNiAr ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhvc3QxeF9pbmZvIGhvc3QxeDAyX2luZm8gPSB7 CiAJLmluaXQgPSBob3N0MXgwMl9pbml0LAogCS5zeW5jX29mZnNldCA9IDB4MzAwMCwKIAkuZG1h X21hc2sgPSBETUFfQklUX01BU0soMzIpLAorCS5oYXNfd2lkZV9nYXRoZXIgPSBmYWxzZSwKIAku aGFzX2h5cGVydmlzb3IgPSBmYWxzZSwKIAkubnVtX3NpZF9lbnRyaWVzID0gMCwKIAkuc2lkX3Rh YmxlID0gTlVMTCwKQEAgLTk5LDYgKzEwMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaG9zdDF4 X2luZm8gaG9zdDF4MDRfaW5mbyA9IHsKIAkuaW5pdCA9IGhvc3QxeDA0X2luaXQsCiAJLnN5bmNf b2Zmc2V0ID0gMHgyMTAwLAogCS5kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzNCksCisJLmhhc193 aWRlX2dhdGhlciA9IGZhbHNlLAogCS5oYXNfaHlwZXJ2aXNvciA9IGZhbHNlLAogCS5udW1fc2lk X2VudHJpZXMgPSAwLAogCS5zaWRfdGFibGUgPSBOVUxMLApAQCAtMTEyLDYgKzExNSw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaG9zdDF4X2luZm8gaG9zdDF4MDVfaW5mbyA9IHsKIAkuaW5pdCA9 IGhvc3QxeDA1X2luaXQsCiAJLnN5bmNfb2Zmc2V0ID0gMHgyMTAwLAogCS5kbWFfbWFzayA9IERN QV9CSVRfTUFTSygzNCksCisJLmhhc193aWRlX2dhdGhlciA9IGZhbHNlLAogCS5oYXNfaHlwZXJ2 aXNvciA9IGZhbHNlLAogCS5udW1fc2lkX2VudHJpZXMgPSAwLAogCS5zaWRfdGFibGUgPSBOVUxM LApAQCAtMTM0LDYgKzEzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaG9zdDF4X2luZm8gaG9z dDF4MDZfaW5mbyA9IHsKIAkuaW5pdCA9IGhvc3QxeDA2X2luaXQsCiAJLnN5bmNfb2Zmc2V0ID0g MHgwLAogCS5kbWFfbWFzayA9IERNQV9CSVRfTUFTSyg0MCksCisJLmhhc193aWRlX2dhdGhlciA9 IHRydWUsCiAJLmhhc19oeXBlcnZpc29yID0gdHJ1ZSwKIAkubnVtX3NpZF9lbnRyaWVzID0gQVJS QVlfU0laRSh0ZWdyYTE4Nl9zaWRfdGFibGUpLAogCS5zaWRfdGFibGUgPSB0ZWdyYTE4Nl9zaWRf dGFibGUsCkBAIC0xNTYsNiArMTYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBob3N0MXhfaW5m byBob3N0MXgwN19pbmZvID0gewogCS5pbml0ID0gaG9zdDF4MDdfaW5pdCwKIAkuc3luY19vZmZz ZXQgPSAweDAsCiAJLmRtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDQwKSwKKwkuaGFzX3dpZGVfZ2F0 aGVyID0gdHJ1ZSwKIAkuaGFzX2h5cGVydmlzb3IgPSB0cnVlLAogCS5udW1fc2lkX2VudHJpZXMg PSBBUlJBWV9TSVpFKHRlZ3JhMTk0X3NpZF90YWJsZSksCiAJLnNpZF90YWJsZSA9IHRlZ3JhMTk0 X3NpZF90YWJsZSwKQEAgLTE4Niw2ICsxOTIsMTE3IEBAIHN0YXRpYyB2b2lkIGhvc3QxeF9zZXR1 cF9zaWRfdGFibGUoc3RydWN0IGhvc3QxeCAqaG9zdCkKIAl9CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qg aW9tbXVfZG9tYWluICpob3N0MXhfaW9tbXVfYXR0YWNoKHN0cnVjdCBob3N0MXggKmhvc3QpCit7 CisJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluID0gaW9tbXVfZ2V0X2RvbWFpbl9mb3JfZGV2 KGhvc3QtPmRldik7CisJaW50IGVycjsKKworCS8qCisJICogSWYgdGhlIGhvc3QxeCBmaXJld2Fs bCBpcyBlbmFibGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZW5hYmxlIElPTU1VCisJICogc3VwcG9y dC4gU2ltaWxhcmx5LCBpZiBob3N0MXggaXMgYWxyZWFkeSBhdHRhY2hlZCB0byBhbiBJT01NVSAo dmlhCisJICogdGhlIERNQSBBUEkpLCBkb24ndCB0cnkgdG8gYXR0YWNoIGFnYWluLgorCSAqLwor CWlmIChJU19FTkFCTEVEKENPTkZJR19URUdSQV9IT1NUMVhfRklSRVdBTEwpIHx8IGRvbWFpbikK KwkJcmV0dXJuIGRvbWFpbjsKKworCWhvc3QtPmdyb3VwID0gaW9tbXVfZ3JvdXBfZ2V0KGhvc3Qt PmRldik7CisJaWYgKGhvc3QtPmdyb3VwKSB7CisJCXN0cnVjdCBpb21tdV9kb21haW5fZ2VvbWV0 cnkgKmdlb21ldHJ5OworCQlkbWFfYWRkcl90IHN0YXJ0LCBlbmQ7CisJCXVuc2lnbmVkIGxvbmcg b3JkZXI7CisKKwkJZXJyID0gaW92YV9jYWNoZV9nZXQoKTsKKwkJaWYgKGVyciA8IDApCisJCQln b3RvIHB1dF9ncm91cDsKKworCQlob3N0LT5kb21haW4gPSBpb21tdV9kb21haW5fYWxsb2MoJnBs YXRmb3JtX2J1c190eXBlKTsKKwkJaWYgKCFob3N0LT5kb21haW4pIHsKKwkJCWVyciA9IC1FTk9N RU07CisJCQlnb3RvIHB1dF9jYWNoZTsKKwkJfQorCisJCWVyciA9IGlvbW11X2F0dGFjaF9ncm91 cChob3N0LT5kb21haW4sIGhvc3QtPmdyb3VwKTsKKwkJaWYgKGVycikgeworCQkJaWYgKGVyciA9 PSAtRU5PREVWKQorCQkJCWVyciA9IDA7CisKKwkJCWdvdG8gZnJlZV9kb21haW47CisJCX0KKwor CQlnZW9tZXRyeSA9ICZob3N0LT5kb21haW4tPmdlb21ldHJ5OworCQlzdGFydCA9IGdlb21ldHJ5 LT5hcGVydHVyZV9zdGFydCAmIGhvc3QtPmluZm8tPmRtYV9tYXNrOworCQllbmQgPSBnZW9tZXRy eS0+YXBlcnR1cmVfZW5kICYgaG9zdC0+aW5mby0+ZG1hX21hc2s7CisKKwkJb3JkZXIgPSBfX2Zm cyhob3N0LT5kb21haW4tPnBnc2l6ZV9iaXRtYXApOworCQlpbml0X2lvdmFfZG9tYWluKCZob3N0 LT5pb3ZhLCAxVUwgPDwgb3JkZXIsIHN0YXJ0ID4+IG9yZGVyKTsKKwkJaG9zdC0+aW92YV9lbmQg PSBlbmQ7CisKKwkJZG9tYWluID0gaG9zdC0+ZG9tYWluOworCX0KKworCXJldHVybiBkb21haW47 CisKK2ZyZWVfZG9tYWluOgorCWlvbW11X2RvbWFpbl9mcmVlKGhvc3QtPmRvbWFpbik7CisJaG9z dC0+ZG9tYWluID0gTlVMTDsKK3B1dF9jYWNoZToKKwlpb3ZhX2NhY2hlX3B1dCgpOworcHV0X2dy b3VwOgorCWlvbW11X2dyb3VwX3B1dChob3N0LT5ncm91cCk7CisJaG9zdC0+Z3JvdXAgPSBOVUxM OworCisJcmV0dXJuIEVSUl9QVFIoZXJyKTsKK30KKworc3RhdGljIGludCBob3N0MXhfaW9tbXVf aW5pdChzdHJ1Y3QgaG9zdDF4ICpob3N0KQoreworCXU2NCBtYXNrID0gaG9zdC0+aW5mby0+ZG1h X21hc2s7CisJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOworCWludCBlcnI7CisKKwlkb21h aW4gPSBob3N0MXhfaW9tbXVfYXR0YWNoKGhvc3QpOworCWlmIChJU19FUlIoZG9tYWluKSkgewor CQllcnIgPSBQVFJfRVJSKGRvbWFpbik7CisJCWRldl9lcnIoaG9zdC0+ZGV2LCAiZmFpbGVkIHRv IGF0dGFjaCB0byBJT01NVTogJWRcbiIsIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCisJLyoK KwkgKiBJZiB3ZSdyZSBub3QgYmVoaW5kIGFuIElPTU1VIG1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQg cHVzaCBidWZmZXJzCisJICogdGhhdCBhcmUgYWxsb2NhdGVkIG91dHNpZGUgb2YgdGhlIHJhbmdl IGFkZHJlc3NhYmxlIGJ5IHRoZSBHQVRIRVIKKwkgKiBvcGNvZGUuCisJICoKKwkgKiBOZXdlciBn ZW5lcmF0aW9ucyBvZiBUZWdyYSAoVGVncmExODYgYW5kIGxhdGVyKSBzdXBwb3J0IGEgd2lkZQor CSAqIHZhcmlhbnQgb2YgdGhlIEdBVEhFUiBvcGNvZGUgdGhhdCBhbGxvd3MgYWRkcmVzc2luZyBt b3JlIGJpdHMuCisJICovCisJaWYgKCFkb21haW4gJiYgIWhvc3QtPmluZm8tPmhhc193aWRlX2dh dGhlcikKKwkJbWFzayA9IERNQV9CSVRfTUFTSygzMik7CisKKwllcnIgPSBkbWFfY29lcmNlX21h c2tfYW5kX2NvaGVyZW50KGhvc3QtPmRldiwgbWFzayk7CisJaWYgKGVyciA8IDApIHsKKwkJZGV2 X2Vycihob3N0LT5kZXYsICJmYWlsZWQgdG8gc2V0IERNQSBtYXNrOiAlZFxuIiwgZXJyKTsKKwkJ cmV0dXJuIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaG9zdDF4X2lv bW11X2V4aXQoc3RydWN0IGhvc3QxeCAqaG9zdCkKK3sKKwlpZiAoaG9zdC0+ZG9tYWluKSB7CisJ CXB1dF9pb3ZhX2RvbWFpbigmaG9zdC0+aW92YSk7CisJCWlvbW11X2RldGFjaF9ncm91cChob3N0 LT5kb21haW4sIGhvc3QtPmdyb3VwKTsKKworCQlpb21tdV9kb21haW5fZnJlZShob3N0LT5kb21h aW4pOworCQlob3N0LT5kb21haW4gPSBOVUxMOworCisJCWlvdmFfY2FjaGVfcHV0KCk7CisKKwkJ aW9tbXVfZ3JvdXBfcHV0KGhvc3QtPmdyb3VwKTsKKwkJaG9zdC0+Z3JvdXAgPSBOVUxMOworCX0K K30KKwogc3RhdGljIGludCBob3N0MXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIHsKIAlzdHJ1Y3QgaG9zdDF4ICpob3N0OwpAQCAtMjQ4LDggKzM2NSw2IEBAIHN0YXRpYyBp bnQgaG9zdDF4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaG9zdC0+ZGV2 LT5kbWFfcGFybXMgPSAmaG9zdC0+ZG1hX3Bhcm1zOwogCWRtYV9zZXRfbWF4X3NlZ19zaXplKGhv c3QtPmRldiwgVUlOVF9NQVgpOwogCi0JZG1hX3NldF9tYXNrX2FuZF9jb2hlcmVudChob3N0LT5k ZXYsIGhvc3QtPmluZm8tPmRtYV9tYXNrKTsKLQogCWlmIChob3N0LT5pbmZvLT5pbml0KSB7CiAJ CWVyciA9IGhvc3QtPmluZm8tPmluaXQoaG9zdCk7CiAJCWlmIChlcnIpCkBAIC0yNzMsODIgKzM4 OCw0MSBAQCBzdGF0aWMgaW50IGhvc3QxeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCQlyZXR1cm4gZXJyOwogCX0KIAotCWlmIChJU19FTkFCTEVEKENPTkZJR19URUdSQV9I T1NUMVhfRklSRVdBTEwpKQotCQlnb3RvIHNraXBfaW9tbXU7Ci0KLQlpZiAoaW9tbXVfZ2V0X2Rv bWFpbl9mb3JfZGV2KCZwZGV2LT5kZXYpKQotCQlnb3RvIHNraXBfaW9tbXU7Ci0KLQlob3N0LT5n cm91cCA9IGlvbW11X2dyb3VwX2dldCgmcGRldi0+ZGV2KTsKLQlpZiAoaG9zdC0+Z3JvdXApIHsK LQkJc3RydWN0IGlvbW11X2RvbWFpbl9nZW9tZXRyeSAqZ2VvbWV0cnk7Ci0JCXU2NCBtYXNrID0g ZG1hX2dldF9tYXNrKGhvc3QtPmRldik7Ci0JCWRtYV9hZGRyX3Qgc3RhcnQsIGVuZDsKLQkJdW5z aWduZWQgbG9uZyBvcmRlcjsKLQotCQllcnIgPSBpb3ZhX2NhY2hlX2dldCgpOwotCQlpZiAoZXJy IDwgMCkKLQkJCWdvdG8gcHV0X2dyb3VwOwotCi0JCWhvc3QtPmRvbWFpbiA9IGlvbW11X2RvbWFp bl9hbGxvYygmcGxhdGZvcm1fYnVzX3R5cGUpOwotCQlpZiAoIWhvc3QtPmRvbWFpbikgewotCQkJ ZXJyID0gLUVOT01FTTsKLQkJCWdvdG8gcHV0X2NhY2hlOwotCQl9Ci0KLQkJZXJyID0gaW9tbXVf YXR0YWNoX2dyb3VwKGhvc3QtPmRvbWFpbiwgaG9zdC0+Z3JvdXApOwotCQlpZiAoZXJyKSB7Ci0J CQlpZiAoZXJyID09IC1FTk9ERVYpIHsKLQkJCQlpb21tdV9kb21haW5fZnJlZShob3N0LT5kb21h aW4pOwotCQkJCWhvc3QtPmRvbWFpbiA9IE5VTEw7Ci0JCQkJaW92YV9jYWNoZV9wdXQoKTsKLQkJ CQlpb21tdV9ncm91cF9wdXQoaG9zdC0+Z3JvdXApOwotCQkJCWhvc3QtPmdyb3VwID0gTlVMTDsK LQkJCQlnb3RvIHNraXBfaW9tbXU7Ci0JCQl9Ci0KLQkJCWdvdG8gZmFpbF9mcmVlX2RvbWFpbjsK LQkJfQotCi0JCWdlb21ldHJ5ID0gJmhvc3QtPmRvbWFpbi0+Z2VvbWV0cnk7Ci0JCXN0YXJ0ID0g Z2VvbWV0cnktPmFwZXJ0dXJlX3N0YXJ0ICYgbWFzazsKLQkJZW5kID0gZ2VvbWV0cnktPmFwZXJ0 dXJlX2VuZCAmIG1hc2s7Ci0KLQkJb3JkZXIgPSBfX2Zmcyhob3N0LT5kb21haW4tPnBnc2l6ZV9i aXRtYXApOwotCQlpbml0X2lvdmFfZG9tYWluKCZob3N0LT5pb3ZhLCAxVUwgPDwgb3JkZXIsIHN0 YXJ0ID4+IG9yZGVyKTsKLQkJaG9zdC0+aW92YV9lbmQgPSBlbmQ7CisJZXJyID0gaG9zdDF4X2lv bW11X2luaXQoaG9zdCk7CisJaWYgKGVyciA8IDApIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAi ZmFpbGVkIHRvIHNldHVwIElPTU1VOiAlZFxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKIAl9CiAK LXNraXBfaW9tbXU6CiAJZXJyID0gaG9zdDF4X2NoYW5uZWxfbGlzdF9pbml0KCZob3N0LT5jaGFu bmVsX2xpc3QsCiAJCQkJICAgICAgIGhvc3QtPmluZm8tPm5iX2NoYW5uZWxzKTsKIAlpZiAoZXJy KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIGNoYW5uZWwg bGlzdFxuIik7Ci0JCWdvdG8gZmFpbF9kZXRhY2hfZGV2aWNlOworCQlnb3RvIGlvbW11X2V4aXQ7 CiAJfQogCiAJZXJyID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhvc3QtPmNsayk7CiAJaWYgKGVyciA8 IDApIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBjbG9ja1xuIik7 Ci0JCWdvdG8gZmFpbF9mcmVlX2NoYW5uZWxzOworCQlnb3RvIGZyZWVfY2hhbm5lbHM7CiAJfQog CiAJZXJyID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChob3N0LT5yc3QpOwogCWlmIChlcnIgPCAw KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBkZWFzc2VydCByZXNldDogJWRc biIsIGVycik7Ci0JCWdvdG8gZmFpbF91bnByZXBhcmVfZGlzYWJsZTsKKwkJZ290byB1bnByZXBh cmVfZGlzYWJsZTsKIAl9CiAKIAllcnIgPSBob3N0MXhfc3luY3B0X2luaXQoaG9zdCk7CiAJaWYg KGVycikgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBzeW5j cHRzXG4iKTsKLQkJZ290byBmYWlsX3Jlc2V0X2Fzc2VydDsKKwkJZ290byByZXNldF9hc3NlcnQ7 CiAJfQogCiAJZXJyID0gaG9zdDF4X2ludHJfaW5pdChob3N0LCBzeW5jcHRfaXJxKTsKIAlpZiAo ZXJyKSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIGludGVy cnVwdHNcbiIpOwotCQlnb3RvIGZhaWxfZGVpbml0X3N5bmNwdDsKKwkJZ290byBkZWluaXRfc3lu Y3B0OwogCX0KIAogCWhvc3QxeF9kZWJ1Z19pbml0KGhvc3QpOwpAQCAtMzU4LDMzICs0MzIsMjIg QEAgc3RhdGljIGludCBob3N0MXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IAogCWVyciA9IGhvc3QxeF9yZWdpc3Rlcihob3N0KTsKIAlpZiAoZXJyIDwgMCkKLQkJZ290byBm YWlsX2RlaW5pdF9pbnRyOworCQlnb3RvIGRlaW5pdF9pbnRyOwogCiAJcmV0dXJuIDA7CiAKLWZh aWxfZGVpbml0X2ludHI6CitkZWluaXRfaW50cjoKIAlob3N0MXhfaW50cl9kZWluaXQoaG9zdCk7 Ci1mYWlsX2RlaW5pdF9zeW5jcHQ6CitkZWluaXRfc3luY3B0OgogCWhvc3QxeF9zeW5jcHRfZGVp bml0KGhvc3QpOwotZmFpbF9yZXNldF9hc3NlcnQ6CityZXNldF9hc3NlcnQ6CiAJcmVzZXRfY29u dHJvbF9hc3NlcnQoaG9zdC0+cnN0KTsKLWZhaWxfdW5wcmVwYXJlX2Rpc2FibGU6Cit1bnByZXBh cmVfZGlzYWJsZToKIAljbGtfZGlzYWJsZV91bnByZXBhcmUoaG9zdC0+Y2xrKTsKLWZhaWxfZnJl ZV9jaGFubmVsczoKK2ZyZWVfY2hhbm5lbHM6CiAJaG9zdDF4X2NoYW5uZWxfbGlzdF9mcmVlKCZo b3N0LT5jaGFubmVsX2xpc3QpOwotZmFpbF9kZXRhY2hfZGV2aWNlOgotCWlmIChob3N0LT5ncm91 cCAmJiBob3N0LT5kb21haW4pIHsKLQkJcHV0X2lvdmFfZG9tYWluKCZob3N0LT5pb3ZhKTsKLQkJ aW9tbXVfZGV0YWNoX2dyb3VwKGhvc3QtPmRvbWFpbiwgaG9zdC0+Z3JvdXApOwotCX0KLWZhaWxf ZnJlZV9kb21haW46Ci0JaWYgKGhvc3QtPmRvbWFpbikKLQkJaW9tbXVfZG9tYWluX2ZyZWUoaG9z dC0+ZG9tYWluKTsKLXB1dF9jYWNoZToKLQlpZiAoaG9zdC0+Z3JvdXApCi0JCWlvdmFfY2FjaGVf cHV0KCk7Ci1wdXRfZ3JvdXA6Ci0JaW9tbXVfZ3JvdXBfcHV0KGhvc3QtPmdyb3VwKTsKK2lvbW11 X2V4aXQ6CisJaG9zdDF4X2lvbW11X2V4aXQoaG9zdCk7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAt Mzk5LDE0ICs0NjIsNyBAQCBzdGF0aWMgaW50IGhvc3QxeF9yZW1vdmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAlob3N0MXhfc3luY3B0X2RlaW5pdChob3N0KTsKIAlyZXNldF9jb250 cm9sX2Fzc2VydChob3N0LT5yc3QpOwogCWNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0LT5jbGsp OwotCi0JaWYgKGhvc3QtPmRvbWFpbikgewotCQlwdXRfaW92YV9kb21haW4oJmhvc3QtPmlvdmEp OwotCQlpb21tdV9kZXRhY2hfZ3JvdXAoaG9zdC0+ZG9tYWluLCBob3N0LT5ncm91cCk7Ci0JCWlv bW11X2RvbWFpbl9mcmVlKGhvc3QtPmRvbWFpbik7Ci0JCWlvdmFfY2FjaGVfcHV0KCk7Ci0JCWlv bW11X2dyb3VwX3B1dChob3N0LT5ncm91cCk7Ci0JfQorCWhvc3QxeF9pb21tdV9leGl0KGhvc3Qp OwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2Lmgg Yi9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2LmgKaW5kZXggYWJhZmRlN2M2NjVlLi5mNzgxYTliMGYz OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9kZXYuaAorKysgYi9kcml2ZXJzL2dw dS9ob3N0MXgvZGV2LmgKQEAgLTk3LDYgKzk3LDcgQEAgc3RydWN0IGhvc3QxeF9pbmZvIHsKIAlp bnQgKCppbml0KShzdHJ1Y3QgaG9zdDF4ICpob3N0MXgpOyAvKiBpbml0aWFsaXplIHBlciBTb0Mg b3BzICovCiAJdW5zaWduZWQgaW50IHN5bmNfb2Zmc2V0OyAvKiBvZmZzZXQgb2Ygc3luY3BvaW50 IHJlZ2lzdGVycyAqLwogCXU2NCBkbWFfbWFzazsgLyogbWFzayBvZiBhZGRyZXNzYWJsZSBtZW1v cnkgKi8KKwlib29sIGhhc193aWRlX2dhdGhlcjsgLyogc3VwcG9ydHMgR0FUSEVSX1cgb3Bjb2Rl ICovCiAJYm9vbCBoYXNfaHlwZXJ2aXNvcjsgLyogaGFzIGh5cGVydmlzb3IgcmVnaXN0ZXJzICov CiAJdW5zaWduZWQgaW50IG51bV9zaWRfZW50cmllczsKIAljb25zdCBzdHJ1Y3QgaG9zdDF4X3Np ZF9lbnRyeSAqc2lkX3RhYmxlOwotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWw=