From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [02/14] dmaengine: dma-jz4780: Separate chan/ctrl registers From: Paul Cercueil Message-Id: <20180703123214.23090-3-paul@crapouillou.net> Date: Tue, 3 Jul 2018 14:32:02 +0200 To: Vinod Koul , Rob Herring , Mark Rutland , Ralf Baechle , Paul Burton , James Hogan , Zubair Lutfullah Kakakhel Cc: Mathieu Malaterre , Daniel Silsby , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@linux-mips.org, Paul Cercueil List-ID: VGhlIHJlZ2lzdGVyIGFyZWEgb2YgdGhlIEpaNDc4MCBETUEgY29yZSBjYW4gYmUgc3BsaXQgaW50 byBkaWZmZXJlbnQKc2VjdGlvbnMgZm9yIGRpZmZlcmVudCBwdXJwb3NlczoKCiogb25lIHNldCBv ZiByZWdpc3RlcnMgaXMgdXNlZCB0byBwZXJmb3JtIGFjdGlvbnMgYXQgdGhlIERNQSBjb3JlIGxl dmVsLAp0aGF0IHdpbGwgZ2VuZXJhbGx5IGFmZmVjdCBhbGwgY2hhbm5lbHM7CgoqIG9uZSBzZXQg b2YgcmVnaXN0ZXJzIHBlciBETUEgY2hhbm5lbCwgdG8gcGVyZm9ybSBhY3Rpb25zIGF0IHRoZSBE TUEKY2hhbm5lbCBsZXZlbCwgdGhhdCB3aWxsIG9ubHkgYWZmZWN0IHRoZSBjaGFubmVsIGluIHF1 ZXN0aW9uLgoKVGhlIHByb2JsZW0gcmlzZXMgd2hlbiB0cnlpbmcgdG8gc3VwcG9ydCBuZXcgdmVy c2lvbnMgb2YgdGhlIEpaNDd4eApJbmdlbmljIFNvQy4gRm9yIGluc3RhbmNlLCB0aGUgSlo0Nzcw IGhhcyB0d28gRE1BIGNvcmVzLCBlYWNoIG9uZQp3aXRoIHNpeCBETUEgY2hhbm5lbHMsIGFuZCB0 aGUgcmVnaXN0ZXIgc2V0cyBhcmUgaW50ZXJsZWF2ZWQ6CjxETUEwIGNoYW4gcmVncz4gPERNQTEg Y2hhbiByZWdzPiA8RE1BMCBjdHJsIHJlZ3M+IDxETUExIGN0cmwgcmVncz4KCkJ5IHVzaW5nIG9u ZSBtZW1vcnkgcmVzb3VyY2UgZm9yIHRoZSBjaGFubmVsLXNwZWNpZmljIHJlZ2lzdGVycyBhbmQK b25lIG1lbW9yeSByZXNvdXJjZSBmb3IgdGhlIGNvcmUtc3BlY2lmaWMgcmVnaXN0ZXJzLCB3ZSBj YW4gc3VwcG9ydAp0aGUgSlo0NzcwLCBieSBpbml0aWFsaXppbmcgdGhlIGRyaXZlciBvbmNlIHBl ciBETUEgY29yZSB3aXRoIGRpZmZlcmVudAphZGRyZXNzZXMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVs IENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4KLS0tCiAuLi4vZGV2aWNldHJlZS9iaW5k aW5ncy9kbWEvano0NzgwLWRtYS50eHQgICAgfCAgIDYgKy0KIGRyaXZlcnMvZG1hL2RtYS1qejQ3 ODAuYyAgICAgICAgICAgICAgICAgICAgICB8IDEwNiArKysrKysrKysrKy0tLS0tLS0KIDIgZmls ZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9qejQ3ODAtZG1hLnR4dCBi L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kbWEvano0NzgwLWRtYS50eHQKaW5k ZXggZjI1ZmVlZTYyYjE1Li5mOWIxODY0ZjViNzcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9kbWEvano0NzgwLWRtYS50eHQKKysrIGIvRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9qejQ3ODAtZG1hLnR4dApAQCAtMyw3ICszLDggQEAK IFJlcXVpcmVkIHByb3BlcnRpZXM6CiAKIC0gY29tcGF0aWJsZTogU2hvdWxkIGJlICJpbmdlbmlj LGp6NDc4MC1kbWEiCi0tIHJlZzogU2hvdWxkIGNvbnRhaW4gdGhlIERNQSBjb250cm9sbGVyIHJl Z2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLgorLSByZWc6IFNob3VsZCBjb250YWluIHRoZSBE TUEgY2hhbm5lbCByZWdpc3RlcnMgbG9jYXRpb24gYW5kIGxlbmd0aCwgZm9sbG93ZWQKKyAgYnkg dGhlIERNQSBjb250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLgogLSBpbnRl cnJ1cHRzOiBTaG91bGQgY29udGFpbiB0aGUgaW50ZXJydXB0IHNwZWNpZmllciBvZiB0aGUgRE1B IGNvbnRyb2xsZXIuCiAtIGludGVycnVwdC1wYXJlbnQ6IFNob3VsZCBiZSB0aGUgcGhhbmRsZSBv ZiB0aGUgaW50ZXJydXB0IGNvbnRyb2xsZXIgdGhhdAogLSBjbG9ja3M6IFNob3VsZCBjb250YWlu IGEgY2xvY2sgc3BlY2lmaWVyIGZvciB0aGUgSlo0NzgwIFBETUEgY2xvY2suCkBAIC0yMiw3ICsy Myw4IEBAIEV4YW1wbGU6CiAKIGRtYTogZG1hQDEzNDIwMDAwIHsKIAljb21wYXRpYmxlID0gImlu Z2VuaWMsano0NzgwLWRtYSI7Ci0JcmVnID0gPDB4MTM0MjAwMDAgMHgxMDAwMD47CisJcmVnID0g PDB4MTM0MjAwMDAgMHg0MDAKKwkgICAgICAgMHgxMzQyMTAwMCAweDQwPjsKIAogCWludGVycnVw dC1wYXJlbnQgPSA8JmludGM+OwogCWludGVycnVwdHMgPSA8MTA+OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9kbWEvZG1hLWp6NDc4MC5jIGIvZHJpdmVycy9kbWEvZG1hLWp6NDc4MC5jCmluZGV4IGI0 MGY0OTFmMDM2Ny4uNGQyMzRjYWY1ZDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9kbWEtano0 NzgwLmMKKysrIGIvZHJpdmVycy9kbWEvZG1hLWp6NDc4MC5jCkBAIC0yNSwyNiArMjUsMjYgQEAK ICNpbmNsdWRlICJ2aXJ0LWRtYS5oIgogCiAvKiBHbG9iYWwgcmVnaXN0ZXJzLiAqLwotI2RlZmlu ZSBKWl9ETUFfUkVHX0RNQUMJCTB4MTAwMAotI2RlZmluZSBKWl9ETUFfUkVHX0RJUlFQCTB4MTAw NAotI2RlZmluZSBKWl9ETUFfUkVHX0REUgkJMHgxMDA4Ci0jZGVmaW5lIEpaX0RNQV9SRUdfRERS UwkJMHgxMDBjCi0jZGVmaW5lIEpaX0RNQV9SRUdfRE1BQ1AJMHgxMDFjCi0jZGVmaW5lIEpaX0RN QV9SRUdfRFNJUlFQCTB4MTAyMAotI2RlZmluZSBKWl9ETUFfUkVHX0RTSVJRTQkweDEwMjQKLSNk ZWZpbmUgSlpfRE1BX1JFR19EQ0lSUVAJMHgxMDI4Ci0jZGVmaW5lIEpaX0RNQV9SRUdfRENJUlFN CTB4MTAyYworI2RlZmluZSBKWl9ETUFfUkVHX0RNQUMJCTB4MDAKKyNkZWZpbmUgSlpfRE1BX1JF R19ESVJRUAkweDA0CisjZGVmaW5lIEpaX0RNQV9SRUdfRERSCQkweDA4CisjZGVmaW5lIEpaX0RN QV9SRUdfRERSUwkJMHgwYworI2RlZmluZSBKWl9ETUFfUkVHX0RNQUNQCTB4MWMKKyNkZWZpbmUg SlpfRE1BX1JFR19EU0lSUVAJMHgyMAorI2RlZmluZSBKWl9ETUFfUkVHX0RTSVJRTQkweDI0Cisj ZGVmaW5lIEpaX0RNQV9SRUdfRENJUlFQCTB4MjgKKyNkZWZpbmUgSlpfRE1BX1JFR19EQ0lSUU0J MHgyYwogCiAvKiBQZXItY2hhbm5lbCByZWdpc3RlcnMuICovCiAjZGVmaW5lIEpaX0RNQV9SRUdf Q0hBTihuKQkobiAqIDB4MjApCi0jZGVmaW5lIEpaX0RNQV9SRUdfRFNBKG4pCSgweDAwICsgSlpf RE1BX1JFR19DSEFOKG4pKQotI2RlZmluZSBKWl9ETUFfUkVHX0RUQShuKQkoMHgwNCArIEpaX0RN QV9SRUdfQ0hBTihuKSkKLSNkZWZpbmUgSlpfRE1BX1JFR19EVEMobikJKDB4MDggKyBKWl9ETUFf UkVHX0NIQU4obikpCi0jZGVmaW5lIEpaX0RNQV9SRUdfRFJUKG4pCSgweDBjICsgSlpfRE1BX1JF R19DSEFOKG4pKQotI2RlZmluZSBKWl9ETUFfUkVHX0RDUyhuKQkoMHgxMCArIEpaX0RNQV9SRUdf Q0hBTihuKSkKLSNkZWZpbmUgSlpfRE1BX1JFR19EQ00obikJKDB4MTQgKyBKWl9ETUFfUkVHX0NI QU4obikpCi0jZGVmaW5lIEpaX0RNQV9SRUdfRERBKG4pCSgweDE4ICsgSlpfRE1BX1JFR19DSEFO KG4pKQotI2RlZmluZSBKWl9ETUFfUkVHX0RTRChuKQkoMHgxYyArIEpaX0RNQV9SRUdfQ0hBTihu KSkKKyNkZWZpbmUgSlpfRE1BX1JFR19EU0EJCTB4MDAKKyNkZWZpbmUgSlpfRE1BX1JFR19EVEEJ CTB4MDQKKyNkZWZpbmUgSlpfRE1BX1JFR19EVEMJCTB4MDgKKyNkZWZpbmUgSlpfRE1BX1JFR19E UlQJCTB4MGMKKyNkZWZpbmUgSlpfRE1BX1JFR19EQ1MJCTB4MTAKKyNkZWZpbmUgSlpfRE1BX1JF R19EQ00JCTB4MTQKKyNkZWZpbmUgSlpfRE1BX1JFR19EREEJCTB4MTgKKyNkZWZpbmUgSlpfRE1B X1JFR19EU0QJCTB4MWMKIAogI2RlZmluZSBKWl9ETUFfRE1BQ19ETUFFCUJJVCgwKQogI2RlZmlu ZSBKWl9ETUFfRE1BQ19BUgkJQklUKDIpCkBAIC0xNDAsNyArMTQwLDggQEAgZW51bSBqel92ZXJz aW9uIHsKIAogc3RydWN0IGp6NDc4MF9kbWFfZGV2IHsKIAlzdHJ1Y3QgZG1hX2RldmljZSBkbWFf ZGV2aWNlOwotCXZvaWQgX19pb21lbSAqYmFzZTsKKwl2b2lkIF9faW9tZW0gKmNobl9iYXNlOwor CXZvaWQgX19pb21lbSAqY3RybF9iYXNlOwogCXN0cnVjdCBjbGsgKmNsazsKIAl1bnNpZ25lZCBp bnQgaXJxOwogCXVuc2lnbmVkIGludCBuYl9jaGFubmVsczsKQEAgLTE3NCwxNiArMTc1LDI4IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IGp6NDc4MF9kbWFfZGV2ICpqejQ3ODBfZG1hX2NoYW5fcGFy ZW50KAogCQkJICAgIGRtYV9kZXZpY2UpOwogfQogCi1zdGF0aWMgaW5saW5lIHVpbnQzMl90IGp6 NDc4MF9kbWFfcmVhZGwoc3RydWN0IGp6NDc4MF9kbWFfZGV2ICpqemRtYSwKK3N0YXRpYyBpbmxp bmUgdWludDMyX3Qgano0NzgwX2RtYV9jaG5fcmVhZGwoc3RydWN0IGp6NDc4MF9kbWFfZGV2ICpq emRtYSwKKwl1bnNpZ25lZCBpbnQgY2huLCB1bnNpZ25lZCBpbnQgcmVnKQoreworCXJldHVybiBy ZWFkbChqemRtYS0+Y2huX2Jhc2UgKyByZWcgKyBKWl9ETUFfUkVHX0NIQU4oY2huKSk7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZCBqejQ3ODBfZG1hX2Nobl93cml0ZWwoc3RydWN0IGp6NDc4MF9k bWFfZGV2ICpqemRtYSwKKwl1bnNpZ25lZCBpbnQgY2huLCB1bnNpZ25lZCBpbnQgcmVnLCB1aW50 MzJfdCB2YWwpCit7CisJd3JpdGVsKHZhbCwganpkbWEtPmNobl9iYXNlICsgcmVnICsgSlpfRE1B X1JFR19DSEFOKGNobikpOworfQorCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IGp6NDc4MF9kbWFf Y3RybF9yZWFkbChzdHJ1Y3Qgano0NzgwX2RtYV9kZXYgKmp6ZG1hLAogCXVuc2lnbmVkIGludCBy ZWcpCiB7Ci0JcmV0dXJuIHJlYWRsKGp6ZG1hLT5iYXNlICsgcmVnKTsKKwlyZXR1cm4gcmVhZGwo anpkbWEtPmN0cmxfYmFzZSArIHJlZyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBqejQ3ODBf ZG1hX3dyaXRlbChzdHJ1Y3Qgano0NzgwX2RtYV9kZXYgKmp6ZG1hLAorc3RhdGljIGlubGluZSB2 b2lkIGp6NDc4MF9kbWFfY3RybF93cml0ZWwoc3RydWN0IGp6NDc4MF9kbWFfZGV2ICpqemRtYSwK IAl1bnNpZ25lZCBpbnQgcmVnLCB1aW50MzJfdCB2YWwpCiB7Ci0Jd3JpdGVsKHZhbCwganpkbWEt PmJhc2UgKyByZWcpOworCXdyaXRlbCh2YWwsIGp6ZG1hLT5jdHJsX2Jhc2UgKyByZWcpOwogfQog CiBzdGF0aWMgc3RydWN0IGp6NDc4MF9kbWFfZGVzYyAqano0NzgwX2RtYV9kZXNjX2FsbG9jKApA QCAtNDc4LDE3ICs0OTEsMTggQEAgc3RhdGljIHZvaWQgano0NzgwX2RtYV9iZWdpbihzdHJ1Y3Qg ano0NzgwX2RtYV9jaGFuICpqemNoYW4pCiAJfQogCiAJLyogVXNlIDgtd29yZCBkZXNjcmlwdG9y cy4gKi8KLQlqejQ3ODBfZG1hX3dyaXRlbChqemRtYSwgSlpfRE1BX1JFR19EQ1MoanpjaGFuLT5p ZCksIEpaX0RNQV9EQ1NfREVTOCk7CisJano0NzgwX2RtYV9jaG5fd3JpdGVsKGp6ZG1hLCBqemNo YW4tPmlkLAorCQkJICAgICAgSlpfRE1BX1JFR19EQ1MsIEpaX0RNQV9EQ1NfREVTOCk7CiAKIAkv KiBXcml0ZSBkZXNjcmlwdG9yIGFkZHJlc3MgYW5kIGluaXRpYXRlIGRlc2NyaXB0b3IgZmV0Y2gu ICovCiAJZGVzY19waHlzID0ganpjaGFuLT5kZXNjLT5kZXNjX3BoeXMgKwogCQkgICAgKGp6Y2hh bi0+Y3Vycl9od2Rlc2MgKiBzaXplb2YoKmp6Y2hhbi0+ZGVzYy0+ZGVzYykpOwotCWp6NDc4MF9k bWFfd3JpdGVsKGp6ZG1hLCBKWl9ETUFfUkVHX0REQShqemNoYW4tPmlkKSwgZGVzY19waHlzKTsK LQlqejQ3ODBfZG1hX3dyaXRlbChqemRtYSwgSlpfRE1BX1JFR19ERFJTLCBCSVQoanpjaGFuLT5p ZCkpOworCWp6NDc4MF9kbWFfY2huX3dyaXRlbChqemRtYSwganpjaGFuLT5pZCwgSlpfRE1BX1JF R19EREEsIGRlc2NfcGh5cyk7CisJano0NzgwX2RtYV9jdHJsX3dyaXRlbChqemRtYSwgSlpfRE1B X1JFR19ERFJTLCBCSVQoanpjaGFuLT5pZCkpOwogCiAJLyogRW5hYmxlIHRoZSBjaGFubmVsLiAq LwotCWp6NDc4MF9kbWFfd3JpdGVsKGp6ZG1hLCBKWl9ETUFfUkVHX0RDUyhqemNoYW4tPmlkKSwK LQkJCSAgSlpfRE1BX0RDU19ERVM4IHwgSlpfRE1BX0RDU19DVEUpOworCWp6NDc4MF9kbWFfY2hu X3dyaXRlbChqemRtYSwganpjaGFuLT5pZCwgSlpfRE1BX1JFR19EQ1MsCisJCQkgICAgICBKWl9E TUFfRENTX0RFUzggfCBKWl9ETUFfRENTX0NURSk7CiB9CiAKIHN0YXRpYyB2b2lkIGp6NDc4MF9k bWFfaXNzdWVfcGVuZGluZyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4pCkBAIC01MTQsNyArNTI4LDcg QEAgc3RhdGljIGludCBqejQ3ODBfZG1hX3Rlcm1pbmF0ZV9hbGwoc3RydWN0IGRtYV9jaGFuICpj aGFuKQogCXNwaW5fbG9ja19pcnFzYXZlKCZqemNoYW4tPnZjaGFuLmxvY2ssIGZsYWdzKTsKIAog CS8qIENsZWFyIHRoZSBETUEgc3RhdHVzIGFuZCBzdG9wIHRoZSB0cmFuc2Zlci4gKi8KLQlqejQ3 ODBfZG1hX3dyaXRlbChqemRtYSwgSlpfRE1BX1JFR19EQ1MoanpjaGFuLT5pZCksIDApOworCWp6 NDc4MF9kbWFfY2huX3dyaXRlbChqemRtYSwganpjaGFuLT5pZCwgSlpfRE1BX1JFR19EQ1MsIDAp OwogCWlmIChqemNoYW4tPmRlc2MpIHsKIAkJdmNoYW5fdGVybWluYXRlX3ZkZXNjKCZqemNoYW4t PmRlc2MtPnZkZXNjKTsKIAkJanpjaGFuLT5kZXNjID0gTlVMTDsKQEAgLTU2Myw4ICs1NzcsOCBA QCBzdGF0aWMgc2l6ZV90IGp6NDc4MF9kbWFfZGVzY19yZXNpZHVlKHN0cnVjdCBqejQ3ODBfZG1h X2NoYW4gKmp6Y2hhbiwKIAkJcmVzaWR1ZSArPSBkZXNjLT5kZXNjW2ldLmR0YyA8PCBqemNoYW4t PnRyYW5zZmVyX3NoaWZ0OwogCiAJaWYgKG5leHRfc2cgIT0gMCkgewotCQljb3VudCA9IGp6NDc4 MF9kbWFfcmVhZGwoanpkbWEsCi0JCQkJCSBKWl9ETUFfUkVHX0RUQyhqemNoYW4tPmlkKSk7CisJ CWNvdW50ID0gano0NzgwX2RtYV9jaG5fcmVhZGwoanpkbWEsIGp6Y2hhbi0+aWQsCisJCQkJCSBK Wl9ETUFfUkVHX0RUQyk7CiAJCXJlc2lkdWUgKz0gY291bnQgPDwganpjaGFuLT50cmFuc2Zlcl9z aGlmdDsKIAl9CiAKQEAgLTYxMSw4ICs2MjUsOCBAQCBzdGF0aWMgdm9pZCBqejQ3ODBfZG1hX2No YW5faXJxKHN0cnVjdCBqejQ3ODBfZG1hX2RldiAqanpkbWEsCiAKIAlzcGluX2xvY2soJmp6Y2hh bi0+dmNoYW4ubG9jayk7CiAKLQlkY3MgPSBqejQ3ODBfZG1hX3JlYWRsKGp6ZG1hLCBKWl9ETUFf UkVHX0RDUyhqemNoYW4tPmlkKSk7Ci0Jano0NzgwX2RtYV93cml0ZWwoanpkbWEsIEpaX0RNQV9S RUdfRENTKGp6Y2hhbi0+aWQpLCAwKTsKKwlkY3MgPSBqejQ3ODBfZG1hX2Nobl9yZWFkbChqemRt YSwganpjaGFuLT5pZCwgSlpfRE1BX1JFR19EQ1MpOworCWp6NDc4MF9kbWFfY2huX3dyaXRlbChq emRtYSwganpjaGFuLT5pZCwgSlpfRE1BX1JFR19EQ1MsIDApOwogCiAJaWYgKGRjcyAmIEpaX0RN QV9EQ1NfQVIpIHsKIAkJZGV2X3dhcm4oJmp6Y2hhbi0+dmNoYW4uY2hhbi5kZXYtPmRldmljZSwK QEAgLTY1MSw3ICs2NjUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgano0NzgwX2RtYV9pcnFfaGFu ZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQogCXVpbnQzMl90IHBlbmRpbmcsIGRtYWM7CiAJaW50 IGk7CiAKLQlwZW5kaW5nID0gano0NzgwX2RtYV9yZWFkbChqemRtYSwgSlpfRE1BX1JFR19ESVJR UCk7CisJcGVuZGluZyA9IGp6NDc4MF9kbWFfY3RybF9yZWFkbChqemRtYSwgSlpfRE1BX1JFR19E SVJRUCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwganpkbWEtPm5iX2NoYW5uZWxzOyBpKyspIHsKIAkJ aWYgKCEocGVuZGluZyAmICgxPDxpKSkpCkBAIC02NjEsMTIgKzY3NSwxMiBAQCBzdGF0aWMgaXJx cmV0dXJuX3Qgano0NzgwX2RtYV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQogCX0K IAogCS8qIENsZWFyIGhhbHQgYW5kIGFkZHJlc3MgZXJyb3Igc3RhdHVzIG9mIGFsbCBjaGFubmVs cy4gKi8KLQlkbWFjID0gano0NzgwX2RtYV9yZWFkbChqemRtYSwgSlpfRE1BX1JFR19ETUFDKTsK KwlkbWFjID0gano0NzgwX2RtYV9jdHJsX3JlYWRsKGp6ZG1hLCBKWl9ETUFfUkVHX0RNQUMpOwog CWRtYWMgJj0gfihKWl9ETUFfRE1BQ19ITFQgfCBKWl9ETUFfRE1BQ19BUik7Ci0Jano0NzgwX2Rt YV93cml0ZWwoanpkbWEsIEpaX0RNQV9SRUdfRE1BQywgZG1hYyk7CisJano0NzgwX2RtYV9jdHJs X3dyaXRlbChqemRtYSwgSlpfRE1BX1JFR19ETUFDLCBkbWFjKTsKIAogCS8qIENsZWFyIGludGVy cnVwdCBwZW5kaW5nIHN0YXR1cy4gKi8KLQlqejQ3ODBfZG1hX3dyaXRlbChqemRtYSwgSlpfRE1B X1JFR19ESVJRUCwgMCk7CisJano0NzgwX2RtYV9jdHJsX3dyaXRlbChqemRtYSwgSlpfRE1BX1JF R19ESVJRUCwgMCk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC04MDQsOSArODE4LDE5 IEBAIHN0YXRpYyBpbnQgano0NzgwX2RtYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlqemRtYS0+YmFzZSA9IGRldm1faW9yZW1h cF9yZXNvdXJjZShkZXYsIHJlcyk7Ci0JaWYgKElTX0VSUihqemRtYS0+YmFzZSkpCi0JCXJldHVy biBQVFJfRVJSKGp6ZG1hLT5iYXNlKTsKKwlqemRtYS0+Y2huX2Jhc2UgPSBkZXZtX2lvcmVtYXBf cmVzb3VyY2UoZGV2LCByZXMpOworCWlmIChJU19FUlIoanpkbWEtPmNobl9iYXNlKSkKKwkJcmV0 dXJuIFBUUl9FUlIoanpkbWEtPmNobl9iYXNlKTsKKworCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNv dXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMSk7CisJaWYgKCFyZXMpIHsKKwkJZGV2X2Vycihk ZXYsICJmYWlsZWQgdG8gZ2V0IEkvTyBtZW1vcnlcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisKKwlqemRtYS0+Y3RybF9iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsK KwlpZiAoSVNfRVJSKGp6ZG1hLT5jdHJsX2Jhc2UpKQorCQlyZXR1cm4gUFRSX0VSUihqemRtYS0+ Y3RybF9iYXNlKTsKIAogCXJldCA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CiAJaWYgKHJl dCA8IDApIHsKQEAgLTg2NCw5ICs4ODgsOSBAQCBzdGF0aWMgaW50IGp6NDc4MF9kbWFfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkgKiBBbHNvIHNldCB0aGUgRk1TQyBiaXQg LSBpdCBpbmNyZWFzZXMgTVNDIHBlcmZvcm1hbmNlLCBzbyBpdCBtYWtlcwogCSAqIGxpdHRsZSBz ZW5zZSBub3QgdG8gZW5hYmxlIGl0LgogCSAqLwotCWp6NDc4MF9kbWFfd3JpdGVsKGp6ZG1hLCBK Wl9ETUFfUkVHX0RNQUMsCisJano0NzgwX2RtYV9jdHJsX3dyaXRlbChqemRtYSwgSlpfRE1BX1JF R19ETUFDLAogCQkJICBKWl9ETUFfRE1BQ19ETUFFIHwgSlpfRE1BX0RNQUNfRk1TQyk7Ci0Jano0 NzgwX2RtYV93cml0ZWwoanpkbWEsIEpaX0RNQV9SRUdfRE1BQ1AsIDApOworCWp6NDc4MF9kbWFf Y3RybF93cml0ZWwoanpkbWEsIEpaX0RNQV9SRUdfRE1BQ1AsIDApOwogCiAJSU5JVF9MSVNUX0hF QUQoJmRkLT5jaGFubmVscyk7CiAK