From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sibi S Subject: [PATCH 4/5] drm/msm/dsi: implement 6G v2.0+ DSI command broadcast Date: Mon, 12 Mar 2018 18:53:13 +0530 Message-ID: <1520860994-23334-5-git-send-email-sibis@codeaurora.org> References: <1520860994-23334-1-git-send-email-sibis@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520860994-23334-1-git-send-email-sibis@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: architt@codeaurora.org, robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Sibi S , dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KCkFkZCBjb21tYW5k IGJyb2FkY2FzdCBzdXBwb3J0IGZvciBEU0kgNkcgdjIuMCsgY29udHJvbGxlcgpvbiBTRE04NDUK ClNpZ25lZC1vZmYtYnk6IFNpYmkgUyA8c2liaXNAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kc2kvZHNpLmggICAgICAgICB8ICA1ICsrKwogZHJpdmVycy9ncHUvZHJt L21zbS9kc2kvZHNpX2NmZy5jICAgICB8IDE0ICsrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vbXNt L2RzaS9kc2lfaG9zdC5jICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMgfCA2NiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9k c2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oCmluZGV4IGRmYTA0OWQuLjIyMzQy YzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2kuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2kuaApAQCAtOTYsNyArOTYsOSBAQCBzdHJ1Y3QgbXNtX2Rz aSB7CiBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqbXNtX2RzaV9tYW5hZ2VyX2Nvbm5lY3Rvcl9pbml0 KHU4IGlkKTsKIHN0cnVjdCBkcm1fY29ubmVjdG9yICptc21fZHNpX21hbmFnZXJfZXh0X2JyaWRn ZV9pbml0KHU4IGlkKTsKIGludCBtc21fZHNpX21hbmFnZXJfY21kX3hmZXIoaW50IGlkLCBjb25z dCBzdHJ1Y3QgbWlwaV9kc2lfbXNnICptc2cpOworaW50IG1zbV9kc2lfbWFuYWdlcl9jbWRfeGZl cl82Z192MihpbnQgaWQsIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1zZyk7CiBib29sIG1z bV9kc2lfbWFuYWdlcl9jbWRfeGZlcl90cmlnZ2VyKGludCBpZCwgdTMyIGRtYV9iYXNlLCB1MzIg bGVuKTsKK2Jvb2wgbXNtX2RzaV9tYW5hZ2VyX2NtZF94ZmVyX3RyaWdnZXJfNmdfdjIoaW50IGlk LCB1MzIgZG1hX2Jhc2UsIHUzMiBsZW4pOwogdm9pZCBtc21fZHNpX21hbmFnZXJfYXR0YWNoX2Rz aV9kZXZpY2UoaW50IGlkLCB1MzIgZGV2aWNlX2ZsYWdzKTsKIGludCBtc21fZHNpX21hbmFnZXJf cmVnaXN0ZXIoc3RydWN0IG1zbV9kc2kgKm1zbV9kc2kpOwogdm9pZCBtc21fZHNpX21hbmFnZXJf dW5yZWdpc3RlcihzdHJ1Y3QgbXNtX2RzaSAqbXNtX2RzaSk7CkBAIC0xNTIsNiArMTU0LDkgQEAg c3RhdGljIGlubGluZSBpbnQgbXNtX2RzaV9wbGxfc2V0X3VzZWNhc2Uoc3RydWN0IG1zbV9kc2lf cGxsICpwbGwsCiBzdHJ1Y3QgbXNtX2RzaV9ob3N0OwogaW50IG1zbV9kc2lfaG9zdF94ZmVyX3By ZXBhcmUoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJCQkJCWNvbnN0IHN0cnVjdCBtaXBp X2RzaV9tc2cgKm1zZyk7CitpbnQgbXNtX2RzaV9ob3N0X3hmZXJfcHJlcGFyZV82Z192MihzdHJ1 Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKKwkJCQkJY29uc3Qgc3RydWN0IG1pcGlfZHNpX21zZyAq bXNnLAorCQkJCQlib29sIGJyb2FkY2FzdCwgYm9vbCBtYXN0ZXIpOwogdm9pZCBtc21fZHNpX2hv c3RfeGZlcl9yZXN0b3JlKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCQkJCQljb25zdCBz dHJ1Y3QgbWlwaV9kc2lfbXNnICptc2cpOwogaW50IG1zbV9kc2lfaG9zdF9jbWRfdHgoc3RydWN0 IG1pcGlfZHNpX2hvc3QgKmhvc3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rz aS9kc2lfY2ZnLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfY2ZnLmMKaW5kZXggZGM1 MWFhYS4uZGNkZmIxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2Nm Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9jZmcuYwpAQCAtMTU3LDYgKzE1 NywxOCBAQAogCS5kbWFfYmFzZV9nZXQgPSBkc2lfZG1hX2Jhc2VfZ2V0XzZnLAogCS5jYWxjX2Ns a19yYXRlID0gZHNpX2NhbGNfY2xrX3JhdGVfNmcsCiB9OworCitjb25zdCBzdGF0aWMgc3RydWN0 IG1zbV9kc2lfaG9zdF9jZmdfb3BzIG1zbV9kc2lfNmdfdjJfaG9zdF9vcHMgPSB7CisJLmxpbmtf Y2xrX2VuYWJsZSA9IGRzaV9saW5rX2Nsa19lbmFibGVfNmcsCisJLmxpbmtfY2xrX2Rpc2FibGUg PSBkc2lfbGlua19jbGtfZGlzYWJsZV82ZywKKwkuY2xrX2luaXRfdmVyID0gZHNpX2Nsa19pbml0 XzZnX3YyLAorCS50eF9idWZfYWxsb2MgPSBkc2lfdHhfYnVmX2FsbG9jXzZnLAorCS50eF9idWZf Z2V0ID0gZHNpX3R4X2J1Zl9nZXRfNmcsCisJLnR4X2J1Zl9wdXQgPSBkc2lfdHhfYnVmX3B1dF82 ZywKKwkuZG1hX2Jhc2VfZ2V0ID0gZHNpX2RtYV9iYXNlX2dldF82ZywKKwkuY2FsY19jbGtfcmF0 ZSA9IGRzaV9jYWxjX2Nsa19yYXRlXzZnLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBtc21f ZHNpX2NmZ19oYW5kbGVyIGRzaV9jZmdfaGFuZGxlcnNbXSA9IHsKIAl7TVNNX0RTSV9WRVJfTUFK T1JfVjIsIE1TTV9EU0lfVjJfVkVSX01JTk9SXzgwNjQsCiAJCSZhcHE4MDY0X2RzaV9jZmcsICZt c21fZHNpX3YyX2hvc3Rfb3BzfSwKQEAgLTE3NSw3ICsxODcsNyBAQAogCXtNU01fRFNJX1ZFUl9N QUpPUl82RywgTVNNX0RTSV82R19WRVJfTUlOT1JfVjFfNF8xLAogCQkmbXNtODk5Nl9kc2lfY2Zn LCAmbXNtX2RzaV82Z19ob3N0X29wc30sCiAJe01TTV9EU0lfVkVSX01BSk9SXzZHLCBNU01fRFNJ XzZHX1ZFUl9NSU5PUl9WMl8yXzEsCi0JCSZzZG04NDVfZHNpX2NmZywgJm1zbV9kc2lfNmdfaG9z dF9vcHN9LAorCQkmc2RtODQ1X2RzaV9jZmcsICZtc21fZHNpXzZnX3YyX2hvc3Rfb3BzfSwKIH07 CiAKIGNvbnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICptc21fZHNpX2NmZ19nZXQodTMy IG1ham9yLCB1MzIgbWlub3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9k c2lfaG9zdC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hvc3QuYwppbmRleCBiNzU1 YjY5Li5iZDYxY2FkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9z dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMKQEAgLTEyNTEsOSAr MTI1MSwxNCBAQCBzdGF0aWMgaW50IGRzaV9jbWRfZG1hX3R4KHN0cnVjdCBtc21fZHNpX2hvc3Qg Km1zbV9ob3N0LCBpbnQgbGVuKQogCXJlaW5pdF9jb21wbGV0aW9uKCZtc21faG9zdC0+ZG1hX2Nv bXApOwogCiAJZHNpX3dhaXQ0dmlkZW9fZW5nX2J1c3kobXNtX2hvc3QpOworCWlmICgoY2ZnX2hu ZC0+bWFqb3IgPT0gTVNNX0RTSV9WRVJfTUFKT1JfNkcpICYmCisJCQkoY2ZnX2huZC0+bWlub3Ig PCBNU01fRFNJXzZHX1ZFUl9NSU5PUl9WMl8yXzEpKQorCQl0cmlnZ2VyZWQgPSBtc21fZHNpX21h bmFnZXJfY21kX3hmZXJfdHJpZ2dlcihtc21faG9zdC0+aWQsCisJCQkJCQkJCWRtYV9iYXNlLCBs ZW4pOworCWVsc2UKKwkJdHJpZ2dlcmVkID0gbXNtX2RzaV9tYW5hZ2VyX2NtZF94ZmVyX3RyaWdn ZXJfNmdfdjIoCisJCQkJCQkgIG1zbV9ob3N0LT5pZCwgZG1hX2Jhc2UsIGxlbik7CiAKLQl0cmln Z2VyZWQgPSBtc21fZHNpX21hbmFnZXJfY21kX3hmZXJfdHJpZ2dlcigKLQkJCQkJCW1zbV9ob3N0 LT5pZCwgZG1hX2Jhc2UsIGxlbik7CiAJaWYgKHRyaWdnZXJlZCkgewogCQlyZXQgPSB3YWl0X2Zv cl9jb21wbGV0aW9uX3RpbWVvdXQoJm1zbV9ob3N0LT5kbWFfY29tcCwKIAkJCQkJbXNlY3NfdG9f amlmZmllcygyMDApKTsKQEAgLTE2MDIsMTMgKzE2MDcsMjEgQEAgc3RhdGljIHNzaXplX3QgZHNp X2hvc3RfdHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJCQkJCWNvbnN0IHN0 cnVjdCBtaXBpX2RzaV9tc2cgKm1zZykKIHsKIAlzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9z dCA9IHRvX21zbV9kc2lfaG9zdChob3N0KTsKKwljb25zdCBzdHJ1Y3QgbXNtX2RzaV9jZmdfaGFu ZGxlciAqY2ZnX2huZCA9IG1zbV9ob3N0LT5jZmdfaG5kOwogCWludCByZXQ7CiAKIAlpZiAoIW1z ZyB8fCAhbXNtX2hvc3QtPnBvd2VyX29uKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCW11dGV4X2xv Y2soJm1zbV9ob3N0LT5jbWRfbXV0ZXgpOwotCXJldCA9IG1zbV9kc2lfbWFuYWdlcl9jbWRfeGZl cihtc21faG9zdC0+aWQsIG1zZyk7CisKKwlpZiAoKChjZmdfaG5kLT5tYWpvciA9PSBNU01fRFNJ X1ZFUl9NQUpPUl82RykgJiYKKwkJCShjZmdfaG5kLT5taW5vciA8IE1TTV9EU0lfNkdfVkVSX01J Tk9SX1YyXzJfMSkpIHx8CisJCQkoY2ZnX2huZC0+bWFqb3IgPT0gTVNNX0RTSV9WRVJfTUFKT1Jf VjIpKQorCQlyZXQgPSBtc21fZHNpX21hbmFnZXJfY21kX3hmZXIobXNtX2hvc3QtPmlkLCBtc2cp OworCWVsc2UKKwkJcmV0ID0gbXNtX2RzaV9tYW5hZ2VyX2NtZF94ZmVyXzZnX3YyKG1zbV9ob3N0 LT5pZCwgbXNnKTsKKwogCW11dGV4X3VubG9jaygmbXNtX2hvc3QtPmNtZF9tdXRleCk7CiAKIAly ZXR1cm4gcmV0OwpAQCAtMTk5Miw2ICsyMDA1LDQ5IEBAIGludCBtc21fZHNpX2hvc3RfeGZlcl9w cmVwYXJlKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCXJldHVybiAwOwogfQogCitzdGF0 aWMgdm9pZCBkc2lfaG9zdF9wcmVwYXJlX2Jyb2FkY2FzdF82Z192MihzdHJ1Y3QgbXNtX2RzaV9o b3N0ICptc21faG9zdCwKKwkJCQkJICAgICBib29sIGJyb2FkY2FzdCwgYm9vbCBtYXN0ZXIpCit7 CisJdTMyIHZhbCA9IGRzaV9yZWFkKG1zbV9ob3N0LCBSRUdfRFNJX0NNRF9ETUFfQ1RSTCk7CisK KwlpZiAoYnJvYWRjYXN0KQorCQl2YWwgfD0gQklUKDMxKTsKKwllbHNlCisJCXZhbCAmPSB+QklU KDMxKTsKKworCWlmIChtYXN0ZXIpCisJCXZhbCB8PSBCSVQoMzApOworCWVsc2UKKwkJdmFsICY9 IH5CSVQoMzApOworCisJZHNpX3dyaXRlKG1zbV9ob3N0LCBSRUdfRFNJX0NNRF9ETUFfQ1RSTCwg dmFsKTsKK30KKworaW50IG1zbV9kc2lfaG9zdF94ZmVyX3ByZXBhcmVfNmdfdjIoc3RydWN0IG1p cGlfZHNpX2hvc3QgKmhvc3QsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1z ZywKKwkJCQkgICAgYm9vbCBicm9hZGNhc3QsIGJvb2wgbWFzdGVyKQoreworCXN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0ID0gdG9fbXNtX2RzaV9ob3N0KGhvc3QpOworCisJLyogVE9ETzog dm90ZSBmb3IgYnVzIGJhbmR3aWR0aCAqLworCisJaWYgKCEobXNnLT5mbGFncyAmIE1JUElfRFNJ X01TR19VU0VfTFBNKSkKKwkJZHNpX3NldF90eF9wb3dlcl9tb2RlKDAsIG1zbV9ob3N0KTsKKwor CWRzaV9ob3N0X3ByZXBhcmVfYnJvYWRjYXN0XzZnX3YyKG1zbV9ob3N0LCBicm9hZGNhc3QsIG1h c3Rlcik7CisKKwltc21faG9zdC0+ZG1hX2NtZF9jdHJsX3Jlc3RvcmUgPSBkc2lfcmVhZChtc21f aG9zdCwgUkVHX0RTSV9DVFJMKTsKKwlkc2lfd3JpdGUobXNtX2hvc3QsIFJFR19EU0lfQ1RSTCwK KwkJbXNtX2hvc3QtPmRtYV9jbWRfY3RybF9yZXN0b3JlIHwKKwkJRFNJX0NUUkxfQ01EX01PREVf RU4gfAorCQlEU0lfQ1RSTF9FTkFCTEUpOworCisJaWYgKChicm9hZGNhc3QgJiYgbWFzdGVyKSB8 fCAhYnJvYWRjYXN0KQorCQlkc2lfaW50cl9jdHJsKG1zbV9ob3N0LCBEU0lfSVJRX01BU0tfQ01E X0RNQV9ET05FLCAxKTsKKworCXJldHVybiAwOworfQorCiB2b2lkIG1zbV9kc2lfaG9zdF94ZmVy X3Jlc3RvcmUoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJCQkJY29uc3Qgc3RydWN0IG1p cGlfZHNpX21zZyAqbXNnKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kv ZHNpX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMKaW5k ZXggNGNiMWNiNi4uMzkzZTNmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kv ZHNpX21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5j CkBAIC04MTIsNiArODEyLDU2IEBAIGludCBtc21fZHNpX21hbmFnZXJfY21kX3hmZXIoaW50IGlk LCBjb25zdCBzdHJ1Y3QgbWlwaV9kc2lfbXNnICptc2cpCiAJcmV0dXJuIHJldDsKIH0KIAoraW50 IG1zbV9kc2lfbWFuYWdlcl9jbWRfeGZlcl82Z192MihpbnQgaWQsIGNvbnN0IHN0cnVjdCBtaXBp X2RzaV9tc2cgKm1zZykKK3sKKwlzdHJ1Y3QgbXNtX2RzaSAqbXNtX2RzaSA9IGRzaV9tZ3JfZ2V0 X2RzaShpZCk7CisJc3RydWN0IG1zbV9kc2kgKm1zbV9kc2kwID0gZHNpX21ncl9nZXRfZHNpKERT SV8wKTsKKwlzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCA9IG1zbV9kc2ktPmhvc3Q7CisJYm9v bCBpc19yZWFkID0gKG1zZy0+cnhfYnVmICYmIG1zZy0+cnhfbGVuKTsKKwlib29sIG5lZWRfc3lu YyA9IChJU19TWU5DX05FRURFRCgpICYmICFpc19yZWFkKTsKKwlpbnQgcmV0OworCisJaWYgKCFt c2ctPnR4X2J1ZiB8fCAhbXNnLT50eF9sZW4pCisJCXJldHVybiAwOworCisJaWYgKG5lZWRfc3lu YyAmJiAoaWQgPT0gRFNJXzApKQorCQlyZXR1cm4gaXNfcmVhZCA/IG1zZy0+cnhfbGVuIDogbXNn LT50eF9sZW47CisKKwlpZiAobmVlZF9zeW5jICYmIG1zbV9kc2kwKSB7CisJCXJldCA9IG1zbV9k c2lfaG9zdF94ZmVyX3ByZXBhcmVfNmdfdjIobXNtX2RzaTAtPmhvc3QsIG1zZywKKwkJCQkJCSAg ICAgIHRydWUsIHRydWUpOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8g cHJlcGFyZSBub24tdHJpZ2dlciBob3N0LCAlZFxuIiwKKwkJCQlfX2Z1bmNfXywgcmV0KTsKKwkJ CXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlyZXQgPSBtc21fZHNpX2hvc3RfeGZlcl9wcmVwYXJl XzZnX3YyKG1zbV9kc2ktPmhvc3QsIG1zZywKKwkJCQkJICAgICAgbmVlZF9zeW5jID8gdHJ1ZSA6 IGZhbHNlLAorCQkJCQkgICAgICBmYWxzZSk7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIiVzOiBm YWlsZWQgdG8gcHJlcGFyZSBob3N0LCAlZFxuIiwKKwkJCV9fZnVuY19fLCByZXQpOworCQlyZXR1 cm4gcmV0OworCX0KKworCWlmIChuZWVkX3N5bmMgJiYgbXNtX2RzaTApIHsKKwkJcmV0ID0gaXNf cmVhZCA/IG1zbV9kc2lfaG9zdF9jbWRfcngobXNtX2RzaTAtPmhvc3QsIG1zZykgOgorCQkJCW1z bV9kc2lfaG9zdF9jbWRfdHgobXNtX2RzaTAtPmhvc3QsIG1zZyk7CisJfSBlbHNlIHsKKwkJcmV0 ID0gaXNfcmVhZCA/IG1zbV9kc2lfaG9zdF9jbWRfcngobXNtX2RzaS0+aG9zdCwgbXNnKSA6CisJ CQkJbXNtX2RzaV9ob3N0X2NtZF90eChtc21fZHNpLT5ob3N0LCBtc2cpOworCX0KKworCW1zbV9k c2lfaG9zdF94ZmVyX3Jlc3RvcmUoaG9zdCwgbXNnKTsKKworCWlmIChuZWVkX3N5bmMgJiYgbXNt X2RzaTApCisJCW1zbV9kc2lfaG9zdF94ZmVyX3Jlc3RvcmUobXNtX2RzaTAtPmhvc3QsIG1zZyk7 CisKKwlyZXR1cm4gcmV0OworfQorCiBib29sIG1zbV9kc2lfbWFuYWdlcl9jbWRfeGZlcl90cmln Z2VyKGludCBpZCwgdTMyIGRtYV9iYXNlLCB1MzIgbGVuKQogewogCXN0cnVjdCBtc21fZHNpICpt c21fZHNpID0gZHNpX21ncl9nZXRfZHNpKGlkKTsKQEAgLTgyOSw2ICs4NzksMjIgQEAgYm9vbCBt c21fZHNpX21hbmFnZXJfY21kX3hmZXJfdHJpZ2dlcihpbnQgaWQsIHUzMiBkbWFfYmFzZSwgdTMy IGxlbikKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBtc21fZHNpX21hbmFnZXJfY21kX3hmZXJf dHJpZ2dlcl82Z192MihpbnQgaWQsIHUzMiBkbWFfYmFzZSwgdTMyIGxlbikKK3sKKwlzdHJ1Y3Qg bXNtX2RzaSAqbXNtX2RzaTEgPSBkc2lfbWdyX2dldF9kc2koRFNJXzEpOworCXN0cnVjdCBtc21f ZHNpICptc21fZHNpMCA9IGRzaV9tZ3JfZ2V0X2RzaShEU0lfMCk7CisKKwlpZiAoSVNfU1lOQ19O RUVERUQoKSAmJiAoaWQgPT0gRFNJXzEpKQorCQlyZXR1cm4gZmFsc2U7CisKKwltc21fZHNpX2hv c3RfY21kX3hmZXJfY29tbWl0KG1zbV9kc2kxLT5ob3N0LCBkbWFfYmFzZSwgbGVuKTsKKworCWlm IChJU19TWU5DX05FRURFRCgpICYmIG1zbV9kc2kwKQorCQltc21fZHNpX2hvc3RfY21kX3hmZXJf Y29tbWl0KG1zbV9kc2kwLT5ob3N0LCBkbWFfYmFzZSwgbGVuKTsKKworCXJldHVybiB0cnVlOwor fQorCiB2b2lkIG1zbV9kc2lfbWFuYWdlcl9hdHRhY2hfZHNpX2RldmljZShpbnQgaWQsIHUzMiBk ZXZpY2VfZmxhZ3MpCiB7CiAJc3RydWN0IG1zbV9kc2kgKm1zbV9kc2kgPSBkc2lfbWdyX2dldF9k c2koaWQpOwotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVt YmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9y YXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==