From mboxrd@z Thu Jan 1 00:00:00 1970 From: Beniamin Bia Subject: [PATCH v3 1/4] iio: adc: ad7606: Add support for AD7606B ADC Date: Wed, 21 Aug 2019 17:16:53 +0300 Message-ID: <20190821141656.4815-1-beniamin.bia@analog.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: jic23@kernel.org Cc: devel@driverdev.osuosl.org, mark.rutland@arm.com, lars@metafoo.de, biabeniamin@outlook.com, Stefan Popa , Michael.Hennerich@analog.com, devicetree@vger.kernel.org, linux-iio@vger.kernel.org, gregkh@linuxfoundation.org, linus.walleij@linaro.org, linux-kernel@vger.kernel.org, nicolas.ferre@microchip.com, robh+dt@kernel.org, pmeerw@pmeerw.net, knaack.h@gmx.de, mchehab+samsung@kernel.org, paulmck@linux.ibm.com, Beniamin Bia List-Id: devicetree@vger.kernel.org RnJvbTogU3RlZmFuIFBvcGEgPHN0ZWZhbi5wb3BhQGFuYWxvZy5jb20+CgpUaGUgQUQ3NjA2QiBp cyBhIDE2LWJpdCBBREMgdGhhdCBzdXBwb3J0cyBzaW11bHRhbmVvdXMgc2FtcGxpbmcgb2YgOApj aGFubmVscy4gSXQgaXMgcGluIGNvbXBhdGlibGUgdG8gQUQ3NjA2LCBidXQgYWRkcyBleHRyYSBt b2RlcyBieQp3cml0aW5nIHRvIHRoZSByZWdpc3RlciBtYXAuCgpUaGUgQUQ3NjA2QiBjYW4gYmUg Y29uZmlndXJlZCB0byB3b3JrIGluIHNvZnR3YXJlIG1vZGUgYnkgc2V0dGluZyBhbGwKb3ZlcnNh bXBsaW5nIHBpbnMgdG8gaGlnaC4gVGhpcyBtb2RlIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuClRo ZSBvdmVyc2FtcGxpbmcgcmF0aW8gaXMgY29uZmlndXJlZCBmcm9tIHRoZSBPU19NT0RFIHJlZ2lz dGVyIChhZGRyZXNzCjB4MDgpIHdpdGggdGhlIGFkZGl0aW9uIG9mIE9TPTEyOCBhbmQgT1M9MjU2 IHRoYXQgd2VyZSBub3QgYXZhaWxhYmxlIGluCmhhcmR3YXJlIG1vZGUuCgpUaGUgZGV2aWNlIGlz IGNvbmZpZ3VyZWQgdG8gb3V0cHV0IGRhdGEgb24gYSBzaW5nbGUgc3BpIGNoYW5uZWwsIGJ1dCB0 aGlzCmNvbmZpZ3VyYXRpb24gbXVzdCBiZSBkb25lIHJpZ2h0IGFmdGVyIHJlc3RhcnQuIFRoYXQg aXMgd2h5IHRoZSBkZWxheSB3YXMKcmVtb3ZlZCBmb3IgZGV2aWNlcyB3aGljaCBkb2Vzbid0IHJl cXVpcmUgaXQuCgpNb3Jlb3ZlciwgaW4gc29mdHdhcmUgbW9kZSwgdGhlIHJhbmdlIGdwaW8gaGFz IG5vIGxvbmdlciBpdHMgZnVuY3Rpb24uCkluc3RlYWQsIHRoZSBzY2FsZSBjYW4gYmUgY29uZmln dXJlZCBpbmRpdmlkdWFsbHkgZm9yIGVhY2ggY2hhbm5lbCBmcm9tCnRoZSBSQU5HRV9DSCByZWdp c3RlcnMgKGFkZHJlc3MgMHgwMyB0byAweDA2KS4gQmVzaWRlcyB0aGUgYWxyZWFkeQpzdXBwb3J0 ZWQgwrExMCBWIGFuZCDCsTUgViByYW5nZXMsIHNvZnR3YXJlIG1vZGUgY2FuIGFsc28gYWNjb21t b2RhdGUgdGhlCsKxMi41IFYgcmFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUG9wYSA8c3Rl ZmFuLnBvcGFAYW5hbG9nLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5OiBCZW5pYW1pbiBCaWEgPGJlbmlh bWluLmJpYUBhbmFsb2cuY29tPgpTaWduZWQtb2ZmLWJ5OiBCZW5pYW1pbiBCaWEgPGJlbmlhbWlu LmJpYUBhbmFsb2cuY29tPgotLS0KQ2hhbmdlcyBpbiB2MzoKLWNvbW1lbnRzIHJld29ya2VkCi1p c1dyaXRlT3AgcmVuYW1lZCB0byBpc193cml0ZV9vcAoKIGRyaXZlcnMvaWlvL2FkYy9hZDc2MDYu YyAgICAgfCAgMTMgKysrKy0KIGRyaXZlcnMvaWlvL2FkYy9hZDc2MDYuaCAgICAgfCAgIDQgKysK IGRyaXZlcnMvaWlvL2FkYy9hZDc2MDZfc3BpLmMgfCAxMDkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL2FkNzYwNi5jIGIvZHJpdmVy cy9paW8vYWRjL2FkNzYwNi5jCmluZGV4IGVkMmQwODQzN2U1ZC4uZjViYTk0YzAzYThkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvYWQ3NjA2LmMKKysrIGIvZHJpdmVycy9paW8vYWRjL2Fk NzYwNi5jCkBAIC00MTAsMTIgKzQxMCwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkNzYwNl9j aGlwX2luZm8gYWQ3NjA2X2NoaXBfaW5mb190YmxbXSA9IHsKIAkJLm92ZXJzYW1wbGluZ19hdmFp bCA9IGFkNzYwNl9vdmVyc2FtcGxpbmdfYXZhaWwsCiAJCS5vdmVyc2FtcGxpbmdfbnVtID0gQVJS QVlfU0laRShhZDc2MDZfb3ZlcnNhbXBsaW5nX2F2YWlsKSwKIAl9LAorCVtJRF9BRDc2MDZCXSA9 IHsKKwkJLmNoYW5uZWxzID0gYWQ3NjA2X2NoYW5uZWxzLAorCQkubnVtX2NoYW5uZWxzID0gOSwK KwkJLm92ZXJzYW1wbGluZ19hdmFpbCA9IGFkNzYwNl9vdmVyc2FtcGxpbmdfYXZhaWwsCisJCS5v dmVyc2FtcGxpbmdfbnVtID0gQVJSQVlfU0laRShhZDc2MDZfb3ZlcnNhbXBsaW5nX2F2YWlsKSwK Kwl9LAogCVtJRF9BRDc2MTZdID0gewogCQkuY2hhbm5lbHMgPSBhZDc2MTZfY2hhbm5lbHMsCiAJ CS5udW1fY2hhbm5lbHMgPSAxNywKIAkJLm92ZXJzYW1wbGluZ19hdmFpbCA9IGFkNzYxNl9vdmVy c2FtcGxpbmdfYXZhaWwsCiAJCS5vdmVyc2FtcGxpbmdfbnVtID0gQVJSQVlfU0laRShhZDc2MTZf b3ZlcnNhbXBsaW5nX2F2YWlsKSwKIAkJLm9zX3JlcV9yZXNldCA9IHRydWUsCisJCS5pbml0X2Rl bGF5X21zID0gMTUsCiAJfSwKIH07CiAKQEAgLTYzMSw4ICs2MzgsMTAgQEAgaW50IGFkNzYwNl9w cm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBpcnEsIHZvaWQgX19pb21lbSAqYmFzZV9hZGRy ZXNzLAogCQlkZXZfd2FybihzdC0+ZGV2LCAiZmFpbGVkIHRvIFJFU0VUOiBubyBSRVNFVCBHUElP IHNwZWNpZmllZFxuIik7CiAKIAkvKiBBRDc2MTYgcmVxdWlyZXMgYWwgbGVhc3QgMTVtcyB0byBy ZWNvbmZpZ3VyZSBhZnRlciBhIHJlc2V0ICovCi0JaWYgKG1zbGVlcF9pbnRlcnJ1cHRpYmxlKDE1 KSkKLQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwlpZiAoc3QtPmNoaXBfaW5mby0+aW5pdF9kZWxh eV9tcykgeworCQlpZiAobXNsZWVwX2ludGVycnVwdGlibGUoc3QtPmNoaXBfaW5mby0+aW5pdF9k ZWxheV9tcykpCisJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCX0KIAogCXN0LT53cml0ZV9zY2Fs ZSA9IGFkNzYwNl93cml0ZV9zY2FsZV9odzsKIAlzdC0+d3JpdGVfb3MgPSBhZDc2MDZfd3JpdGVf b3NfaHc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvYWQ3NjA2LmggYi9kcml2ZXJzL2lp by9hZGMvYWQ3NjA2LmgKaW5kZXggZWVhYWE4YjkwNWRiLi45MzUwZWYxZjYzYjUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaWlvL2FkYy9hZDc2MDYuaAorKysgYi9kcml2ZXJzL2lpby9hZGMvYWQ3NjA2 LmgKQEAgLTQ2LDYgKzQ2LDggQEAKICAqCQkJb3ZlcnNhbXBsaW5nIHJhdGlvcy4KICAqIEBvdmVy c2FtcGxpbmdfbnVtCW51bWJlciBvZiBlbGVtZW50cyBzdG9yZWQgaW4gb3ZlcnNhbXBsaW5nX2F2 YWlsIGFycmF5CiAgKiBAb3NfcmVxX3Jlc2V0CXNvbWUgZGV2aWNlcyByZXF1aXJlIGEgcmVzZXQg dG8gdXBkYXRlIG92ZXJzYW1wbGluZworICogQGluaXRfZGVsYXlfbXMJcmVxdWlyZWQgZGVsYXkg aW4gbWlsaXNlY29uZHMgZm9yIGluaXRpYWxpemF0aW9uCisgKgkJCWFmdGVyIGEgcmVzdGFydAog ICovCiBzdHJ1Y3QgYWQ3NjA2X2NoaXBfaW5mbyB7CiAJY29uc3Qgc3RydWN0IGlpb19jaGFuX3Nw ZWMJKmNoYW5uZWxzOwpAQCAtNTMsNiArNTUsNyBAQCBzdHJ1Y3QgYWQ3NjA2X2NoaXBfaW5mbyB7 CiAJY29uc3QgdW5zaWduZWQgaW50CQkqb3ZlcnNhbXBsaW5nX2F2YWlsOwogCXVuc2lnbmVkIGlu dAkJCW92ZXJzYW1wbGluZ19udW07CiAJYm9vbAkJCQlvc19yZXFfcmVzZXQ7CisJdW5zaWduZWQg bG9uZwkJCWluaXRfZGVsYXlfbXM7CiB9OwogCiAvKioKQEAgLTE1NSw2ICsxNTgsNyBAQCBlbnVt IGFkNzYwNl9zdXBwb3J0ZWRfZGV2aWNlX2lkcyB7CiAJSURfQUQ3NjA2XzgsCiAJSURfQUQ3NjA2 XzYsCiAJSURfQUQ3NjA2XzQsCisJSURfQUQ3NjA2QiwKIAlJRF9BRDc2MTYsCiB9OwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2lpby9hZGMvYWQ3NjA2X3NwaS5jIGIvZHJpdmVycy9paW8vYWRjL2Fk NzYwNl9zcGkuYwppbmRleCA5OGVkNTJiNzQ1MDcuLjI5OTQ1YWQwN2RjYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9paW8vYWRjL2FkNzYwNl9zcGkuYworKysgYi9kcml2ZXJzL2lpby9hZGMvYWQ3NjA2 X3NwaS5jCkBAIC0yOCw5ICsyOCwyMyBAQAogICogYW4gb2Zmc2V0IG9mIDIgZm9yIHJlZ2lzdGVy IGFkZHJlc3MuCiAgKi8KICNkZWZpbmUgQUQ3NjE2X1JBTkdFX0NIX0FERFIoY2gpCSgoY2gpID4+ IDIpCi0vKiBUaGUgcmFuZ2Ugb2YgdGhlIGNoYW5uZWwgaXMgc3RvcmVkIG9uIDIgYml0cyovCisv KiBUaGUgcmFuZ2Ugb2YgdGhlIGNoYW5uZWwgaXMgc3RvcmVkIGluIDIgYml0cyAqLwogI2RlZmlu ZSBBRDc2MTZfUkFOR0VfQ0hfTVNLKGNoKQkJKDBiMTEgPDwgKCgoY2gpICYgMGIxMSkgKiAyKSkK ICNkZWZpbmUgQUQ3NjE2X1JBTkdFX0NIX01PREUoY2gsIG1vZGUpCSgobW9kZSkgPDwgKCgoKGNo KSAmIDBiMTEpKSAqIDIpKQorCisjZGVmaW5lIEFENzYwNl9DT05GSUdVUkFUSU9OX1JFR0lTVEVS CTB4MDIKKyNkZWZpbmUgQUQ3NjA2X1NJTkdMRV9ET1VUCQkweDAwCisKKy8qCisgKiBSYW5nZSBm b3IgQUQ3NjA2QiBjaGFubmVscyBhcmUgc3RvcmVkIGluIHJlZ2lzdGVycyBzdGFydGluZyB3aXRo IGFkZHJlc3MgMHgzLgorICogRWFjaCByZWdpc3RlciBzdG9yZXMgcmFuZ2UgZm9yIDIgY2hhbm5l bHMoNCBiaXRzIHBlciBjaGFubmVsKS4KKyAqLworI2RlZmluZSBBRDc2MDZfUkFOR0VfQ0hfTVNL KGNoKQkJKEdFTk1BU0soMywgMCkgPDwgKDQgKiAoKGNoKSAmIDB4MSkpKQorI2RlZmluZSBBRDc2 MDZfUkFOR0VfQ0hfTU9ERShjaCwgbW9kZSkJXAorCSgoR0VOTUFTSygzLCAwKSAmIG1vZGUpIDw8 ICg0ICogKChjaCkgJiAweDEpKSkKKyNkZWZpbmUgQUQ3NjA2X1JBTkdFX0NIX0FERFIoY2gpCSgw eDAzICsgKChjaCkgPj4gMSkpCisjZGVmaW5lIEFENzYwNl9PU19NT0RFCQkJMHgwOAorCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGlpb19jaGFuX3NwZWMgYWQ3NjE2X3N3X2NoYW5uZWxzW10gPSB7CiAJ SUlPX0NIQU5fU09GVF9USU1FU1RBTVAoMTYpLAogCUFENzYxNl9DSEFOTkVMKDApLApAQCAtNTEs NiArNjUsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIGFkNzYxNl9zd19j aGFubmVsc1tdID0gewogCUFENzYxNl9DSEFOTkVMKDE1KSwKIH07CiAKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaWlvX2NoYW5fc3BlYyBhZDc2MDZiX3N3X2NoYW5uZWxzW10gPSB7CisJSUlPX0NIQU5f U09GVF9USU1FU1RBTVAoOCksCisJQUQ3NjE2X0NIQU5ORUwoMCksCisJQUQ3NjE2X0NIQU5ORUwo MSksCisJQUQ3NjE2X0NIQU5ORUwoMiksCisJQUQ3NjE2X0NIQU5ORUwoMyksCisJQUQ3NjE2X0NI QU5ORUwoNCksCisJQUQ3NjE2X0NIQU5ORUwoNSksCisJQUQ3NjE2X0NIQU5ORUwoNiksCisJQUQ3 NjE2X0NIQU5ORUwoNyksCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGFkNzYwNkJf b3ZlcnNhbXBsaW5nX2F2YWlsWzldID0geworCTEsIDIsIDQsIDgsIDE2LCAzMiwgNjQsIDEyOCwg MjU2Cit9OworCiBzdGF0aWMgdTE2IGFkNzYxNl9zcGlfcmRfd3JfY21kKGludCBhZGRyLCBjaGFy IGlzV3JpdGVPcCkKIHsKIAkvKgpAQCAtNjAsNiArOTAsMTYgQEAgc3RhdGljIHUxNiBhZDc2MTZf c3BpX3JkX3dyX2NtZChpbnQgYWRkciwgY2hhciBpc1dyaXRlT3ApCiAJcmV0dXJuICgoYWRkciAm IDB4N0YpIDw8IDEpIHwgKChpc1dyaXRlT3AgJiAweDEpIDw8IDcpOwogfQogCitzdGF0aWMgdTE2 IGFkNzYwNkJfc3BpX3JkX3dyX2NtZChpbnQgYWRkciwgY2hhciBpc193cml0ZV9vcCkKK3sKKwkv KgorCSAqIFRoZSBhZGRyZXNzIG9mIHJlZ2lzdGVyIGNvbnNpc3RzIG9mIG9uZSBiaXQgd2hpY2gK KwkgKiBzcGVjaWZpZXMgYSByZWFkIGNvbW1hbmQgcGxhY2VkIGluIGJpdCA2LCBmb2xsb3dlZCBi eQorCSAqIDYgYml0cyBvZiBhZGRyZXNzLgorCSAqLworCXJldHVybiAoYWRkciAmIDB4M0YpIHwg KCgofmlzX3dyaXRlX29wKSAmIDB4MSkgPDwgNik7Cit9CisKIHN0YXRpYyBpbnQgYWQ3NjA2X3Nw aV9yZWFkX2Jsb2NrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQkgaW50IGNvdW50LCB2b2lkICpi dWYpCiB7CkBAIC0xNjksNiArMjA5LDIzIEBAIHN0YXRpYyBpbnQgYWQ3NjE2X3dyaXRlX29zX3N3 KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsIGludCB2YWwpCiAJCQkJICAgICBBRDc2MTZfT1Nf TUFTSywgdmFsIDw8IDIpOwogfQogCitzdGF0aWMgaW50IGFkNzYwNl93cml0ZV9zY2FsZV9zdyhz dHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LCBpbnQgY2gsIGludCB2YWwpCit7CisJc3RydWN0IGFk NzYwNl9zdGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOworCisJcmV0dXJuIGFkNzYwNl9z cGlfd3JpdGVfbWFzayhzdCwKKwkJCQkgICAgIEFENzYwNl9SQU5HRV9DSF9BRERSKGNoKSwKKwkJ CQkgICAgIEFENzYwNl9SQU5HRV9DSF9NU0soY2gpLAorCQkJCSAgICAgQUQ3NjA2X1JBTkdFX0NI X01PREUoY2gsIHZhbCkpOworfQorCitzdGF0aWMgaW50IGFkNzYwNl93cml0ZV9vc19zdyhzdHJ1 Y3QgaWlvX2RldiAqaW5kaW9fZGV2LCBpbnQgdmFsKQoreworCXN0cnVjdCBhZDc2MDZfc3RhdGUg KnN0ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKKworCXJldHVybiBhZDc2MDZfc3BpX3JlZ193cml0 ZShzdCwgQUQ3NjA2X09TX01PREUsIHZhbCk7Cit9CisKIHN0YXRpYyBpbnQgYWQ3NjE2X3N3X21v ZGVfY29uZmlnKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiB7CiAJc3RydWN0IGFkNzYwNl9z dGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOwpAQCAtMTg5LDYgKzI0Niw0MiBAQCBzdGF0 aWMgaW50IGFkNzYxNl9zd19tb2RlX2NvbmZpZyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQog CQkJICAgICAgQUQ3NjE2X0JVUlNUX01PREUgfCBBRDc2MTZfU0VRRU5fTU9ERSk7CiB9CiAKK3N0 YXRpYyBpbnQgYWQ3NjA2Ql9zd19tb2RlX2NvbmZpZyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 KQoreworCXN0cnVjdCBhZDc2MDZfc3RhdGUgKnN0ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKKwl1 bnNpZ25lZCBsb25nIG9zWzNdID0gezF9OworCisJLyoKKwkgKiBTb2Z0d2FyZSBtb2RlIGlzIGVu YWJsZWQgd2hlbiBhbGwgdGhyZWUgb3ZlcnNhbXBsaW5nCisJICogcGlucyBhcmUgc2V0IHRvIGhp Z2guIElmIG92ZXJzYW1wbGluZyBncGlvcyBhcmUgZGVmaW5lZAorCSAqIGluIHRoZSBkZXZpY2Ug dHJlZSwgdGhlbiB0aGV5IG5lZWQgdG8gYmUgc2V0IHRvIGhpZ2gsCisJICogb3RoZXJ3aXNlLCB0 aGV5IG11c3QgYmUgaGFyZHdpcmVkIHRvIFZERAorCSAqLworCWlmIChzdC0+Z3Bpb19vcykgewor CQlncGlvZF9zZXRfYXJyYXlfdmFsdWUoQVJSQVlfU0laRShvcyksCisJCQkJICAgICAgc3QtPmdw aW9fb3MtPmRlc2MsIHN0LT5ncGlvX29zLT5pbmZvLCBvcyk7CisJfQorCS8qIE9TIG9mIDEyOCBh bmQgMjU2IGFyZSBhdmFpbGFibGUgb25seSBpbiBzb2Z0d2FyZSBtb2RlICovCisJc3QtPm92ZXJz YW1wbGluZ19hdmFpbCA9IGFkNzYwNkJfb3ZlcnNhbXBsaW5nX2F2YWlsOworCXN0LT5udW1fb3Nf cmF0aW9zID0gQVJSQVlfU0laRShhZDc2MDZCX292ZXJzYW1wbGluZ19hdmFpbCk7CisKKwlzdC0+ d3JpdGVfc2NhbGUgPSBhZDc2MDZfd3JpdGVfc2NhbGVfc3c7CisJc3QtPndyaXRlX29zID0gJmFk NzYwNl93cml0ZV9vc19zdzsKKworCS8qIENvbmZpZ3VyZSBkZXZpY2Ugc3BpIHRvIG91dHB1dCBv biBhIHNpbmdsZSBjaGFubmVsICovCisJc3QtPmJvcHMtPnJlZ193cml0ZShzdCwKKwkJCSAgICBB RDc2MDZfQ09ORklHVVJBVElPTl9SRUdJU1RFUiwKKwkJCSAgICBBRDc2MDZfU0lOR0xFX0RPVVQp OworCisJLyoKKwkgKiBTY2FsZSBjYW4gYmUgY29uZmlndXJlZCBpbmRpdmlkdWFsbHkgZm9yIGVh Y2ggY2hhbm5lbAorCSAqIGluIHNvZnR3YXJlIG1vZGUuCisJICovCisJaW5kaW9fZGV2LT5jaGFu bmVscyA9IGFkNzYwNmJfc3dfY2hhbm5lbHM7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNv bnN0IHN0cnVjdCBhZDc2MDZfYnVzX29wcyBhZDc2MDZfc3BpX2JvcHMgPSB7CiAJLnJlYWRfYmxv Y2sgPSBhZDc2MDZfc3BpX3JlYWRfYmxvY2ssCiB9OwpAQCAtMjAyLDYgKzI5NSwxNSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGFkNzYwNl9idXNfb3BzIGFkNzYxNl9zcGlfYm9wcyA9IHsKIAkuc3df bW9kZV9jb25maWcgPSBhZDc2MTZfc3dfbW9kZV9jb25maWcsCiB9OwogCitzdGF0aWMgY29uc3Qg c3RydWN0IGFkNzYwNl9idXNfb3BzIGFkNzYwNkJfc3BpX2JvcHMgPSB7CisJLnJlYWRfYmxvY2sg PSBhZDc2MDZfc3BpX3JlYWRfYmxvY2ssCisJLnJlZ19yZWFkID0gYWQ3NjA2X3NwaV9yZWdfcmVh ZCwKKwkucmVnX3dyaXRlID0gYWQ3NjA2X3NwaV9yZWdfd3JpdGUsCisJLndyaXRlX21hc2sgPSBh ZDc2MDZfc3BpX3dyaXRlX21hc2ssCisJLnJkX3dyX2NtZCA9IGFkNzYwNkJfc3BpX3JkX3dyX2Nt ZCwKKwkuc3dfbW9kZV9jb25maWcgPSBhZDc2MDZCX3N3X21vZGVfY29uZmlnLAorfTsKKwogc3Rh dGljIGludCBhZDc2MDZfc3BpX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJY29u c3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgKmlkID0gc3BpX2dldF9kZXZpY2VfaWQoc3BpKTsKQEAg LTIxMSw2ICszMTMsOSBAQCBzdGF0aWMgaW50IGFkNzYwNl9zcGlfcHJvYmUoc3RydWN0IHNwaV9k ZXZpY2UgKnNwaSkKIAljYXNlIElEX0FENzYxNjoKIAkJYm9wcyA9ICZhZDc2MTZfc3BpX2JvcHM7 CiAJCWJyZWFrOworCWNhc2UgSURfQUQ3NjA2QjoKKwkJYm9wcyA9ICZhZDc2MDZCX3NwaV9ib3Bz OworCQlicmVhazsKIAlkZWZhdWx0OgogCQlib3BzID0gJmFkNzYwNl9zcGlfYm9wczsKIAkJYnJl YWs7CkBAIC0yMjYsNiArMzMxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lk IGFkNzYwNl9pZF90YWJsZVtdID0gewogCXsgImFkNzYwNi00IiwgSURfQUQ3NjA2XzQgfSwKIAl7 ICJhZDc2MDYtNiIsIElEX0FENzYwNl82IH0sCiAJeyAiYWQ3NjA2LTgiLCBJRF9BRDc2MDZfOCB9 LAorCXsgImFkNzYwNmIiLCAgSURfQUQ3NjA2QiB9LAogCXsgImFkNzYxNiIsICAgSURfQUQ3NjE2 IH0sCiAJe30KIH07CkBAIC0yMzYsNiArMzQyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgYWQ3NjA2X29mX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJhZGksYWQ3 NjA2LTQiIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJhZGksYWQ3NjA2LTYiIH0sCiAJeyAuY29tcGF0 aWJsZSA9ICJhZGksYWQ3NjA2LTgiIH0sCisJeyAuY29tcGF0aWJsZSA9ICJhZGksYWQ3NjA2YiIg fSwKIAl7IC5jb21wYXRpYmxlID0gImFkaSxhZDc2MTYiIH0sCiAJeyB9LAogfTsKLS0gCjIuMTcu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZGV2ZWwg bWFpbGluZyBsaXN0CmRldmVsQGxpbnV4ZHJpdmVycHJvamVjdC5vcmcKaHR0cDovL2RyaXZlcmRl di5saW51eGRyaXZlcnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vZHJpdmVyZGV2LWRldmVs Cg==