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: [v10,2/4] dmaengine: fsl-edma: add edma version and configurable registers From: Angelo Dureghello Message-Id: <20180819172716.32304-2-angelo@sysam.it> Date: Sun, 19 Aug 2018 19:27:14 +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 ZWxvQHN5c2FtLml0PgpUZXN0ZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyemtAa2VybmVs Lm9yZz4KLS0tCkNoYW5nZXMgZm9yIHY4OgotIHBhdGNoIHJld3JpdHRlbiBmcm9tIHNjcmF0Y2gs IHRoaXMgcGF0Y2ggKDIvMykgaGFzIGp1c3QgYmVlbiBhZGRlZC4KCkNoYW5nZXMgZm9yIHY5Ogot IGNvbW1lbnQgc3ludGF4IGZpeGVkLAotIHNwbGl0dGVkIG1hY3JvIGNoYW5nZXMgYXdheSBmcm9t IHRoaXMgcGF0Y2guCgpDaGFuZ2VzIGZvciB2MTA6Ci0gbm9uZQotLS0KIGRyaXZlcnMvZG1hL2Zz bC1lZG1hLWNvbW1vbi5jIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K IGRyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5oIHwgIDYyICsrKysrKysrKystLS0tLS0tLS0t CiBkcml2ZXJzL2RtYS9mc2wtZWRtYS5jICAgICAgICB8ICAzMiArKysrKy0tLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2RtYS9mc2wtZWRtYS1jb21tb24uYyBiL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNv bW1vbi5jCmluZGV4IDNmYzc4NmIzZDAzYy4uMjI3MDM0ZGUyNTZlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2RtYS9mc2wtZWRtYS1jb21tb24uYworKysgYi9kcml2ZXJzL2RtYS9mc2wtZWRtYS1jb21t b24uYwpAQCAtNDMsMjAgKzQzLDIwIEBACiAKIHN0YXRpYyB2b2lkIGZzbF9lZG1hX2VuYWJsZV9y ZXF1ZXN0KHN0cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbikKIHsKLQl2b2lkIF9faW9tZW0g KmFkZHIgPSBmc2xfY2hhbi0+ZWRtYS0+bWVtYmFzZTsKKwlzdHJ1Y3QgZWRtYV9yZWdzICpyZWdz ID0gJmZzbF9jaGFuLT5lZG1hLT5yZWdzOwogCXUzMiBjaCA9IGZzbF9jaGFuLT52Y2hhbi5jaGFu LmNoYW5faWQ7CiAKLQllZG1hX3dyaXRlYihmc2xfY2hhbi0+ZWRtYSwgRURNQV9TRUVJX1NFRUko Y2gpLCBhZGRyICsgRURNQV9TRUVJKTsKLQllZG1hX3dyaXRlYihmc2xfY2hhbi0+ZWRtYSwgY2gs IGFkZHIgKyBFRE1BX1NFUlEpOworCWVkbWFfd3JpdGViKGZzbF9jaGFuLT5lZG1hLCBFRE1BX1NF RUlfU0VFSShjaCksIHJlZ3MtPnNlZWkpOworCWVkbWFfd3JpdGViKGZzbF9jaGFuLT5lZG1hLCBj aCwgcmVncy0+c2VycSk7CiB9CiAKIHZvaWQgZnNsX2VkbWFfZGlzYWJsZV9yZXF1ZXN0KHN0cnVj dCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbikKIHsKLQl2b2lkIF9faW9tZW0gKmFkZHIgPSBmc2xf Y2hhbi0+ZWRtYS0+bWVtYmFzZTsKKwlzdHJ1Y3QgZWRtYV9yZWdzICpyZWdzID0gJmZzbF9jaGFu LT5lZG1hLT5yZWdzOwogCXUzMiBjaCA9IGZzbF9jaGFuLT52Y2hhbi5jaGFuLmNoYW5faWQ7CiAK LQllZG1hX3dyaXRlYihmc2xfY2hhbi0+ZWRtYSwgY2gsIGFkZHIgKyBFRE1BX0NFUlEpOwotCWVk bWFfd3JpdGViKGZzbF9jaGFuLT5lZG1hLCBFRE1BX0NFRUlfQ0VFSShjaCksIGFkZHIgKyBFRE1B X0NFRUkpOworCWVkbWFfd3JpdGViKGZzbF9jaGFuLT5lZG1hLCBjaCwgcmVncy0+Y2VycSk7CisJ ZWRtYV93cml0ZWIoZnNsX2NoYW4tPmVkbWEsIEVETUFfQ0VFSV9DRUVJKGNoKSwgcmVncy0+Y2Vl aSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChmc2xfZWRtYV9kaXNhYmxlX3JlcXVlc3QpOwogCkBA IC0xODQsNyArMTg0LDcgQEAgc3RhdGljIHNpemVfdCBmc2xfZWRtYV9kZXNjX3Jlc2lkdWUoc3Ry dWN0IGZzbF9lZG1hX2NoYW4gKmZzbF9jaGFuLAogCQlzdHJ1Y3QgdmlydF9kbWFfZGVzYyAqdmRl c2MsIGJvb2wgaW5fcHJvZ3Jlc3MpCiB7CiAJc3RydWN0IGZzbF9lZG1hX2Rlc2MgKmVkZXNjID0g ZnNsX2NoYW4tPmVkZXNjOwotCXZvaWQgX19pb21lbSAqYWRkciA9IGZzbF9jaGFuLT5lZG1hLT5t ZW1iYXNlOworCXN0cnVjdCBlZG1hX3JlZ3MgKnJlZ3MgPSAmZnNsX2NoYW4tPmVkbWEtPnJlZ3M7 CiAJdTMyIGNoID0gZnNsX2NoYW4tPnZjaGFuLmNoYW4uY2hhbl9pZDsKIAllbnVtIGRtYV90cmFu c2Zlcl9kaXJlY3Rpb24gZGlyID0gZnNsX2NoYW4tPmZzYy5kaXI7CiAJZG1hX2FkZHJfdCBjdXJf YWRkciwgZG1hX2FkZHI7CkBAIC0yMDAsMTEgKzIwMCw5IEBAIHN0YXRpYyBzaXplX3QgZnNsX2Vk bWFfZGVzY19yZXNpZHVlKHN0cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbiwKIAkJcmV0dXJu IGxlbjsKIAogCWlmIChkaXIgPT0gRE1BX01FTV9UT19ERVYpCi0JCWN1cl9hZGRyID0gZWRtYV9y ZWFkbCgKLQkJCWZzbF9jaGFuLT5lZG1hLCBhZGRyICsgRURNQV9UQ0RfU0FERFIoY2gpKTsKKwkJ Y3VyX2FkZHIgPSBlZG1hX3JlYWRsKGZzbF9jaGFuLT5lZG1hLCAmcmVncy0+dGNkW2NoXS5zYWRk cik7CiAJZWxzZQotCQljdXJfYWRkciA9IGVkbWFfcmVhZGwoCi0JCQlmc2xfY2hhbi0+ZWRtYSwg YWRkciArIEVETUFfVENEX0RBRERSKGNoKSk7CisJCWN1cl9hZGRyID0gZWRtYV9yZWFkbChmc2xf Y2hhbi0+ZWRtYSwgJnJlZ3MtPnRjZFtjaF0uZGFkZHIpOwogCiAJLyogZmlndXJlIG91dCB0aGUg ZmluaXNoZWQgYW5kIGNhbGN1bGF0ZSB0aGUgcmVzaWR1ZSAqLwogCWZvciAoaSA9IDA7IGkgPCBm c2xfY2hhbi0+ZWRlc2MtPm5fdGNkczsgaSsrKSB7CkBAIC0yNjEsNyArMjU5LDcgQEAgc3RhdGlj IHZvaWQgZnNsX2VkbWFfc2V0X3RjZF9yZWdzKHN0cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hh biwKIAkJCQkgIHN0cnVjdCBmc2xfZWRtYV9od190Y2QgKnRjZCkKIHsKIAlzdHJ1Y3QgZnNsX2Vk bWFfZW5naW5lICplZG1hID0gZnNsX2NoYW4tPmVkbWE7Ci0Jdm9pZCBfX2lvbWVtICphZGRyID0g ZnNsX2NoYW4tPmVkbWEtPm1lbWJhc2U7CisJc3RydWN0IGVkbWFfcmVncyAqcmVncyA9ICZmc2xf Y2hhbi0+ZWRtYS0+cmVnczsKIAl1MzIgY2ggPSBmc2xfY2hhbi0+dmNoYW4uY2hhbi5jaGFuX2lk OwogCiAJLyoKQEAgLTI2OSwyNCArMjY3LDI0IEBAIHN0YXRpYyB2b2lkIGZzbF9lZG1hX3NldF90 Y2RfcmVncyhzdHJ1Y3QgZnNsX2VkbWFfY2hhbiAqZnNsX2NoYW4sCiAJICogZW5kaWFuIGZvcm1h dC4gSG93ZXZlciwgd2UgbmVlZCB0byBsb2FkIHRoZSBUQ0QgcmVnaXN0ZXJzIGluCiAJICogYmln LSBvciBsaXR0bGUtZW5kaWFuIG9iZXlpbmcgdGhlIGVETUEgZW5naW5lIG1vZGVsIGVuZGlhbi4K IAkgKi8KLQllZG1hX3dyaXRldyhlZG1hLCAwLCBhZGRyICsgRURNQV9UQ0RfQ1NSKGNoKSk7Ci0J ZWRtYV93cml0ZWwoZWRtYSwgbGUzMl90b19jcHUodGNkLT5zYWRkciksIGFkZHIgKyBFRE1BX1RD RF9TQUREUihjaCkpOwotCWVkbWFfd3JpdGVsKGVkbWEsIGxlMzJfdG9fY3B1KHRjZC0+ZGFkZHIp LCBhZGRyICsgRURNQV9UQ0RfREFERFIoY2gpKTsKKwllZG1hX3dyaXRldyhlZG1hLCAwLCAgJnJl Z3MtPnRjZFtjaF0uY3NyKTsKKwllZG1hX3dyaXRlbChlZG1hLCBsZTMyX3RvX2NwdSh0Y2QtPnNh ZGRyKSwgJnJlZ3MtPnRjZFtjaF0uc2FkZHIpOworCWVkbWFfd3JpdGVsKGVkbWEsIGxlMzJfdG9f Y3B1KHRjZC0+ZGFkZHIpLCAmcmVncy0+dGNkW2NoXS5kYWRkcik7CiAKLQllZG1hX3dyaXRldyhl ZG1hLCBsZTE2X3RvX2NwdSh0Y2QtPmF0dHIpLCBhZGRyICsgRURNQV9UQ0RfQVRUUihjaCkpOwot CWVkbWFfd3JpdGV3KGVkbWEsIGxlMTZfdG9fY3B1KHRjZC0+c29mZiksIGFkZHIgKyBFRE1BX1RD RF9TT0ZGKGNoKSk7CisJZWRtYV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUodGNkLT5hdHRyKSwg JnJlZ3MtPnRjZFtjaF0uYXR0cik7CisJZWRtYV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUodGNk LT5zb2ZmKSwgJnJlZ3MtPnRjZFtjaF0uc29mZik7CiAKLQllZG1hX3dyaXRlbChlZG1hLCBsZTMy X3RvX2NwdSh0Y2QtPm5ieXRlcyksIGFkZHIgKyBFRE1BX1RDRF9OQllURVMoY2gpKTsKLQllZG1h X3dyaXRlbChlZG1hLCBsZTMyX3RvX2NwdSh0Y2QtPnNsYXN0KSwgYWRkciArIEVETUFfVENEX1NM QVNUKGNoKSk7CisJZWRtYV93cml0ZWwoZWRtYSwgbGUzMl90b19jcHUodGNkLT5uYnl0ZXMpLCAm cmVncy0+dGNkW2NoXS5uYnl0ZXMpOworCWVkbWFfd3JpdGVsKGVkbWEsIGxlMzJfdG9fY3B1KHRj ZC0+c2xhc3QpLCAmcmVncy0+dGNkW2NoXS5zbGFzdCk7CiAKLQllZG1hX3dyaXRldyhlZG1hLCBs ZTE2X3RvX2NwdSh0Y2QtPmNpdGVyKSwgYWRkciArIEVETUFfVENEX0NJVEVSKGNoKSk7Ci0JZWRt YV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUodGNkLT5iaXRlciksIGFkZHIgKyBFRE1BX1RDRF9C SVRFUihjaCkpOwotCWVkbWFfd3JpdGV3KGVkbWEsIGxlMTZfdG9fY3B1KHRjZC0+ZG9mZiksIGFk ZHIgKyBFRE1BX1RDRF9ET0ZGKGNoKSk7CisJZWRtYV93cml0ZXcoZWRtYSwgbGUxNl90b19jcHUo dGNkLT5jaXRlciksICZyZWdzLT50Y2RbY2hdLmNpdGVyKTsKKwllZG1hX3dyaXRldyhlZG1hLCBs ZTE2X3RvX2NwdSh0Y2QtPmJpdGVyKSwgJnJlZ3MtPnRjZFtjaF0uYml0ZXIpOworCWVkbWFfd3Jp dGV3KGVkbWEsIGxlMTZfdG9fY3B1KHRjZC0+ZG9mZiksICZyZWdzLT50Y2RbY2hdLmRvZmYpOwog Ci0JZWRtYV93cml0ZWwoZWRtYSwKLQkJICAgIGxlMzJfdG9fY3B1KHRjZC0+ZGxhc3Rfc2dhKSwg YWRkciArIEVETUFfVENEX0RMQVNUX1NHQShjaCkpOworCWVkbWFfd3JpdGVsKGVkbWEsIGxlMzJf dG9fY3B1KHRjZC0+ZGxhc3Rfc2dhKSwKKwkJCSZyZWdzLT50Y2RbY2hdLmRsYXN0X3NnYSk7CiAK LQllZG1hX3dyaXRldyhlZG1hLCBsZTE2X3RvX2NwdSh0Y2QtPmNzciksIGFkZHIgKyBFRE1BX1RD RF9DU1IoY2gpKTsKKwllZG1hX3dyaXRldyhlZG1hLCBsZTE2X3RvX2NwdSh0Y2QtPmNzciksICZy ZWdzLT50Y2RbY2hdLmNzcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUKQEAgLTMwOCwxNSArMzA2LDE1 IEBAIHZvaWQgZnNsX2VkbWFfZmlsbF90Y2Qoc3RydWN0IGZzbF9lZG1hX2h3X3RjZCAqdGNkLCB1 MzIgc3JjLCB1MzIgZHN0LAogCiAJdGNkLT5hdHRyID0gY3B1X3RvX2xlMTYoYXR0cik7CiAKLQl0 Y2QtPnNvZmYgPSBjcHVfdG9fbGUxNihFRE1BX1RDRF9TT0ZGX1NPRkYoc29mZikpOworCXRjZC0+ c29mZiA9IGNwdV90b19sZTE2KHNvZmYpOwogCi0JdGNkLT5uYnl0ZXMgPSBjcHVfdG9fbGUzMihF RE1BX1RDRF9OQllURVNfTkJZVEVTKG5ieXRlcykpOwotCXRjZC0+c2xhc3QgPSBjcHVfdG9fbGUz MihFRE1BX1RDRF9TTEFTVF9TTEFTVChzbGFzdCkpOworCXRjZC0+bmJ5dGVzID0gY3B1X3RvX2xl MzIobmJ5dGVzKTsKKwl0Y2QtPnNsYXN0ID0gY3B1X3RvX2xlMzIoc2xhc3QpOwogCiAJdGNkLT5j aXRlciA9IGNwdV90b19sZTE2KEVETUFfVENEX0NJVEVSX0NJVEVSKGNpdGVyKSk7Ci0JdGNkLT5k b2ZmID0gY3B1X3RvX2xlMTYoRURNQV9UQ0RfRE9GRl9ET0ZGKGRvZmYpKTsKKwl0Y2QtPmRvZmYg PSBjcHVfdG9fbGUxNihkb2ZmKTsKIAotCXRjZC0+ZGxhc3Rfc2dhID0gY3B1X3RvX2xlMzIoRURN QV9UQ0RfRExBU1RfU0dBX0RMQVNUX1NHQShkbGFzdF9zZ2EpKTsKKwl0Y2QtPmRsYXN0X3NnYSA9 IGNwdV90b19sZTMyKGRsYXN0X3NnYSk7CiAKIAl0Y2QtPmJpdGVyID0gY3B1X3RvX2xlMTYoRURN QV9UQ0RfQklURVJfQklURVIoYml0ZXIpKTsKIAlpZiAobWFqb3JfaW50KQpAQCAtNTQ5LDQgKzU0 Nyw1MiBAQCB2b2lkIGZzbF9lZG1hX2NsZWFudXBfdmNoYW4oc3RydWN0IGRtYV9kZXZpY2UgKmRt YWRldikKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGZzbF9lZG1hX2NsZWFudXBfdmNoYW4pOwogCisv KgorICogT24gdGhlIDMyIGNoYW5uZWxzIFZ5YnJpZC9tcGM1Nzd4IGVkbWEgdmVyc2lvbiAoaGVy ZSBjYWxsZWQgInYxIiksCisgKiByZWdpc3RlciBvZmZzZXRzIGFyZSBkaWZmZXJlbnQgY29tcGFy ZWQgdG8gQ29sZEZpcmUgbWNmNTQ0MXggNjQgY2hhbm5lbHMKKyAqIGVkbWEgKGhlcmUgY2FsbGVk ICJ2MiIpLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCByZWdpc3RlciBvZmZzZXRzIGFz IHBlciBwcm9wZXIgZGVjbGFyZWQgdmVyc2lvbgorICogc28gbXVzdCBiZSBjYWxsZWQgaW4geHh4 X2VkbWFfcHJvYmUoKSBqdXN0IGFmdGVyIHNldHRpbmcgdGhlCisgKiBlZG1hICJ2ZXJzaW9uIiBh bmQgIm1lbWJhc2UiIGFwcHJvcHJpYXRlbHkuCisgKi8KK3ZvaWQgZnNsX2VkbWFfc2V0dXBfcmVn cyhzdHJ1Y3QgZnNsX2VkbWFfZW5naW5lICplZG1hKQoreworCWVkbWEtPnJlZ3MuY3IgPSBlZG1h LT5tZW1iYXNlICsgRURNQV9DUjsKKwllZG1hLT5yZWdzLmVzID0gZWRtYS0+bWVtYmFzZSArIEVE TUFfRVM7CisJZWRtYS0+cmVncy5lcnFsID0gZWRtYS0+bWVtYmFzZSArIEVETUFfRVJROworCWVk bWEtPnJlZ3MuZWVpbCA9IGVkbWEtPm1lbWJhc2UgKyBFRE1BX0VFSTsKKworCWVkbWEtPnJlZ3Mu c2VycSA9IGVkbWEtPm1lbWJhc2UgKyAoKGVkbWEtPnZlcnNpb24gPT0gdjEpID8KKwkJCUVETUFf U0VSUSA6IEVETUE2NF9TRVJRKTsKKwllZG1hLT5yZWdzLmNlcnEgPSBlZG1hLT5tZW1iYXNlICsg KChlZG1hLT52ZXJzaW9uID09IHYxKSA/CisJCQlFRE1BX0NFUlEgOiBFRE1BNjRfQ0VSUSk7CisJ ZWRtYS0+cmVncy5zZWVpID0gZWRtYS0+bWVtYmFzZSArICgoZWRtYS0+dmVyc2lvbiA9PSB2MSkg PworCQkJRURNQV9TRUVJIDogRURNQTY0X1NFRUkpOworCWVkbWEtPnJlZ3MuY2VlaSA9IGVkbWEt Pm1lbWJhc2UgKyAoKGVkbWEtPnZlcnNpb24gPT0gdjEpID8KKwkJCUVETUFfQ0VFSSA6IEVETUE2 NF9DRUVJKTsKKwllZG1hLT5yZWdzLmNpbnQgPSBlZG1hLT5tZW1iYXNlICsgKChlZG1hLT52ZXJz aW9uID09IHYxKSA/CisJCQlFRE1BX0NJTlQgOiBFRE1BNjRfQ0lOVCk7CisJZWRtYS0+cmVncy5j ZXJyID0gZWRtYS0+bWVtYmFzZSArICgoZWRtYS0+dmVyc2lvbiA9PSB2MSkgPworCQkJRURNQV9D RVJSIDogRURNQTY0X0NFUlIpOworCWVkbWEtPnJlZ3Muc3NydCA9IGVkbWEtPm1lbWJhc2UgKyAo KGVkbWEtPnZlcnNpb24gPT0gdjEpID8KKwkJCUVETUFfU1NSVCA6IEVETUE2NF9TU1JUKTsKKwll ZG1hLT5yZWdzLmNkbmUgPSBlZG1hLT5tZW1iYXNlICsgKChlZG1hLT52ZXJzaW9uID09IHYxKSA/ CisJCQlFRE1BX0NETkUgOiBFRE1BNjRfQ0RORSk7CisJZWRtYS0+cmVncy5pbnRsID0gZWRtYS0+ bWVtYmFzZSArICgoZWRtYS0+dmVyc2lvbiA9PSB2MSkgPworCQkJRURNQV9JTlRSIDogRURNQTY0 X0lOVEwpOworCWVkbWEtPnJlZ3MuZXJybCA9IGVkbWEtPm1lbWJhc2UgKyAoKGVkbWEtPnZlcnNp b24gPT0gdjEpID8KKwkJCUVETUFfRVJSIDogRURNQTY0X0VSUkwpOworCisJaWYgKGVkbWEtPnZl cnNpb24gPT0gdjIpIHsKKwkJZWRtYS0+cmVncy5lcnFoID0gZWRtYS0+bWVtYmFzZSArIEVETUE2 NF9FUlFIOworCQllZG1hLT5yZWdzLmVlaWggPSBlZG1hLT5tZW1iYXNlICsgRURNQTY0X0VFSUg7 CisJCWVkbWEtPnJlZ3MuZXJyaCA9IGVkbWEtPm1lbWJhc2UgKyBFRE1BNjRfRVJSSDsKKwkJZWRt YS0+cmVncy5pbnRoID0gZWRtYS0+bWVtYmFzZSArIEVETUE2NF9JTlRIOworCX0KKworCWVkbWEt PnJlZ3MudGNkID0gZWRtYS0+bWVtYmFzZSArIEVETUFfVENEOworfQorRVhQT1JUX1NZTUJPTF9H UEwoZnNsX2VkbWFfc2V0dXBfcmVncyk7CisKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5oIGIvZHJpdmVycy9kbWEvZnNs LWVkbWEtY29tbW9uLmgKaW5kZXggNTQ1OGRkM2I2ZGE4Li5iMmVlODllYTg5NWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5oCisrKyBiL2RyaXZlcnMvZG1hL2ZzbC1l ZG1hLWNvbW1vbi5oCkBAIC04LDM1ICs4LDYgQEAKIAogI2luY2x1ZGUgInZpcnQtZG1hLmgiCiAK LSNkZWZpbmUgRURNQV9DUgkJCTB4MDAKLSNkZWZpbmUgRURNQV9FUwkJCTB4MDQKLSNkZWZpbmUg RURNQV9FUlEJCTB4MEMKLSNkZWZpbmUgRURNQV9FRUkJCTB4MTQKLSNkZWZpbmUgRURNQV9TRVJR CQkweDFCCi0jZGVmaW5lIEVETUFfQ0VSUQkJMHgxQQotI2RlZmluZSBFRE1BX1NFRUkJCTB4MTkK LSNkZWZpbmUgRURNQV9DRUVJCQkweDE4Ci0jZGVmaW5lIEVETUFfQ0lOVAkJMHgxRgotI2RlZmlu ZSBFRE1BX0NFUlIJCTB4MUUKLSNkZWZpbmUgRURNQV9TU1JUCQkweDFECi0jZGVmaW5lIEVETUFf Q0RORQkJMHgxQwotI2RlZmluZSBFRE1BX0lOVFIJCTB4MjQKLSNkZWZpbmUgRURNQV9FUlIJCTB4 MkMKLQotI2RlZmluZSBFRE1BX1RDRF9TQUREUih4KQkoMHgxMDAwICsgMzIgKiAoeCkpCi0jZGVm aW5lIEVETUFfVENEX1NPRkYoeCkJKDB4MTAwNCArIDMyICogKHgpKQotI2RlZmluZSBFRE1BX1RD RF9BVFRSKHgpCSgweDEwMDYgKyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfTkJZVEVTKHgp CSgweDEwMDggKyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfU0xBU1QoeCkJKDB4MTAwQyAr IDMyICogKHgpKQotI2RlZmluZSBFRE1BX1RDRF9EQUREUih4KQkoMHgxMDEwICsgMzIgKiAoeCkp Ci0jZGVmaW5lIEVETUFfVENEX0RPRkYoeCkJKDB4MTAxNCArIDMyICogKHgpKQotI2RlZmluZSBF RE1BX1RDRF9DSVRFUl9FTElOSyh4KQkoMHgxMDE2ICsgMzIgKiAoeCkpCi0jZGVmaW5lIEVETUFf VENEX0NJVEVSKHgpCSgweDEwMTYgKyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfRExBU1Rf U0dBKHgpCSgweDEwMTggKyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfQ1NSKHgpCQkoMHgx MDFDICsgMzIgKiAoeCkpCi0jZGVmaW5lIEVETUFfVENEX0JJVEVSX0VMSU5LKHgpCSgweDEwMUUg KyAzMiAqICh4KSkKLSNkZWZpbmUgRURNQV9UQ0RfQklURVIoeCkJKDB4MTAxRSArIDMyICogKHgp KQotCiAjZGVmaW5lIEVETUFfQ1JfRURCRwkJQklUKDEpCiAjZGVmaW5lIEVETUFfQ1JfRVJDQQkJ QklUKDIpCiAjZGVmaW5lIEVETUFfQ1JfRVJHQQkJQklUKDMpCkBAIC0xMTQsNiArODUsMzEgQEAg c3RydWN0IGZzbF9lZG1hX2h3X3RjZCB7CiAJX19sZTE2CWJpdGVyOwogfTsKIAorLyoKKyAqIFRo ZXNlIGFyZSBpb21lbSBwb2ludGVycywgZm9yIGJvdGggdjMyIGFuZCB2NjQuCisgKi8KK3N0cnVj dCBlZG1hX3JlZ3MgeworCXZvaWQgX19pb21lbSAqY3I7CisJdm9pZCBfX2lvbWVtICplczsKKwl2 b2lkIF9faW9tZW0gKmVycWg7CisJdm9pZCBfX2lvbWVtICplcnFsOwkvKiBha2EgZXJxIG9uIHYz MiAqLworCXZvaWQgX19pb21lbSAqZWVpaDsKKwl2b2lkIF9faW9tZW0gKmVlaWw7CS8qIGFrYSBl ZWkgb24gdjMyICovCisJdm9pZCBfX2lvbWVtICpzZWVpOworCXZvaWQgX19pb21lbSAqY2VlaTsK Kwl2b2lkIF9faW9tZW0gKnNlcnE7CisJdm9pZCBfX2lvbWVtICpjZXJxOworCXZvaWQgX19pb21l bSAqY2ludDsKKwl2b2lkIF9faW9tZW0gKmNlcnI7CisJdm9pZCBfX2lvbWVtICpzc3J0OworCXZv aWQgX19pb21lbSAqY2RuZTsKKwl2b2lkIF9faW9tZW0gKmludGg7CisJdm9pZCBfX2lvbWVtICpp bnRsOworCXZvaWQgX19pb21lbSAqZXJyaDsKKwl2b2lkIF9faW9tZW0gKmVycmw7CisJc3RydWN0 IGZzbF9lZG1hX2h3X3RjZCBfX2lvbWVtICp0Y2Q7Cit9OworCiBzdHJ1Y3QgZnNsX2VkbWFfc3df dGNkIHsKIAlkbWFfYWRkcl90CQkJcHRjZDsKIAlzdHJ1Y3QgZnNsX2VkbWFfaHdfdGNkCQkqdnRj ZDsKQEAgLTE0Nyw2ICsxNDMsMTEgQEAgc3RydWN0IGZzbF9lZG1hX2Rlc2MgewogCXN0cnVjdCBm c2xfZWRtYV9zd190Y2QJCXRjZFtdOwogfTsKIAorZW51bSBlZG1hX3ZlcnNpb24geworCXYxLCAv KiAzMmNoLCBWeWJkaXIsIG1wYzU3eCwgZXRjICovCisJdjIsIC8qIDY0Y2ggQ29sZGZpcmUgKi8K K307CisKIHN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgewogCXN0cnVjdCBkbWFfZGV2aWNlCWRtYV9k ZXY7CiAJdm9pZCBfX2lvbWVtCQkqbWVtYmFzZTsKQEAgLTE1Nyw2ICsxNTgsOCBAQCBzdHJ1Y3Qg ZnNsX2VkbWFfZW5naW5lIHsKIAlpbnQJCQl0eGlycTsKIAlpbnQJCQllcnJpcnE7CiAJYm9vbAkJ CWJpZ19lbmRpYW47CisJZW51bSBlZG1hX3ZlcnNpb24JdmVyc2lvbjsKKwlzdHJ1Y3QgZWRtYV9y ZWdzCXJlZ3M7CiAJc3RydWN0IGZzbF9lZG1hX2NoYW4JY2hhbnNbXTsKIH07CiAKQEAgLTIzNyw1 ICsyNDAsNiBAQCB2b2lkIGZzbF9lZG1hX2lzc3VlX3BlbmRpbmcoc3RydWN0IGRtYV9jaGFuICpj aGFuKTsKIGludCBmc2xfZWRtYV9hbGxvY19jaGFuX3Jlc291cmNlcyhzdHJ1Y3QgZG1hX2NoYW4g KmNoYW4pOwogdm9pZCBmc2xfZWRtYV9mcmVlX2NoYW5fcmVzb3VyY2VzKHN0cnVjdCBkbWFfY2hh biAqY2hhbik7CiB2b2lkIGZzbF9lZG1hX2NsZWFudXBfdmNoYW4oc3RydWN0IGRtYV9kZXZpY2Ug KmRtYWRldik7Cit2b2lkIGZzbF9lZG1hX3NldHVwX3JlZ3Moc3RydWN0IGZzbF9lZG1hX2VuZ2lu ZSAqZWRtYSk7CiAKICNlbmRpZiAvKiBfRlNMX0VETUFfQ09NTU9OX0hfICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL2RtYS9mc2wtZWRtYS5jIGIvZHJpdmVycy9kbWEvZnNsLWVkbWEuYwppbmRleCAz MzdhZDBjMGVhNzguLjM0ZDcwMTEyZmNjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEvZnNsLWVk bWEuYworKysgYi9kcml2ZXJzL2RtYS9mc2wtZWRtYS5jCkBAIC0yOCwxOSArMjgsMTYgQEAgc3Rh dGljIGlycXJldHVybl90IGZzbF9lZG1hX3R4X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lk KQogewogCXN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgKmZzbF9lZG1hID0gZGV2X2lkOwogCXVuc2ln bmVkIGludCBpbnRyLCBjaDsKLQl2b2lkIF9faW9tZW0gKmJhc2VfYWRkcjsKKwlzdHJ1Y3QgZWRt YV9yZWdzICpyZWdzID0gJmZzbF9lZG1hLT5yZWdzOwogCXN0cnVjdCBmc2xfZWRtYV9jaGFuICpm c2xfY2hhbjsKIAotCWJhc2VfYWRkciA9IGZzbF9lZG1hLT5tZW1iYXNlOwotCi0JaW50ciA9IGVk bWFfcmVhZGwoZnNsX2VkbWEsIGJhc2VfYWRkciArIEVETUFfSU5UUik7CisJaW50ciA9IGVkbWFf cmVhZGwoZnNsX2VkbWEsIHJlZ3MtPmludGwpOwogCWlmICghaW50cikKIAkJcmV0dXJuIElSUV9O T05FOwogCiAJZm9yIChjaCA9IDA7IGNoIDwgZnNsX2VkbWEtPm5fY2hhbnM7IGNoKyspIHsKIAkJ aWYgKGludHIgJiAoMHgxIDw8IGNoKSkgewotCQkJZWRtYV93cml0ZWIoZnNsX2VkbWEsIEVETUFf Q0lOVF9DSU5UKGNoKSwKLQkJCQliYXNlX2FkZHIgKyBFRE1BX0NJTlQpOworCQkJZWRtYV93cml0 ZWIoZnNsX2VkbWEsIEVETUFfQ0lOVF9DSU5UKGNoKSwgcmVncy0+Y2ludCk7CiAKIAkJCWZzbF9j aGFuID0gJmZzbF9lZG1hLT5jaGFuc1tjaF07CiAKQEAgLTY4LDE2ICs2NSwxNiBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgZnNsX2VkbWFfZXJyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQog ewogCXN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgKmZzbF9lZG1hID0gZGV2X2lkOwogCXVuc2lnbmVk IGludCBlcnIsIGNoOworCXN0cnVjdCBlZG1hX3JlZ3MgKnJlZ3MgPSAmZnNsX2VkbWEtPnJlZ3M7 CiAKLQllcnIgPSBlZG1hX3JlYWRsKGZzbF9lZG1hLCBmc2xfZWRtYS0+bWVtYmFzZSArIEVETUFf RVJSKTsKKwllcnIgPSBlZG1hX3JlYWRsKGZzbF9lZG1hLCByZWdzLT5lcnJsKTsKIAlpZiAoIWVy cikKIAkJcmV0dXJuIElSUV9OT05FOwogCiAJZm9yIChjaCA9IDA7IGNoIDwgZnNsX2VkbWEtPm5f Y2hhbnM7IGNoKyspIHsKIAkJaWYgKGVyciAmICgweDEgPDwgY2gpKSB7CiAJCQlmc2xfZWRtYV9k aXNhYmxlX3JlcXVlc3QoJmZzbF9lZG1hLT5jaGFuc1tjaF0pOwotCQkJZWRtYV93cml0ZWIoZnNs X2VkbWEsIEVETUFfQ0VSUl9DRVJSKGNoKSwKLQkJCQlmc2xfZWRtYS0+bWVtYmFzZSArIEVETUFf Q0VSUik7CisJCQllZG1hX3dyaXRlYihmc2xfZWRtYSwgRURNQV9DRVJSX0NFUlIoY2gpLCByZWdz LT5jZXJyKTsKIAkJCWZzbF9lZG1hLT5jaGFuc1tjaF0uc3RhdHVzID0gRE1BX0VSUk9SOwogCQkJ ZnNsX2VkbWEtPmNoYW5zW2NoXS5pZGxlID0gdHJ1ZTsKIAkJfQpAQCAtMTkyLDYgKzE4OSw3IEBA IHN0YXRpYyBpbnQgZnNsX2VkbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7CiAJc3RydWN0IGZz bF9lZG1hX2VuZ2luZSAqZnNsX2VkbWE7CiAJc3RydWN0IGZzbF9lZG1hX2NoYW4gKmZzbF9jaGFu OworCXN0cnVjdCBlZG1hX3JlZ3MgKnJlZ3M7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50 IGxlbiwgY2hhbnM7CiAJaW50IHJldCwgaTsKQEAgLTIwNyw2ICsyMDUsNyBAQCBzdGF0aWMgaW50 IGZzbF9lZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFmc2xf ZWRtYSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlmc2xfZWRtYS0+dmVyc2lvbiA9IHYxOwogCWZz bF9lZG1hLT5uX2NoYW5zID0gY2hhbnM7CiAJbXV0ZXhfaW5pdCgmZnNsX2VkbWEtPmZzbF9lZG1h X211dGV4KTsKIApAQCAtMjE1LDYgKzIxNCw5IEBAIHN0YXRpYyBpbnQgZnNsX2VkbWFfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoSVNfRVJSKGZzbF9lZG1hLT5tZW1i YXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIoZnNsX2VkbWEtPm1lbWJhc2UpOwogCisJZnNsX2VkbWFf c2V0dXBfcmVncyhmc2xfZWRtYSk7CisJcmVncyA9ICZmc2xfZWRtYS0+cmVnczsKKwogCWZvciAo aSA9IDA7IGkgPCBETUFNVVhfTlI7IGkrKykgewogCQljaGFyIGNsa25hbWVbMzJdOwogCkBAIC0y NTUsMTEgKzI1NywxMSBAQCBzdGF0aWMgaW50IGZzbF9lZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAJCWZzbF9jaGFuLT52Y2hhbi5kZXNjX2ZyZWUgPSBmc2xfZWRtYV9m cmVlX2Rlc2M7CiAJCXZjaGFuX2luaXQoJmZzbF9jaGFuLT52Y2hhbiwgJmZzbF9lZG1hLT5kbWFf ZGV2KTsKIAotCQllZG1hX3dyaXRldyhmc2xfZWRtYSwgMHgwLCBmc2xfZWRtYS0+bWVtYmFzZSAr IEVETUFfVENEX0NTUihpKSk7CisJCWVkbWFfd3JpdGV3KGZzbF9lZG1hLCAweDAsICZyZWdzLT50 Y2RbaV0uY3NyKTsKIAkJZnNsX2VkbWFfY2hhbl9tdXgoZnNsX2NoYW4sIDAsIGZhbHNlKTsKIAl9 CiAKLQllZG1hX3dyaXRlbChmc2xfZWRtYSwgfjAsIGZzbF9lZG1hLT5tZW1iYXNlICsgRURNQV9J TlRSKTsKKwllZG1hX3dyaXRlbChmc2xfZWRtYSwgfjAsIHJlZ3MtPmludGwpOwogCXJldCA9IGZz bF9lZG1hX2lycV9pbml0KHBkZXYsIGZzbF9lZG1hKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwpAQCAtMzA2LDcgKzMwOCw3IEBAIHN0YXRpYyBpbnQgZnNsX2VkbWFfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAkvKiBlbmFibGUgcm91bmQgcm9iaW4gYXJiaXRy YXRpb24gKi8KLQllZG1hX3dyaXRlbChmc2xfZWRtYSwgRURNQV9DUl9FUkdBIHwgRURNQV9DUl9F UkNBLCBmc2xfZWRtYS0+bWVtYmFzZSArIEVETUFfQ1IpOworCWVkbWFfd3JpdGVsKGZzbF9lZG1h LCBFRE1BX0NSX0VSR0EgfCBFRE1BX0NSX0VSQ0EsIHJlZ3MtPmNyKTsKIAogCXJldHVybiAwOwog fQpAQCAtMzUzLDE4ICszNTUsMTggQEAgc3RhdGljIGludCBmc2xfZWRtYV9yZXN1bWVfZWFybHko c3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgKmZzbF9lZG1h ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJc3RydWN0IGZzbF9lZG1hX2NoYW4gKmZzbF9jaGFu OworCXN0cnVjdCBlZG1hX3JlZ3MgKnJlZ3MgPSAmZnNsX2VkbWEtPnJlZ3M7CiAJaW50IGk7CiAK IAlmb3IgKGkgPSAwOyBpIDwgZnNsX2VkbWEtPm5fY2hhbnM7IGkrKykgewogCQlmc2xfY2hhbiA9 ICZmc2xfZWRtYS0+Y2hhbnNbaV07CiAJCWZzbF9jaGFuLT5wbV9zdGF0ZSA9IFJVTk5JTkc7Ci0J CWVkbWFfd3JpdGV3KGZzbF9lZG1hLCAweDAsIGZzbF9lZG1hLT5tZW1iYXNlICsgRURNQV9UQ0Rf Q1NSKGkpKTsKKwkJZWRtYV93cml0ZXcoZnNsX2VkbWEsIDB4MCwgJnJlZ3MtPnRjZFtpXS5jc3Ip OwogCQlpZiAoZnNsX2NoYW4tPnNsYXZlX2lkICE9IDApCiAJCQlmc2xfZWRtYV9jaGFuX211eChm c2xfY2hhbiwgZnNsX2NoYW4tPnNsYXZlX2lkLCB0cnVlKTsKIAl9CiAKLQllZG1hX3dyaXRlbChm c2xfZWRtYSwgRURNQV9DUl9FUkdBIHwgRURNQV9DUl9FUkNBLAotCQkJZnNsX2VkbWEtPm1lbWJh c2UgKyBFRE1BX0NSKTsKKwllZG1hX3dyaXRlbChmc2xfZWRtYSwgRURNQV9DUl9FUkdBIHwgRURN QV9DUl9FUkNBLCByZWdzLT5jcik7CiAKIAlyZXR1cm4gMDsKIH0K