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: [v9,2/4] dmaengine: fsl-edma: add edma version and configurable registers From: Angelo Dureghello Message-Id: <20180811112649.20752-2-angelo@sysam.it> Date: Sat, 11 Aug 2018 13:26:47 +0200 To: vinod.koul@linaro.org Cc: dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-m68k@vger.kernel.org, stefan@agner.ch, krzk@kernel.org, Angelo Dureghello List-ID: VGhpcyBwYXRjaCBhZGRzIGNvbmZpZ3VyYWJsZSByZWdpc3RlcnMgKHVzaW5nIF9faW9tZW0gYWRk cmVzc2VzKQp0byBhbGxvdyB0aGUgdXNlIG9mIGZzbC1lZG1hLWNvbW1vbiBjb2RlIHdpdGggc2xp Z2h0bHkgZGlmZmVyZW50CmVkbWEgbW9kdWxlIHZlcnNpb25zLCBhcyBWeWJyaWQgKHYxKSBhbmQg Q29sZEZpcmUgKHYyKSBhcmUuCgpTaWduZWQtb2ZmLWJ5OiBBbmdlbG8gRHVyZWdoZWxsbyA8YW5n ZWxvQHN5c2FtLml0PgotLS0KQ2hhbmdlcyBmb3Igdjg6Ci0gcGF0Y2ggcmV3cml0dGVuIGZyb20g c2NyYXRjaCwgdGhpcyBwYXRjaCAoMi8zKSBoYXMganVzdCBiZWVuIGFkZGVkLgoKQ2hhbmdlcyBm b3Igdjk6Ci0gY29tbWVudCBzeW50YXggZml4ZWQsCi0gc3BsaXR0ZWQgbWFjcm8gY2hhbmdlcyBh d2F5IGZyb20gdGhpcyBwYXRjaC4KLS0tCiBkcml2ZXJzL2RtYS9mc2wtZWRtYS1jb21tb24uYyB8 IDEwNiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2RtYS9mc2wt ZWRtYS1jb21tb24uaCB8ICA2MiArKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9kbWEvZnNs LWVkbWEuYyAgICAgICAgfCAgMzIgKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5z ZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvZnNs LWVkbWEtY29tbW9uLmMgYi9kcml2ZXJzL2RtYS9mc2wtZWRtYS1jb21tb24uYwppbmRleCAzZmM3 ODZiM2QwM2MuLjIyNzAzNGRlMjU2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEvZnNsLWVkbWEt Y29tbW9uLmMKKysrIGIvZHJpdmVycy9kbWEvZnNsLWVkbWEtY29tbW9uLmMKQEAgLTQzLDIwICs0 MywyMCBAQAogCiBzdGF0aWMgdm9pZCBmc2xfZWRtYV9lbmFibGVfcmVxdWVzdChzdHJ1Y3QgZnNs X2VkbWFfY2hhbiAqZnNsX2NoYW4pCiB7Ci0Jdm9pZCBfX2lvbWVtICphZGRyID0gZnNsX2NoYW4t PmVkbWEtPm1lbWJhc2U7CisJc3RydWN0IGVkbWFfcmVncyAqcmVncyA9ICZmc2xfY2hhbi0+ZWRt YS0+cmVnczsKIAl1MzIgY2ggPSBmc2xfY2hhbi0+dmNoYW4uY2hhbi5jaGFuX2lkOwogCi0JZWRt YV93cml0ZWIoZnNsX2NoYW4tPmVkbWEsIEVETUFfU0VFSV9TRUVJKGNoKSwgYWRkciArIEVETUFf U0VFSSk7Ci0JZWRtYV93cml0ZWIoZnNsX2NoYW4tPmVkbWEsIGNoLCBhZGRyICsgRURNQV9TRVJR KTsKKwllZG1hX3dyaXRlYihmc2xfY2hhbi0+ZWRtYSwgRURNQV9TRUVJX1NFRUkoY2gpLCByZWdz LT5zZWVpKTsKKwllZG1hX3dyaXRlYihmc2xfY2hhbi0+ZWRtYSwgY2gsIHJlZ3MtPnNlcnEpOwog fQogCiB2b2lkIGZzbF9lZG1hX2Rpc2FibGVfcmVxdWVzdChzdHJ1Y3QgZnNsX2VkbWFfY2hhbiAq ZnNsX2NoYW4pCiB7Ci0Jdm9pZCBfX2lvbWVtICphZGRyID0gZnNsX2NoYW4tPmVkbWEtPm1lbWJh c2U7CisJc3RydWN0IGVkbWFfcmVncyAqcmVncyA9ICZmc2xfY2hhbi0+ZWRtYS0+cmVnczsKIAl1 MzIgY2ggPSBmc2xfY2hhbi0+dmNoYW4uY2hhbi5jaGFuX2lkOwogCi0JZWRtYV93cml0ZWIoZnNs X2NoYW4tPmVkbWEsIGNoLCBhZGRyICsgRURNQV9DRVJRKTsKLQllZG1hX3dyaXRlYihmc2xfY2hh bi0+ZWRtYSwgRURNQV9DRUVJX0NFRUkoY2gpLCBhZGRyICsgRURNQV9DRUVJKTsKKwllZG1hX3dy aXRlYihmc2xfY2hhbi0+ZWRtYSwgY2gsIHJlZ3MtPmNlcnEpOworCWVkbWFfd3JpdGViKGZzbF9j aGFuLT5lZG1hLCBFRE1BX0NFRUlfQ0VFSShjaCksIHJlZ3MtPmNlZWkpOwogfQogRVhQT1JUX1NZ TUJPTF9HUEwoZnNsX2VkbWFfZGlzYWJsZV9yZXF1ZXN0KTsKIApAQCAtMTg0LDcgKzE4NCw3IEBA IHN0YXRpYyBzaXplX3QgZnNsX2VkbWFfZGVzY19yZXNpZHVlKHN0cnVjdCBmc2xfZWRtYV9jaGFu ICpmc2xfY2hhbiwKIAkJc3RydWN0IHZpcnRfZG1hX2Rlc2MgKnZkZXNjLCBib29sIGluX3Byb2dy ZXNzKQogewogCXN0cnVjdCBmc2xfZWRtYV9kZXNjICplZGVzYyA9IGZzbF9jaGFuLT5lZGVzYzsK LQl2b2lkIF9faW9tZW0gKmFkZHIgPSBmc2xfY2hhbi0+ZWRtYS0+bWVtYmFzZTsKKwlzdHJ1Y3Qg ZWRtYV9yZWdzICpyZWdzID0gJmZzbF9jaGFuLT5lZG1hLT5yZWdzOwogCXUzMiBjaCA9IGZzbF9j aGFuLT52Y2hhbi5jaGFuLmNoYW5faWQ7CiAJZW51bSBkbWFfdHJhbnNmZXJfZGlyZWN0aW9uIGRp ciA9IGZzbF9jaGFuLT5mc2MuZGlyOwogCWRtYV9hZGRyX3QgY3VyX2FkZHIsIGRtYV9hZGRyOwpA QCAtMjAwLDExICsyMDAsOSBAQCBzdGF0aWMgc2l6ZV90IGZzbF9lZG1hX2Rlc2NfcmVzaWR1ZShz dHJ1Y3QgZnNsX2VkbWFfY2hhbiAqZnNsX2NoYW4sCiAJCXJldHVybiBsZW47CiAKIAlpZiAoZGly ID09IERNQV9NRU1fVE9fREVWKQotCQljdXJfYWRkciA9IGVkbWFfcmVhZGwoCi0JCQlmc2xfY2hh bi0+ZWRtYSwgYWRkciArIEVETUFfVENEX1NBRERSKGNoKSk7CisJCWN1cl9hZGRyID0gZWRtYV9y ZWFkbChmc2xfY2hhbi0+ZWRtYSwgJnJlZ3MtPnRjZFtjaF0uc2FkZHIpOwogCWVsc2UKLQkJY3Vy X2FkZHIgPSBlZG1hX3JlYWRsKAotCQkJZnNsX2NoYW4tPmVkbWEsIGFkZHIgKyBFRE1BX1RDRF9E QUREUihjaCkpOworCQljdXJfYWRkciA9IGVkbWFfcmVhZGwoZnNsX2NoYW4tPmVkbWEsICZyZWdz LT50Y2RbY2hdLmRhZGRyKTsKIAogCS8qIGZpZ3VyZSBvdXQgdGhlIGZpbmlzaGVkIGFuZCBjYWxj dWxhdGUgdGhlIHJlc2lkdWUgKi8KIAlmb3IgKGkgPSAwOyBpIDwgZnNsX2NoYW4tPmVkZXNjLT5u X3RjZHM7IGkrKykgewpAQCAtMjYxLDcgKzI1OSw3IEBAIHN0YXRpYyB2b2lkIGZzbF9lZG1hX3Nl dF90Y2RfcmVncyhzdHJ1Y3QgZnNsX2VkbWFfY2hhbiAqZnNsX2NoYW4sCiAJCQkJICBzdHJ1Y3Qg ZnNsX2VkbWFfaHdfdGNkICp0Y2QpCiB7CiAJc3RydWN0IGZzbF9lZG1hX2VuZ2luZSAqZWRtYSA9 IGZzbF9jaGFuLT5lZG1hOwotCXZvaWQgX19pb21lbSAqYWRkciA9IGZzbF9jaGFuLT5lZG1hLT5t ZW1iYXNlOworCXN0cnVjdCBlZG1hX3JlZ3MgKnJlZ3MgPSAmZnNsX2NoYW4tPmVkbWEtPnJlZ3M7 CiAJdTMyIGNoID0gZnNsX2NoYW4tPnZjaGFuLmNoYW4uY2hhbl9pZDsKIAogCS8qCkBAIC0yNjks MjQgKzI2NywyNCBAQCBzdGF0aWMgdm9pZCBmc2xfZWRtYV9zZXRfdGNkX3JlZ3Moc3RydWN0IGZz bF9lZG1hX2NoYW4gKmZzbF9jaGFuLAogCSAqIGVuZGlhbiBmb3JtYXQuIEhvd2V2ZXIsIHdlIG5l ZWQgdG8gbG9hZCB0aGUgVENEIHJlZ2lzdGVycyBpbgogCSAqIGJpZy0gb3IgbGl0dGxlLWVuZGlh biBvYmV5aW5nIHRoZSBlRE1BIGVuZ2luZSBtb2RlbCBlbmRpYW4uCiAJICovCi0JZWRtYV93cml0 ZXcoZWRtYSwgMCwgYWRkciArIEVETUFfVENEX0NTUihjaCkpOwotCWVkbWFfd3JpdGVsKGVkbWEs IGxlMzJfdG9fY3B1KHRjZC0+c2FkZHIpLCBhZGRyICsgRURNQV9UQ0RfU0FERFIoY2gpKTsKLQll ZG1hX3dyaXRlbChlZG1hLCBsZTMyX3RvX2NwdSh0Y2QtPmRhZGRyKSwgYWRkciArIEVETUFfVENE X0RBRERSKGNoKSk7CisJZWRtYV93cml0ZXcoZWRtYSwgMCwgICZyZWdzLT50Y2RbY2hdLmNzcik7 CisJZWRtYV93cml0ZWwoZWRtYSwgbGUzMl90b19jcHUodGNkLT5zYWRkciksICZyZWdzLT50Y2Rb Y2hdLnNhZGRyKTsKKwllZG1hX3dyaXRlbChlZG1hLCBsZTMyX3RvX2NwdSh0Y2QtPmRhZGRyKSwg JnJlZ3MtPnRjZFtjaF0uZGFkZHIpOwogCi0JZWRtYV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUo dGNkLT5hdHRyKSwgYWRkciArIEVETUFfVENEX0FUVFIoY2gpKTsKLQllZG1hX3dyaXRldyhlZG1h LCBsZTE2X3RvX2NwdSh0Y2QtPnNvZmYpLCBhZGRyICsgRURNQV9UQ0RfU09GRihjaCkpOworCWVk bWFfd3JpdGV3KGVkbWEsIGxlMTZfdG9fY3B1KHRjZC0+YXR0ciksICZyZWdzLT50Y2RbY2hdLmF0 dHIpOworCWVkbWFfd3JpdGV3KGVkbWEsIGxlMTZfdG9fY3B1KHRjZC0+c29mZiksICZyZWdzLT50 Y2RbY2hdLnNvZmYpOwogCi0JZWRtYV93cml0ZWwoZWRtYSwgbGUzMl90b19jcHUodGNkLT5uYnl0 ZXMpLCBhZGRyICsgRURNQV9UQ0RfTkJZVEVTKGNoKSk7Ci0JZWRtYV93cml0ZWwoZWRtYSwgbGUz Ml90b19jcHUodGNkLT5zbGFzdCksIGFkZHIgKyBFRE1BX1RDRF9TTEFTVChjaCkpOworCWVkbWFf d3JpdGVsKGVkbWEsIGxlMzJfdG9fY3B1KHRjZC0+bmJ5dGVzKSwgJnJlZ3MtPnRjZFtjaF0ubmJ5 dGVzKTsKKwllZG1hX3dyaXRlbChlZG1hLCBsZTMyX3RvX2NwdSh0Y2QtPnNsYXN0KSwgJnJlZ3Mt PnRjZFtjaF0uc2xhc3QpOwogCi0JZWRtYV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUodGNkLT5j aXRlciksIGFkZHIgKyBFRE1BX1RDRF9DSVRFUihjaCkpOwotCWVkbWFfd3JpdGV3KGVkbWEsIGxl MTZfdG9fY3B1KHRjZC0+Yml0ZXIpLCBhZGRyICsgRURNQV9UQ0RfQklURVIoY2gpKTsKLQllZG1h X3dyaXRldyhlZG1hLCBsZTE2X3RvX2NwdSh0Y2QtPmRvZmYpLCBhZGRyICsgRURNQV9UQ0RfRE9G RihjaCkpOworCWVkbWFfd3JpdGV3KGVkbWEsIGxlMTZfdG9fY3B1KHRjZC0+Y2l0ZXIpLCAmcmVn cy0+dGNkW2NoXS5jaXRlcik7CisJZWRtYV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUodGNkLT5i aXRlciksICZyZWdzLT50Y2RbY2hdLmJpdGVyKTsKKwllZG1hX3dyaXRldyhlZG1hLCBsZTE2X3Rv X2NwdSh0Y2QtPmRvZmYpLCAmcmVncy0+dGNkW2NoXS5kb2ZmKTsKIAotCWVkbWFfd3JpdGVsKGVk bWEsCi0JCSAgICBsZTMyX3RvX2NwdSh0Y2QtPmRsYXN0X3NnYSksIGFkZHIgKyBFRE1BX1RDRF9E TEFTVF9TR0EoY2gpKTsKKwllZG1hX3dyaXRlbChlZG1hLCBsZTMyX3RvX2NwdSh0Y2QtPmRsYXN0 X3NnYSksCisJCQkmcmVncy0+dGNkW2NoXS5kbGFzdF9zZ2EpOwogCi0JZWRtYV93cml0ZXcoZWRt YSwgbGUxNl90b19jcHUodGNkLT5jc3IpLCBhZGRyICsgRURNQV9UQ0RfQ1NSKGNoKSk7CisJZWRt YV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUodGNkLT5jc3IpLCAmcmVncy0+dGNkW2NoXS5jc3Ip OwogfQogCiBzdGF0aWMgaW5saW5lCkBAIC0zMDgsMTUgKzMwNiwxNSBAQCB2b2lkIGZzbF9lZG1h X2ZpbGxfdGNkKHN0cnVjdCBmc2xfZWRtYV9od190Y2QgKnRjZCwgdTMyIHNyYywgdTMyIGRzdCwK IAogCXRjZC0+YXR0ciA9IGNwdV90b19sZTE2KGF0dHIpOwogCi0JdGNkLT5zb2ZmID0gY3B1X3Rv X2xlMTYoRURNQV9UQ0RfU09GRl9TT0ZGKHNvZmYpKTsKKwl0Y2QtPnNvZmYgPSBjcHVfdG9fbGUx Nihzb2ZmKTsKIAotCXRjZC0+bmJ5dGVzID0gY3B1X3RvX2xlMzIoRURNQV9UQ0RfTkJZVEVTX05C WVRFUyhuYnl0ZXMpKTsKLQl0Y2QtPnNsYXN0ID0gY3B1X3RvX2xlMzIoRURNQV9UQ0RfU0xBU1Rf U0xBU1Qoc2xhc3QpKTsKKwl0Y2QtPm5ieXRlcyA9IGNwdV90b19sZTMyKG5ieXRlcyk7CisJdGNk LT5zbGFzdCA9IGNwdV90b19sZTMyKHNsYXN0KTsKIAogCXRjZC0+Y2l0ZXIgPSBjcHVfdG9fbGUx NihFRE1BX1RDRF9DSVRFUl9DSVRFUihjaXRlcikpOwotCXRjZC0+ZG9mZiA9IGNwdV90b19sZTE2 KEVETUFfVENEX0RPRkZfRE9GRihkb2ZmKSk7CisJdGNkLT5kb2ZmID0gY3B1X3RvX2xlMTYoZG9m Zik7CiAKLQl0Y2QtPmRsYXN0X3NnYSA9IGNwdV90b19sZTMyKEVETUFfVENEX0RMQVNUX1NHQV9E TEFTVF9TR0EoZGxhc3Rfc2dhKSk7CisJdGNkLT5kbGFzdF9zZ2EgPSBjcHVfdG9fbGUzMihkbGFz dF9zZ2EpOwogCiAJdGNkLT5iaXRlciA9IGNwdV90b19sZTE2KEVETUFfVENEX0JJVEVSX0JJVEVS KGJpdGVyKSk7CiAJaWYgKG1ham9yX2ludCkKQEAgLTU0OSw0ICs1NDcsNTIgQEAgdm9pZCBmc2xf ZWRtYV9jbGVhbnVwX3ZjaGFuKHN0cnVjdCBkbWFfZGV2aWNlICpkbWFkZXYpCiB9CiBFWFBPUlRf U1lNQk9MX0dQTChmc2xfZWRtYV9jbGVhbnVwX3ZjaGFuKTsKIAorLyoKKyAqIE9uIHRoZSAzMiBj aGFubmVscyBWeWJyaWQvbXBjNTc3eCBlZG1hIHZlcnNpb24gKGhlcmUgY2FsbGVkICJ2MSIpLAor ICogcmVnaXN0ZXIgb2Zmc2V0cyBhcmUgZGlmZmVyZW50IGNvbXBhcmVkIHRvIENvbGRGaXJlIG1j ZjU0NDF4IDY0IGNoYW5uZWxzCisgKiBlZG1hIChoZXJlIGNhbGxlZCAidjIiKS4KKyAqCisgKiBU aGlzIGZ1bmN0aW9uIHNldHMgdXAgcmVnaXN0ZXIgb2Zmc2V0cyBhcyBwZXIgcHJvcGVyIGRlY2xh cmVkIHZlcnNpb24KKyAqIHNvIG11c3QgYmUgY2FsbGVkIGluIHh4eF9lZG1hX3Byb2JlKCkganVz dCBhZnRlciBzZXR0aW5nIHRoZQorICogZWRtYSAidmVyc2lvbiIgYW5kICJtZW1iYXNlIiBhcHBy b3ByaWF0ZWx5LgorICovCit2b2lkIGZzbF9lZG1hX3NldHVwX3JlZ3Moc3RydWN0IGZzbF9lZG1h X2VuZ2luZSAqZWRtYSkKK3sKKwllZG1hLT5yZWdzLmNyID0gZWRtYS0+bWVtYmFzZSArIEVETUFf Q1I7CisJZWRtYS0+cmVncy5lcyA9IGVkbWEtPm1lbWJhc2UgKyBFRE1BX0VTOworCWVkbWEtPnJl Z3MuZXJxbCA9IGVkbWEtPm1lbWJhc2UgKyBFRE1BX0VSUTsKKwllZG1hLT5yZWdzLmVlaWwgPSBl ZG1hLT5tZW1iYXNlICsgRURNQV9FRUk7CisKKwllZG1hLT5yZWdzLnNlcnEgPSBlZG1hLT5tZW1i YXNlICsgKChlZG1hLT52ZXJzaW9uID09IHYxKSA/CisJCQlFRE1BX1NFUlEgOiBFRE1BNjRfU0VS USk7CisJZWRtYS0+cmVncy5jZXJxID0gZWRtYS0+bWVtYmFzZSArICgoZWRtYS0+dmVyc2lvbiA9 PSB2MSkgPworCQkJRURNQV9DRVJRIDogRURNQTY0X0NFUlEpOworCWVkbWEtPnJlZ3Muc2VlaSA9 IGVkbWEtPm1lbWJhc2UgKyAoKGVkbWEtPnZlcnNpb24gPT0gdjEpID8KKwkJCUVETUFfU0VFSSA6 IEVETUE2NF9TRUVJKTsKKwllZG1hLT5yZWdzLmNlZWkgPSBlZG1hLT5tZW1iYXNlICsgKChlZG1h LT52ZXJzaW9uID09IHYxKSA/CisJCQlFRE1BX0NFRUkgOiBFRE1BNjRfQ0VFSSk7CisJZWRtYS0+ cmVncy5jaW50ID0gZWRtYS0+bWVtYmFzZSArICgoZWRtYS0+dmVyc2lvbiA9PSB2MSkgPworCQkJ RURNQV9DSU5UIDogRURNQTY0X0NJTlQpOworCWVkbWEtPnJlZ3MuY2VyciA9IGVkbWEtPm1lbWJh c2UgKyAoKGVkbWEtPnZlcnNpb24gPT0gdjEpID8KKwkJCUVETUFfQ0VSUiA6IEVETUE2NF9DRVJS KTsKKwllZG1hLT5yZWdzLnNzcnQgPSBlZG1hLT5tZW1iYXNlICsgKChlZG1hLT52ZXJzaW9uID09 IHYxKSA/CisJCQlFRE1BX1NTUlQgOiBFRE1BNjRfU1NSVCk7CisJZWRtYS0+cmVncy5jZG5lID0g ZWRtYS0+bWVtYmFzZSArICgoZWRtYS0+dmVyc2lvbiA9PSB2MSkgPworCQkJRURNQV9DRE5FIDog RURNQTY0X0NETkUpOworCWVkbWEtPnJlZ3MuaW50bCA9IGVkbWEtPm1lbWJhc2UgKyAoKGVkbWEt PnZlcnNpb24gPT0gdjEpID8KKwkJCUVETUFfSU5UUiA6IEVETUE2NF9JTlRMKTsKKwllZG1hLT5y ZWdzLmVycmwgPSBlZG1hLT5tZW1iYXNlICsgKChlZG1hLT52ZXJzaW9uID09IHYxKSA/CisJCQlF RE1BX0VSUiA6IEVETUE2NF9FUlJMKTsKKworCWlmIChlZG1hLT52ZXJzaW9uID09IHYyKSB7CisJ CWVkbWEtPnJlZ3MuZXJxaCA9IGVkbWEtPm1lbWJhc2UgKyBFRE1BNjRfRVJRSDsKKwkJZWRtYS0+ cmVncy5lZWloID0gZWRtYS0+bWVtYmFzZSArIEVETUE2NF9FRUlIOworCQllZG1hLT5yZWdzLmVy cmggPSBlZG1hLT5tZW1iYXNlICsgRURNQTY0X0VSUkg7CisJCWVkbWEtPnJlZ3MuaW50aCA9IGVk bWEtPm1lbWJhc2UgKyBFRE1BNjRfSU5USDsKKwl9CisKKwllZG1hLT5yZWdzLnRjZCA9IGVkbWEt Pm1lbWJhc2UgKyBFRE1BX1RDRDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGZzbF9lZG1hX3NldHVw X3JlZ3MpOworCiBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS9mc2wtZWRtYS1jb21tb24uaCBiL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5oCmlu ZGV4IDU0NThkZDNiNmRhOC4uYjJlZTg5ZWE4OTVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9m c2wtZWRtYS1jb21tb24uaAorKysgYi9kcml2ZXJzL2RtYS9mc2wtZWRtYS1jb21tb24uaApAQCAt OCwzNSArOCw2IEBACiAKICNpbmNsdWRlICJ2aXJ0LWRtYS5oIgogCi0jZGVmaW5lIEVETUFfQ1IJ CQkweDAwCi0jZGVmaW5lIEVETUFfRVMJCQkweDA0Ci0jZGVmaW5lIEVETUFfRVJRCQkweDBDCi0j ZGVmaW5lIEVETUFfRUVJCQkweDE0Ci0jZGVmaW5lIEVETUFfU0VSUQkJMHgxQgotI2RlZmluZSBF RE1BX0NFUlEJCTB4MUEKLSNkZWZpbmUgRURNQV9TRUVJCQkweDE5Ci0jZGVmaW5lIEVETUFfQ0VF SQkJMHgxOAotI2RlZmluZSBFRE1BX0NJTlQJCTB4MUYKLSNkZWZpbmUgRURNQV9DRVJSCQkweDFF Ci0jZGVmaW5lIEVETUFfU1NSVAkJMHgxRAotI2RlZmluZSBFRE1BX0NETkUJCTB4MUMKLSNkZWZp bmUgRURNQV9JTlRSCQkweDI0Ci0jZGVmaW5lIEVETUFfRVJSCQkweDJDCi0KLSNkZWZpbmUgRURN QV9UQ0RfU0FERFIoeCkJKDB4MTAwMCArIDMyICogKHgpKQotI2RlZmluZSBFRE1BX1RDRF9TT0ZG KHgpCSgweDEwMDQgKyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfQVRUUih4KQkoMHgxMDA2 ICsgMzIgKiAoeCkpCi0jZGVmaW5lIEVETUFfVENEX05CWVRFUyh4KQkoMHgxMDA4ICsgMzIgKiAo eCkpCi0jZGVmaW5lIEVETUFfVENEX1NMQVNUKHgpCSgweDEwMEMgKyAzMiAqICh4KSkKLSNkZWZp bmUgRURNQV9UQ0RfREFERFIoeCkJKDB4MTAxMCArIDMyICogKHgpKQotI2RlZmluZSBFRE1BX1RD RF9ET0ZGKHgpCSgweDEwMTQgKyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfQ0lURVJfRUxJ TksoeCkJKDB4MTAxNiArIDMyICogKHgpKQotI2RlZmluZSBFRE1BX1RDRF9DSVRFUih4KQkoMHgx MDE2ICsgMzIgKiAoeCkpCi0jZGVmaW5lIEVETUFfVENEX0RMQVNUX1NHQSh4KQkoMHgxMDE4ICsg MzIgKiAoeCkpCi0jZGVmaW5lIEVETUFfVENEX0NTUih4KQkJKDB4MTAxQyArIDMyICogKHgpKQot I2RlZmluZSBFRE1BX1RDRF9CSVRFUl9FTElOSyh4KQkoMHgxMDFFICsgMzIgKiAoeCkpCi0jZGVm aW5lIEVETUFfVENEX0JJVEVSKHgpCSgweDEwMUUgKyAzMiAqICh4KSkKLQogI2RlZmluZSBFRE1B X0NSX0VEQkcJCUJJVCgxKQogI2RlZmluZSBFRE1BX0NSX0VSQ0EJCUJJVCgyKQogI2RlZmluZSBF RE1BX0NSX0VSR0EJCUJJVCgzKQpAQCAtMTE0LDYgKzg1LDMxIEBAIHN0cnVjdCBmc2xfZWRtYV9o d190Y2QgewogCV9fbGUxNgliaXRlcjsKIH07CiAKKy8qCisgKiBUaGVzZSBhcmUgaW9tZW0gcG9p bnRlcnMsIGZvciBib3RoIHYzMiBhbmQgdjY0LgorICovCitzdHJ1Y3QgZWRtYV9yZWdzIHsKKwl2 b2lkIF9faW9tZW0gKmNyOworCXZvaWQgX19pb21lbSAqZXM7CisJdm9pZCBfX2lvbWVtICplcnFo OworCXZvaWQgX19pb21lbSAqZXJxbDsJLyogYWthIGVycSBvbiB2MzIgKi8KKwl2b2lkIF9faW9t ZW0gKmVlaWg7CisJdm9pZCBfX2lvbWVtICplZWlsOwkvKiBha2EgZWVpIG9uIHYzMiAqLworCXZv aWQgX19pb21lbSAqc2VlaTsKKwl2b2lkIF9faW9tZW0gKmNlZWk7CisJdm9pZCBfX2lvbWVtICpz ZXJxOworCXZvaWQgX19pb21lbSAqY2VycTsKKwl2b2lkIF9faW9tZW0gKmNpbnQ7CisJdm9pZCBf X2lvbWVtICpjZXJyOworCXZvaWQgX19pb21lbSAqc3NydDsKKwl2b2lkIF9faW9tZW0gKmNkbmU7 CisJdm9pZCBfX2lvbWVtICppbnRoOworCXZvaWQgX19pb21lbSAqaW50bDsKKwl2b2lkIF9faW9t ZW0gKmVycmg7CisJdm9pZCBfX2lvbWVtICplcnJsOworCXN0cnVjdCBmc2xfZWRtYV9od190Y2Qg X19pb21lbSAqdGNkOworfTsKKwogc3RydWN0IGZzbF9lZG1hX3N3X3RjZCB7CiAJZG1hX2FkZHJf dAkJCXB0Y2Q7CiAJc3RydWN0IGZzbF9lZG1hX2h3X3RjZAkJKnZ0Y2Q7CkBAIC0xNDcsNiArMTQz LDExIEBAIHN0cnVjdCBmc2xfZWRtYV9kZXNjIHsKIAlzdHJ1Y3QgZnNsX2VkbWFfc3dfdGNkCQl0 Y2RbXTsKIH07CiAKK2VudW0gZWRtYV92ZXJzaW9uIHsKKwl2MSwgLyogMzJjaCwgVnliZGlyLCBt cGM1N3gsIGV0YyAqLworCXYyLCAvKiA2NGNoIENvbGRmaXJlICovCit9OworCiBzdHJ1Y3QgZnNs X2VkbWFfZW5naW5lIHsKIAlzdHJ1Y3QgZG1hX2RldmljZQlkbWFfZGV2OwogCXZvaWQgX19pb21l bQkJKm1lbWJhc2U7CkBAIC0xNTcsNiArMTU4LDggQEAgc3RydWN0IGZzbF9lZG1hX2VuZ2luZSB7 CiAJaW50CQkJdHhpcnE7CiAJaW50CQkJZXJyaXJxOwogCWJvb2wJCQliaWdfZW5kaWFuOworCWVu dW0gZWRtYV92ZXJzaW9uCXZlcnNpb247CisJc3RydWN0IGVkbWFfcmVncwlyZWdzOwogCXN0cnVj dCBmc2xfZWRtYV9jaGFuCWNoYW5zW107CiB9OwogCkBAIC0yMzcsNSArMjQwLDYgQEAgdm9pZCBm c2xfZWRtYV9pc3N1ZV9wZW5kaW5nKHN0cnVjdCBkbWFfY2hhbiAqY2hhbik7CiBpbnQgZnNsX2Vk bWFfYWxsb2NfY2hhbl9yZXNvdXJjZXMoc3RydWN0IGRtYV9jaGFuICpjaGFuKTsKIHZvaWQgZnNs X2VkbWFfZnJlZV9jaGFuX3Jlc291cmNlcyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4pOwogdm9pZCBm c2xfZWRtYV9jbGVhbnVwX3ZjaGFuKHN0cnVjdCBkbWFfZGV2aWNlICpkbWFkZXYpOwordm9pZCBm c2xfZWRtYV9zZXR1cF9yZWdzKHN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgKmVkbWEpOwogCiAjZW5k aWYgLyogX0ZTTF9FRE1BX0NPTU1PTl9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvZnNs LWVkbWEuYyBiL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLmMKaW5kZXggMzM3YWQwYzBlYTc4Li4zNGQ3 MDExMmZjYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLmMKKysrIGIvZHJpdmVy cy9kbWEvZnNsLWVkbWEuYwpAQCAtMjgsMTkgKzI4LDE2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBm c2xfZWRtYV90eF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3QgZnNs X2VkbWFfZW5naW5lICpmc2xfZWRtYSA9IGRldl9pZDsKIAl1bnNpZ25lZCBpbnQgaW50ciwgY2g7 Ci0Jdm9pZCBfX2lvbWVtICpiYXNlX2FkZHI7CisJc3RydWN0IGVkbWFfcmVncyAqcmVncyA9ICZm c2xfZWRtYS0+cmVnczsKIAlzdHJ1Y3QgZnNsX2VkbWFfY2hhbiAqZnNsX2NoYW47CiAKLQliYXNl X2FkZHIgPSBmc2xfZWRtYS0+bWVtYmFzZTsKLQotCWludHIgPSBlZG1hX3JlYWRsKGZzbF9lZG1h LCBiYXNlX2FkZHIgKyBFRE1BX0lOVFIpOworCWludHIgPSBlZG1hX3JlYWRsKGZzbF9lZG1hLCBy ZWdzLT5pbnRsKTsKIAlpZiAoIWludHIpCiAJCXJldHVybiBJUlFfTk9ORTsKIAogCWZvciAoY2gg PSAwOyBjaCA8IGZzbF9lZG1hLT5uX2NoYW5zOyBjaCsrKSB7CiAJCWlmIChpbnRyICYgKDB4MSA8 PCBjaCkpIHsKLQkJCWVkbWFfd3JpdGViKGZzbF9lZG1hLCBFRE1BX0NJTlRfQ0lOVChjaCksCi0J CQkJYmFzZV9hZGRyICsgRURNQV9DSU5UKTsKKwkJCWVkbWFfd3JpdGViKGZzbF9lZG1hLCBFRE1B X0NJTlRfQ0lOVChjaCksIHJlZ3MtPmNpbnQpOwogCiAJCQlmc2xfY2hhbiA9ICZmc2xfZWRtYS0+ Y2hhbnNbY2hdOwogCkBAIC02OCwxNiArNjUsMTYgQEAgc3RhdGljIGlycXJldHVybl90IGZzbF9l ZG1hX2Vycl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3QgZnNsX2Vk bWFfZW5naW5lICpmc2xfZWRtYSA9IGRldl9pZDsKIAl1bnNpZ25lZCBpbnQgZXJyLCBjaDsKKwlz dHJ1Y3QgZWRtYV9yZWdzICpyZWdzID0gJmZzbF9lZG1hLT5yZWdzOwogCi0JZXJyID0gZWRtYV9y ZWFkbChmc2xfZWRtYSwgZnNsX2VkbWEtPm1lbWJhc2UgKyBFRE1BX0VSUik7CisJZXJyID0gZWRt YV9yZWFkbChmc2xfZWRtYSwgcmVncy0+ZXJybCk7CiAJaWYgKCFlcnIpCiAJCXJldHVybiBJUlFf Tk9ORTsKIAogCWZvciAoY2ggPSAwOyBjaCA8IGZzbF9lZG1hLT5uX2NoYW5zOyBjaCsrKSB7CiAJ CWlmIChlcnIgJiAoMHgxIDw8IGNoKSkgewogCQkJZnNsX2VkbWFfZGlzYWJsZV9yZXF1ZXN0KCZm c2xfZWRtYS0+Y2hhbnNbY2hdKTsKLQkJCWVkbWFfd3JpdGViKGZzbF9lZG1hLCBFRE1BX0NFUlJf Q0VSUihjaCksCi0JCQkJZnNsX2VkbWEtPm1lbWJhc2UgKyBFRE1BX0NFUlIpOworCQkJZWRtYV93 cml0ZWIoZnNsX2VkbWEsIEVETUFfQ0VSUl9DRVJSKGNoKSwgcmVncy0+Y2Vycik7CiAJCQlmc2xf ZWRtYS0+Y2hhbnNbY2hdLnN0YXR1cyA9IERNQV9FUlJPUjsKIAkJCWZzbF9lZG1hLT5jaGFuc1tj aF0uaWRsZSA9IHRydWU7CiAJCX0KQEAgLTE5Miw2ICsxODksNyBAQCBzdGF0aWMgaW50IGZzbF9l ZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGRldmljZV9u b2RlICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOwogCXN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgKmZz bF9lZG1hOwogCXN0cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbjsKKwlzdHJ1Y3QgZWRtYV9y ZWdzICpyZWdzOwogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCWludCBsZW4sIGNoYW5zOwogCWlu dCByZXQsIGk7CkBAIC0yMDcsNiArMjA1LDcgQEAgc3RhdGljIGludCBmc2xfZWRtYV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghZnNsX2VkbWEpCiAJCXJldHVybiAt RU5PTUVNOwogCisJZnNsX2VkbWEtPnZlcnNpb24gPSB2MTsKIAlmc2xfZWRtYS0+bl9jaGFucyA9 IGNoYW5zOwogCW11dGV4X2luaXQoJmZzbF9lZG1hLT5mc2xfZWRtYV9tdXRleCk7CiAKQEAgLTIx NSw2ICsyMTQsOSBAQCBzdGF0aWMgaW50IGZzbF9lZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAJaWYgKElTX0VSUihmc2xfZWRtYS0+bWVtYmFzZSkpCiAJCXJldHVybiBQ VFJfRVJSKGZzbF9lZG1hLT5tZW1iYXNlKTsKIAorCWZzbF9lZG1hX3NldHVwX3JlZ3MoZnNsX2Vk bWEpOworCXJlZ3MgPSAmZnNsX2VkbWEtPnJlZ3M7CisKIAlmb3IgKGkgPSAwOyBpIDwgRE1BTVVY X05SOyBpKyspIHsKIAkJY2hhciBjbGtuYW1lWzMyXTsKIApAQCAtMjU1LDExICsyNTcsMTEgQEAg c3RhdGljIGludCBmc2xfZWRtYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog CQlmc2xfY2hhbi0+dmNoYW4uZGVzY19mcmVlID0gZnNsX2VkbWFfZnJlZV9kZXNjOwogCQl2Y2hh bl9pbml0KCZmc2xfY2hhbi0+dmNoYW4sICZmc2xfZWRtYS0+ZG1hX2Rldik7CiAKLQkJZWRtYV93 cml0ZXcoZnNsX2VkbWEsIDB4MCwgZnNsX2VkbWEtPm1lbWJhc2UgKyBFRE1BX1RDRF9DU1IoaSkp OworCQllZG1hX3dyaXRldyhmc2xfZWRtYSwgMHgwLCAmcmVncy0+dGNkW2ldLmNzcik7CiAJCWZz bF9lZG1hX2NoYW5fbXV4KGZzbF9jaGFuLCAwLCBmYWxzZSk7CiAJfQogCi0JZWRtYV93cml0ZWwo ZnNsX2VkbWEsIH4wLCBmc2xfZWRtYS0+bWVtYmFzZSArIEVETUFfSU5UUik7CisJZWRtYV93cml0 ZWwoZnNsX2VkbWEsIH4wLCByZWdzLT5pbnRsKTsKIAlyZXQgPSBmc2xfZWRtYV9pcnFfaW5pdChw ZGV2LCBmc2xfZWRtYSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTMwNiw3ICszMDgs NyBAQCBzdGF0aWMgaW50IGZzbF9lZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJfQogCiAJLyogZW5hYmxlIHJvdW5kIHJvYmluIGFyYml0cmF0aW9uICovCi0JZWRtYV93 cml0ZWwoZnNsX2VkbWEsIEVETUFfQ1JfRVJHQSB8IEVETUFfQ1JfRVJDQSwgZnNsX2VkbWEtPm1l bWJhc2UgKyBFRE1BX0NSKTsKKwllZG1hX3dyaXRlbChmc2xfZWRtYSwgRURNQV9DUl9FUkdBIHwg RURNQV9DUl9FUkNBLCByZWdzLT5jcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM1MywxOCArMzU1 LDE4IEBAIHN0YXRpYyBpbnQgZnNsX2VkbWFfcmVzdW1lX2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRl dikKIHsKIAlzdHJ1Y3QgZnNsX2VkbWFfZW5naW5lICpmc2xfZWRtYSA9IGRldl9nZXRfZHJ2ZGF0 YShkZXYpOwogCXN0cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbjsKKwlzdHJ1Y3QgZWRtYV9y ZWdzICpyZWdzID0gJmZzbF9lZG1hLT5yZWdzOwogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8 IGZzbF9lZG1hLT5uX2NoYW5zOyBpKyspIHsKIAkJZnNsX2NoYW4gPSAmZnNsX2VkbWEtPmNoYW5z W2ldOwogCQlmc2xfY2hhbi0+cG1fc3RhdGUgPSBSVU5OSU5HOwotCQllZG1hX3dyaXRldyhmc2xf ZWRtYSwgMHgwLCBmc2xfZWRtYS0+bWVtYmFzZSArIEVETUFfVENEX0NTUihpKSk7CisJCWVkbWFf d3JpdGV3KGZzbF9lZG1hLCAweDAsICZyZWdzLT50Y2RbaV0uY3NyKTsKIAkJaWYgKGZzbF9jaGFu LT5zbGF2ZV9pZCAhPSAwKQogCQkJZnNsX2VkbWFfY2hhbl9tdXgoZnNsX2NoYW4sIGZzbF9jaGFu LT5zbGF2ZV9pZCwgdHJ1ZSk7CiAJfQogCi0JZWRtYV93cml0ZWwoZnNsX2VkbWEsIEVETUFfQ1Jf RVJHQSB8IEVETUFfQ1JfRVJDQSwKLQkJCWZzbF9lZG1hLT5tZW1iYXNlICsgRURNQV9DUik7CisJ ZWRtYV93cml0ZWwoZnNsX2VkbWEsIEVETUFfQ1JfRVJHQSB8IEVETUFfQ1JfRVJDQSwgcmVncy0+ Y3IpOwogCiAJcmV0dXJuIDA7CiB9Cg==