From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King Subject: [PATCH v3 6/7] drm/i2c: tda998x: add CEC support Date: Mon, 09 Apr 2018 13:16:38 +0100 Message-ID: References: <20180409121529.GA31403@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA5D06E1A5 for ; Mon, 9 Apr 2018 12:22:15 +0000 (UTC) In-Reply-To: <20180409121529.GA31403@n2100.armlinux.org.uk> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil Cc: David Airlie , devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhlIFREQTk5OHggaXMgYSBIRE1JIHRyYW5zbWl0dGVyIHdpdGggYSBUREE5OTUwIENFQyBlbmdp bmUgaW50ZWdyYXRlZApvbnRvIHRoZSBzYW1lIGRpZS4gIEFkZCBzdXBwb3J0IGZvciB0aGUgVERB OTk1MCBDRUMgZW5naW5lIHRvIHRoZQpUREE5OTh4IGRyaXZlci4KClNpZ25lZC1vZmYtYnk6IFJ1 c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2kyYy9LY29uZmlnICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4 eF9kcnYuYyB8IDE5NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBm aWxlcyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL0tj b25maWcKaW5kZXggM2EyMzJmNWZmMGExLi42NWQzYWNiNjFjMDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pMmMvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL0tjb25maWcK QEAgLTIyLDYgKzIyLDcgQEAgY29uZmlnIERSTV9JMkNfU0lMMTY0CiBjb25maWcgRFJNX0kyQ19O WFBfVERBOTk4WAogCXRyaXN0YXRlICJOWFAgU2VtaWNvbmR1Y3RvcnMgVERBOTk4WCBIRE1JIGVu Y29kZXIiCiAJZGVmYXVsdCBtIGlmIERSTV9USUxDREMKKwlzZWxlY3QgQ0VDX0NPUkUgaWYgQ0VD X05PVElGSUVSCiAJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCiAJaGVscAog CSAgU3VwcG9ydCBmb3IgTlhQIFNlbWljb25kdWN0b3JzIFREQTk5OFggSERNSSBlbmNvZGVycy4K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYwppbmRleCAxNmUwNDM5Y2FkNDQuLmViOTkxNmJkODRh NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYwpAQCAtMTYsOCArMTYsMTAgQEAKICAqLwog CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25z dW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL3RkYTk5NTAuaD4KICNpbmNsdWRlIDxs aW51eC9pcnEuaD4KICNpbmNsdWRlIDxzb3VuZC9hc291bmRlZi5oPgogI2luY2x1ZGUgPHNvdW5k L2hkbWktY29kZWMuaD4KQEAgLTI5LDYgKzMxLDggQEAKICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+ CiAjaW5jbHVkZSA8ZHJtL2kyYy90ZGE5OTh4Lmg+CiAKKyNpbmNsdWRlIDxtZWRpYS9jZWMtbm90 aWZpZXIuaD4KKwogI2RlZmluZSBEQkcoZm10LCAuLi4pIERSTV9ERUJVRyhmbXQiXG4iLCAjI19f VkFfQVJHU19fKQogCiBzdHJ1Y3QgdGRhOTk4eF9hdWRpb19wb3J0IHsKQEAgLTU1LDYgKzU5LDcg QEAgc3RydWN0IHRkYTk5OHhfcHJpdiB7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYXVkaW9f cGRldjsKIAlzdHJ1Y3QgbXV0ZXggYXVkaW9fbXV0ZXg7CiAKKwlzdHJ1Y3QgbXV0ZXggZWRpZF9t dXRleDsKIAl3YWl0X3F1ZXVlX2hlYWRfdCB3cV9lZGlkOwogCXZvbGF0aWxlIGludCB3cV9lZGlk X3dhaXQ7CiAKQEAgLTY3LDYgKzcyLDkgQEAgc3RydWN0IHRkYTk5OHhfcHJpdiB7CiAJc3RydWN0 IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwogCiAJc3RydWN0IHRkYTk5OHhfYXVkaW9fcG9ydCBh dWRpb19wb3J0WzJdOworCXN0cnVjdCB0ZGE5OTUwX2dsdWUgY2VjX2dsdWU7CisJc3RydWN0IGdw aW9fZGVzYyAqY2FsaWI7CisJc3RydWN0IGNlY19ub3RpZmllciAqY2VjX25vdGlmeTsKIH07CiAK ICNkZWZpbmUgY29ubl90b190ZGE5OTh4X3ByaXYoeCkgXApAQCAtMzQ1LDYgKzM1MywxMiBAQCBz dHJ1Y3QgdGRhOTk4eF9wcml2IHsKICNkZWZpbmUgUkVHX0NFQ19JTlRTVEFUVVMJICAweGVlCQkg ICAgICAvKiByZWFkICovCiAjIGRlZmluZSBDRUNfSU5UU1RBVFVTX0NFQwkgICgxIDw8IDApCiAj IGRlZmluZSBDRUNfSU5UU1RBVFVTX0hETUkJICAoMSA8PCAxKQorI2RlZmluZSBSRUdfQ0VDX0NB TF9YT1NDX0NUUkwxICAgIDB4ZjIKKyMgZGVmaW5lIENFQ19DQUxfWE9TQ19DVFJMMV9FTkFfQ0FM CUJJVCgwKQorI2RlZmluZSBSRUdfQ0VDX0RFU19GUkVRMiAgICAgICAgIDB4ZjUKKyMgZGVmaW5l IENFQ19ERVNfRlJFUTJfRElTX0FVVE9DQUwgQklUKDcpCisjZGVmaW5lIFJFR19DRUNfQ0xLICAg ICAgICAgICAgICAgMHhmNgorIyBkZWZpbmUgQ0VDX0NMS19GUk8gICAgICAgICAgICAgIDB4MTEK ICNkZWZpbmUgUkVHX0NFQ19GUk9fSU1fQ0xLX0NUUkwgICAweGZiICAgICAgICAgICAgICAgIC8q IHJlYWQvd3JpdGUgKi8KICMgZGVmaW5lIENFQ19GUk9fSU1fQ0xLX0NUUkxfR0hPU1RfRElTICgx IDw8IDcpCiAjIGRlZmluZSBDRUNfRlJPX0lNX0NMS19DVFJMX0VOQV9PVFAgICAoMSA8PCA2KQpA QCAtMzU5LDYgKzM3Myw3IEBAIHN0cnVjdCB0ZGE5OTh4X3ByaXYgewogIyBkZWZpbmUgQ0VDX1JY U0hQRExFVl9IUEQgICAgICAgICgxIDw8IDEpCiAKICNkZWZpbmUgUkVHX0NFQ19FTkFNT0RTICAg ICAgICAgICAweGZmICAgICAgICAgICAgICAgIC8qIHJlYWQvd3JpdGUgKi8KKyMgZGVmaW5lIENF Q19FTkFNT0RTX0VOX0NFQ19DTEsgICAoMSA8PCA3KQogIyBkZWZpbmUgQ0VDX0VOQU1PRFNfRElT X0ZSTyAgICAgICgxIDw8IDYpCiAjIGRlZmluZSBDRUNfRU5BTU9EU19ESVNfQ0NMSyAgICAgKDEg PDwgNSkKICMgZGVmaW5lIENFQ19FTkFNT0RTX0VOX1JYU0VOUyAgICAoMSA8PCAyKQpAQCAtNDE3 LDYgKzQzMiwxMTQgQEAgY2VjX3JlYWQoc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiwgdTggYWRk cikKIAlyZXR1cm4gdmFsOwogfQogCitzdGF0aWMgdm9pZCBjZWNfZW5hbW9kcyhzdHJ1Y3QgdGRh OTk4eF9wcml2ICpwcml2LCB1OCBtb2RzLCBib29sIGVuYWJsZSkKK3sKKwlpbnQgdmFsID0gY2Vj X3JlYWQocHJpdiwgUkVHX0NFQ19FTkFNT0RTKTsKKworCWlmICh2YWwgPCAwKQorCQlyZXR1cm47 CisKKwlpZiAoZW5hYmxlKQorCQl2YWwgfD0gbW9kczsKKwllbHNlCisJCXZhbCAmPSB+bW9kczsK KworCWNlY193cml0ZShwcml2LCBSRUdfQ0VDX0VOQU1PRFMsIHZhbCk7Cit9CisKK3N0YXRpYyB2 b2lkIHRkYTk5OHhfY2VjX3NldF9jYWxpYnJhdGlvbihzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2 LCBib29sIGVuYWJsZSkKK3sKKwlpZiAoZW5hYmxlKSB7CisJCXU4IHZhbDsKKworCQljZWNfd3Jp dGUocHJpdiwgMHhmMywgMHhjMCk7CisJCWNlY193cml0ZShwcml2LCAweGY0LCAweGQ0KTsKKwor CQkvKiBFbmFibGUgYXV0b21hdGljIGNhbGlicmF0aW9uIG1vZGUgKi8KKwkJdmFsID0gY2VjX3Jl YWQocHJpdiwgUkVHX0NFQ19ERVNfRlJFUTIpOworCQl2YWwgJj0gfkNFQ19ERVNfRlJFUTJfRElT X0FVVE9DQUw7CisJCWNlY193cml0ZShwcml2LCBSRUdfQ0VDX0RFU19GUkVRMiwgdmFsKTsKKwor CQkvKiBFbmFibGUgZnJlZSBydW5uaW5nIG9zY2lsbGF0b3IgKi8KKwkJY2VjX3dyaXRlKHByaXYs IFJFR19DRUNfQ0xLLCBDRUNfQ0xLX0ZSTyk7CisJCWNlY19lbmFtb2RzKHByaXYsIENFQ19FTkFN T0RTX0RJU19GUk8sIGZhbHNlKTsKKworCQljZWNfd3JpdGUocHJpdiwgUkVHX0NFQ19DQUxfWE9T Q19DVFJMMSwKKwkJCSAgQ0VDX0NBTF9YT1NDX0NUUkwxX0VOQV9DQUwpOworCX0gZWxzZSB7CisJ CWNlY193cml0ZShwcml2LCBSRUdfQ0VDX0NBTF9YT1NDX0NUUkwxLCAwKTsKKwl9Cit9CisKKy8q CisgKiBDYWxpYnJhdGlvbiBmb3IgdGhlIGludGVybmFsIG9zY2lsbGF0b3I6IHdlIG5lZWQgdG8g c2V0IGNhbGlicmF0aW9uIG1vZGUsCisgKiBhbmQgdGhlbiBwdWxzZSB0aGUgSVJRIGxpbmUgbG93 IGZvciBhIDEwbXMgwrEgMSUgcGVyaW9kLgorICovCitzdGF0aWMgdm9pZCB0ZGE5OTh4X2NlY19j YWxpYnJhdGlvbihzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2KQoreworCXN0cnVjdCBncGlvX2Rl c2MgKmNhbGliID0gcHJpdi0+Y2FsaWI7CisKKwltdXRleF9sb2NrKCZwcml2LT5lZGlkX211dGV4 KTsKKwlpZiAocHJpdi0+aGRtaS0+aXJxID4gMCkKKwkJZGlzYWJsZV9pcnEocHJpdi0+aGRtaS0+ aXJxKTsKKwlncGlvZF9kaXJlY3Rpb25fb3V0cHV0KGNhbGliLCAxKTsKKwl0ZGE5OTh4X2NlY19z ZXRfY2FsaWJyYXRpb24ocHJpdiwgdHJ1ZSk7CisKKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCWdw aW9kX3NldF92YWx1ZShjYWxpYiwgMCk7CisJbWRlbGF5KDEwKTsKKwlncGlvZF9zZXRfdmFsdWUo Y2FsaWIsIDEpOworCWxvY2FsX2lycV9lbmFibGUoKTsKKworCXRkYTk5OHhfY2VjX3NldF9jYWxp YnJhdGlvbihwcml2LCBmYWxzZSk7CisJZ3Bpb2RfZGlyZWN0aW9uX2lucHV0KGNhbGliKTsKKwlp ZiAocHJpdi0+aGRtaS0+aXJxID4gMCkKKwkJZW5hYmxlX2lycShwcml2LT5oZG1pLT5pcnEpOwor CW11dGV4X3VubG9jaygmcHJpdi0+ZWRpZF9tdXRleCk7Cit9CisKK3N0YXRpYyBpbnQgdGRhOTk4 eF9jZWNfaG9va19pbml0KHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJp diA9IGRhdGE7CisJc3RydWN0IGdwaW9fZGVzYyAqY2FsaWI7CisKKwljYWxpYiA9IGdwaW9kX2dl dCgmcHJpdi0+aGRtaS0+ZGV2LCAibnhwLGNhbGliIiwgR1BJT0RfQVNJUyk7CisJaWYgKElTX0VS UihjYWxpYikpIHsKKwkJZGV2X3dhcm4oJnByaXYtPmhkbWktPmRldiwgImZhaWxlZCB0byBnZXQg Y2FsaWJyYXRpb24gZ3BpbzogJWxkXG4iLAorCQkJIFBUUl9FUlIoY2FsaWIpKTsKKwkJcmV0dXJu IFBUUl9FUlIoY2FsaWIpOworCX0KKworCXByaXYtPmNhbGliID0gY2FsaWI7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIHZvaWQgdGRhOTk4eF9jZWNfaG9va19leGl0KHZvaWQgKmRhdGEpCit7 CisJc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiA9IGRhdGE7CisKKwlncGlvZF9wdXQocHJpdi0+ Y2FsaWIpOworCXByaXYtPmNhbGliID0gTlVMTDsKK30KKworc3RhdGljIGludCB0ZGE5OTh4X2Nl Y19ob29rX29wZW4odm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2ID0g ZGF0YTsKKworCWNlY19lbmFtb2RzKHByaXYsIENFQ19FTkFNT0RTX0VOX0NFQ19DTEsgfCBDRUNf RU5BTU9EU19FTl9DRUMsIHRydWUpOworCXRkYTk5OHhfY2VjX2NhbGlicmF0aW9uKHByaXYpOwor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHRkYTk5OHhfY2VjX2hvb2tfcmVsZWFzZSh2 b2lkICpkYXRhKQoreworCXN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYgPSBkYXRhOworCisJY2Vj X2VuYW1vZHMocHJpdiwgQ0VDX0VOQU1PRFNfRU5fQ0VDX0NMSyB8IENFQ19FTkFNT0RTX0VOX0NF QywgZmFsc2UpOworfQorCiBzdGF0aWMgaW50CiBzZXRfcGFnZShzdHJ1Y3QgdGRhOTk4eF9wcml2 ICpwcml2LCB1MTYgcmVnKQogewpAQCAtNjU3LDEwICs3ODAsMTMgQEAgc3RhdGljIGlycXJldHVy bl90IHRkYTk5OHhfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKQogCQkJc3RhLCBjZWMs IGx2bCwgZmxhZzAsIGZsYWcxLCBmbGFnMik7CiAKIAkJaWYgKGNlYyAmIENFQ19SWFNIUERJTlRf SFBEKSB7Ci0JCQlpZiAobHZsICYgQ0VDX1JYU0hQRExFVl9IUEQpCisJCQlpZiAobHZsICYgQ0VD X1JYU0hQRExFVl9IUEQpIHsKIAkJCQl0ZGE5OTh4X2VkaWRfZGVsYXlfc3RhcnQocHJpdik7Ci0J CQllbHNlCisJCQl9IGVsc2UgewogCQkJCXNjaGVkdWxlX3dvcmsoJnByaXYtPmRldGVjdF93b3Jr KTsKKwkJCQljZWNfbm90aWZpZXJfc2V0X3BoeXNfYWRkcihwcml2LT5jZWNfbm90aWZ5LAorCQkJ CQkJICAgQ0VDX1BIWVNfQUREUl9JTlZBTElEKTsKKwkJCX0KIAogCQkJaGFuZGxlZCA9IHRydWU7 CiAJCX0KQEAgLTk4MSw2ICsxMTA3LDggQEAgc3RhdGljIGludCB0ZGE5OTh4X2Nvbm5lY3Rvcl9m aWxsX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJaWYgKGNvbm5lY3Rv ci0+ZWRpZF9ibG9iX3B0cikgewogCQlzdHJ1Y3QgZWRpZCAqZWRpZCA9ICh2b2lkICopY29ubmVj dG9yLT5lZGlkX2Jsb2JfcHRyLT5kYXRhOwogCisJCWNlY19ub3RpZmllcl9zZXRfcGh5c19hZGRy X2Zyb21fZWRpZChwcml2LT5jZWNfbm90aWZ5LCBlZGlkKTsKKwogCQlwcml2LT5zaW5rX2hhc19h dWRpbyA9IGRybV9kZXRlY3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKIAl9IGVsc2UgewogCQlwcml2 LT5zaW5rX2hhc19hdWRpbyA9IGZhbHNlOwpAQCAtMTAyNCw2ICsxMTUyLDggQEAgc3RhdGljIGlu dCByZWFkX2VkaWRfYmxvY2sodm9pZCAqZGF0YSwgdTggKmJ1ZiwgdW5zaWduZWQgaW50IGJsaywg c2l6ZV90IGxlbmd0aCkKIAlvZmZzZXQgPSAoYmxrICYgMSkgPyAxMjggOiAwOwogCXNlZ3B0ciA9 IGJsayAvIDI7CiAKKwltdXRleF9sb2NrKCZwcml2LT5lZGlkX211dGV4KTsKKwogCXJlZ193cml0 ZShwcml2LCBSRUdfRERDX0FERFIsIDB4YTApOwogCXJlZ193cml0ZShwcml2LCBSRUdfRERDX09G RlMsIG9mZnNldCk7CiAJcmVnX3dyaXRlKHByaXYsIFJFR19ERENfU0VHTV9BRERSLCAweDYwKTsK QEAgLTEwNDMsMTQgKzExNzMsMTUgQEAgc3RhdGljIGludCByZWFkX2VkaWRfYmxvY2sodm9pZCAq ZGF0YSwgdTggKmJ1ZiwgdW5zaWduZWQgaW50IGJsaywgc2l6ZV90IGxlbmd0aCkKIAkJCQkJbXNl Y3NfdG9famlmZmllcygxMDApKTsKIAkJaWYgKGkgPCAwKSB7CiAJCQlkZXZfZXJyKCZwcml2LT5o ZG1pLT5kZXYsICJyZWFkIGVkaWQgd2FpdCBlcnIgJWRcbiIsIGkpOwotCQkJcmV0dXJuIGk7CisJ CQlyZXQgPSBpOworCQkJZ290byBmYWlsZWQ7CiAJCX0KIAl9IGVsc2UgewogCQlmb3IgKGkgPSAx MDA7IGkgPiAwOyBpLS0pIHsKIAkJCW1zbGVlcCgxKTsKIAkJCXJldCA9IHJlZ19yZWFkKHByaXYs IFJFR19JTlRfRkxBR1NfMik7CiAJCQlpZiAocmV0IDwgMCkKLQkJCQlyZXR1cm4gcmV0OworCQkJ CWdvdG8gZmFpbGVkOwogCQkJaWYgKHJldCAmIElOVF9GTEFHU18yX0VESURfQkxLX1JEKQogCQkJ CWJyZWFrOwogCQl9CkBAIC0xMDU4LDE3ICsxMTg5LDIyIEBAIHN0YXRpYyBpbnQgcmVhZF9lZGlk X2Jsb2NrKHZvaWQgKmRhdGEsIHU4ICpidWYsIHVuc2lnbmVkIGludCBibGssIHNpemVfdCBsZW5n dGgpCiAKIAlpZiAoaSA9PSAwKSB7CiAJCWRldl9lcnIoJnByaXYtPmhkbWktPmRldiwgInJlYWQg ZWRpZCB0aW1lb3V0XG4iKTsKLQkJcmV0dXJuIC1FVElNRURPVVQ7CisJCXJldCA9IC1FVElNRURP VVQ7CisJCWdvdG8gZmFpbGVkOwogCX0KIAogCXJldCA9IHJlZ19yZWFkX3JhbmdlKHByaXYsIFJF R19FRElEX0RBVEFfMCwgYnVmLCBsZW5ndGgpOwogCWlmIChyZXQgIT0gbGVuZ3RoKSB7CiAJCWRl dl9lcnIoJnByaXYtPmhkbWktPmRldiwgImZhaWxlZCB0byByZWFkIGVkaWQgYmxvY2sgJWQ6ICVk XG4iLAogCQkJYmxrLCByZXQpOwotCQlyZXR1cm4gcmV0OworCQlnb3RvIGZhaWxlZDsKIAl9CiAK LQlyZXR1cm4gMDsKKwlyZXQgPSAwOworCisgZmFpbGVkOgorCW11dGV4X3VubG9jaygmcHJpdi0+ ZWRpZF9tdXRleCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCB0ZGE5OTh4X2Nvbm5l Y3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKQEAgLTE0MjMs NiArMTU1OSw5IEBAIHN0YXRpYyB2b2lkIHRkYTk5OHhfZGVzdHJveShzdHJ1Y3QgdGRhOTk4eF9w cml2ICpwcml2KQogCWNhbmNlbF93b3JrX3N5bmMoJnByaXYtPmRldGVjdF93b3JrKTsKIAogCWky Y191bnJlZ2lzdGVyX2RldmljZShwcml2LT5jZWMpOworCisJaWYgKHByaXYtPmNlY19ub3RpZnkp CisJCWNlY19ub3RpZmllcl9wdXQocHJpdi0+Y2VjX25vdGlmeSk7CiB9CiAKIC8qIEkyQyBkcml2 ZXIgZnVuY3Rpb25zICovCkBAIC0xNDcyLDExICsxNjExLDEzIEBAIHN0YXRpYyBpbnQgdGRhOTk4 eF9nZXRfYXVkaW9fcG9ydHMoc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiwKIHN0YXRpYyBpbnQg dGRhOTk4eF9jcmVhdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgc3RydWN0IHRkYTk5OHhf cHJpdiAqcHJpdikKIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gY2xpZW50LT5kZXYub2Zf bm9kZTsKKwlzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gY2VjX2luZm87CiAJdTMyIHZpZGVvOwogCWlu dCByZXZfbG8sIHJldl9oaSwgcmV0OwogCiAJbXV0ZXhfaW5pdCgmcHJpdi0+bXV0ZXgpOwkvKiBw cm90ZWN0IHRoZSBwYWdlIGFjY2VzcyAqLwogCW11dGV4X2luaXQoJnByaXYtPmF1ZGlvX211dGV4 KTsgLyogcHJvdGVjdCBhY2Nlc3MgZnJvbSBhdWRpbyB0aHJlYWQgKi8KKwltdXRleF9pbml0KCZw cml2LT5lZGlkX211dGV4KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcml2LT5lZGlkX2RlbGF5 X3dhaXRxKTsKIAl0aW1lcl9zZXR1cCgmcHJpdi0+ZWRpZF9kZWxheV90aW1lciwgdGRhOTk4eF9l ZGlkX2RlbGF5X2RvbmUsIDApOwogCUlOSVRfV09SSygmcHJpdi0+ZGV0ZWN0X3dvcmssIHRkYTk5 OHhfZGV0ZWN0X3dvcmspOwpAQCAtMTU2NCw2ICsxNzA1LDkgQEAgc3RhdGljIGludCB0ZGE5OTh4 X2NyZWF0ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBzdHJ1Y3QgdGRhOTk4eF9wcml2ICpw cml2KQogCiAJCWlycV9mbGFncyA9CiAJCQlpcnFkX2dldF90cmlnZ2VyX3R5cGUoaXJxX2dldF9p cnFfZGF0YShjbGllbnQtPmlycSkpOworCisJCXByaXYtPmNlY19nbHVlLmlycV9mbGFncyA9IGly cV9mbGFnczsKKwogCQlpcnFfZmxhZ3MgfD0gSVJRRl9TSEFSRUQgfCBJUlFGX09ORVNIT1Q7CiAJ CXJldCA9IHJlcXVlc3RfdGhyZWFkZWRfaXJxKGNsaWVudC0+aXJxLCBOVUxMLAogCQkJCQkgICB0 ZGE5OTh4X2lycV90aHJlYWQsIGlycV9mbGFncywKQEAgLTE1NzksNyArMTcyMywzNCBAQCBzdGF0 aWMgaW50IHRkYTk5OHhfY3JlYXRlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCB0 ZGE5OTh4X3ByaXYgKnByaXYpCiAJCWNlY193cml0ZShwcml2LCBSRUdfQ0VDX1JYU0hQRElOVEVO QSwgQ0VDX1JYU0hQRExFVl9IUEQpOwogCX0KIAotCXByaXYtPmNlYyA9IGkyY19uZXdfZHVtbXko Y2xpZW50LT5hZGFwdGVyLCBwcml2LT5jZWNfYWRkcik7CisJcHJpdi0+Y2VjX25vdGlmeSA9IGNl Y19ub3RpZmllcl9nZXQoJmNsaWVudC0+ZGV2KTsKKwlpZiAoIXByaXYtPmNlY19ub3RpZnkpIHsK KwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBmYWlsOworCX0KKworCXByaXYtPmNlY19nbHVlLnBh cmVudCA9ICZjbGllbnQtPmRldjsKKwlwcml2LT5jZWNfZ2x1ZS5kYXRhID0gcHJpdjsKKwlwcml2 LT5jZWNfZ2x1ZS5pbml0ID0gdGRhOTk4eF9jZWNfaG9va19pbml0OworCXByaXYtPmNlY19nbHVl LmV4aXQgPSB0ZGE5OTh4X2NlY19ob29rX2V4aXQ7CisJcHJpdi0+Y2VjX2dsdWUub3BlbiA9IHRk YTk5OHhfY2VjX2hvb2tfb3BlbjsKKwlwcml2LT5jZWNfZ2x1ZS5yZWxlYXNlID0gdGRhOTk4eF9j ZWNfaG9va19yZWxlYXNlOworCisJLyoKKwkgKiBTb21lIFREQTk5OHggYXJlIGFjdHVhbGx5IHR3 byBJMkMgZGV2aWNlcyBtZXJnZWQgb250byBvbmUgcGllY2UKKwkgKiBvZiBzaWxpY29uOiBUREE5 OTg5IGFuZCBUREExOTk4OSBjb21iaW5lIHRoZSBIRE1JIHRyYW5zbWl0dGVyCisJICogd2l0aCBh IHNsaWdodGx5IG1vZGlmaWVkIFREQTk5NTAgQ0VDIGRldmljZS4gIFRoZSBDRUMgZGV2aWNlCisJ ICogaXMgYXQgdGhlIFREQTk5NTAgYWRkcmVzcywgd2l0aCB0aGUgYWRkcmVzcyBwaW5zIHN0cmFw cGVkIGFjcm9zcworCSAqIHRvIHRoZSBUREE5OTh4IGFkZHJlc3MgcGlucy4gIEhlbmNlLCBpdCBh bHdheXMgaGFzIHRoZSBzYW1lCisJICogb2Zmc2V0LgorCSAqLworCW1lbXNldCgmY2VjX2luZm8s IDAsIHNpemVvZihjZWNfaW5mbykpOworCXN0cmxjcHkoY2VjX2luZm8udHlwZSwgInRkYTk5NTAi LCBzaXplb2YoY2VjX2luZm8udHlwZSkpOworCWNlY19pbmZvLmFkZHIgPSBwcml2LT5jZWNfYWRk cjsKKwljZWNfaW5mby5wbGF0Zm9ybV9kYXRhID0gJnByaXYtPmNlY19nbHVlOworCWNlY19pbmZv LmlycSA9IGNsaWVudC0+aXJxOworCisJcHJpdi0+Y2VjID0gaTJjX25ld19kZXZpY2UoY2xpZW50 LT5hZGFwdGVyLCAmY2VjX2luZm8pOwogCWlmICghcHJpdi0+Y2VjKSB7CiAJCXJldCA9IC1FTk9E RVY7CiAJCWdvdG8gZmFpbDsKQEAgLTE2MDksMTAgKzE3ODAsMTYgQEAgc3RhdGljIGludCB0ZGE5 OTh4X2NyZWF0ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBzdHJ1Y3QgdGRhOTk4eF9wcml2 ICpwcml2KQogCXJldHVybiAwOwogCiBmYWlsOgorCS8qIGlmIGVuY29kZXJfaW5pdCBmYWlscywg dGhlIGVuY29kZXIgc2xhdmUgaXMgbmV2ZXIgcmVnaXN0ZXJlZCwKKwkgKiBzbyBjbGVhbnVwIGhl cmU6CisJICovCisJaWYgKHByaXYtPmNlYykKKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKHByaXYt PmNlYyk7CisJaWYgKHByaXYtPmNlY19ub3RpZnkpCisJCWNlY19ub3RpZmllcl9wdXQocHJpdi0+ Y2VjX25vdGlmeSk7CiAJaWYgKGNsaWVudC0+aXJxKQogCQlmcmVlX2lycShjbGllbnQtPmlycSwg cHJpdik7CiBlcnJfaXJxOgotCWkyY191bnJlZ2lzdGVyX2RldmljZShwcml2LT5jZWMpOwogCXJl dHVybiByZXQ7CiB9CiAKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK