From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Date: Tue, 05 Nov 2002 21:16:57 +0000 Subject: [call for testers] [ PATCH] sparc64 auxio changes MIME-Version: 1 Content-Type: multipart/mixed; boundary="----NetAddressPart-00--=_eVq67200S10331482f1" Message-Id: List-Id: To: ultralinux@vger.kernel.org This is a multi-part message in MIME format. ------NetAddressPart-00--=_eVq67200S10331482f1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Attached is a patch for community review-- it applies to all sparc64 systems, but I especially need testers with SBus-based systems as I have no access to any at this time. This patch refactors AUXIO support for sparc64, mainly documentation. The salient changes are as follows: 1) SBus-based (NCR) impl now ANDN's mask bits rather than OR'ing -- this is a significant change, should be fine, needs testing -- 2) Exported auxio_register replaced with exported functions for LED, LT= E 3) Documentation updated for both sparc64 auxio implementations 4) Floppy asm uses macros rather than hard-coded values for auxio regs,= removed OR'ing of mask bits (AND'ing should not be required in this case, but is present and commented-out) 5) Modified sunlance.c as appropriate 6) Removed a few stale auxio #include's from drivers (probably more) Pete, the ANDN changes and register documentation should apply to sun4m = systems as well-- I believe they use the same NCR chipset, and sun4m = makes much more use of the auxio than does sun4u. I don't have such a patch for you, but could you please comment? Things to test: = lance ethernet auto carrier detection when OBP "tpe-link-test?" is true= system led illuminates/extinguishes as appropriate = things compile (esp. when CONFIG_PCI is not selected) SBus floppy still works (uh, does it work at all on SBus?) Thanks in advance for any comments. I have a trivial driver to = twiddle the system LED and lance LTE if you cannot figure it out = for yourself-- I'll post it to the list if anyone is interested. E ------NetAddressPart-00--=_eVq67200S10331482f1 Content-Type: application/octet-stream; name="auxio_diff.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="auxio_diff.patch" PT09PT0gYXJjaC9zcGFyYzY0L2tlcm5lbC9hdXhpby5jIDEuMyB2cyBlZGl0ZWQgPT09PT0K LS0tIDEuMy9hcmNoL3NwYXJjNjQva2VybmVsL2F1eGlvLmMJTW9uIEZlYiAgNCAyMzozOTo0 MCAyMDAyCisrKyBlZGl0ZWQvYXJjaC9zcGFyYzY0L2tlcm5lbC9hdXhpby5jCVN1biBPY3Qg MTMgMDE6NDI6MTcgMjAwMgpAQCAtMSwyOCArMSwxMTMgQEAKIC8qIGF1eGlvLmM6IFByb2Jp bmcgZm9yIHRoZSBTcGFyYyBBVVhJTyByZWdpc3RlciBhdCBib290IHRpbWUuCiAgKgogICog Q29weXJpZ2h0IChDKSAxOTk2IERhdmlkIFMuIE1pbGxlciAoZGF2ZW1AY2FpcC5ydXRnZXJz LmVkdSkKKyAqCisgKiBSZWZhY3RvcmluZyBmb3IgdW5pZmllZCBOQ1IvUENJTyBzdXBwb3J0 IDIwMDIgRXJpYyBCcm93ZXIgKGVicm93ZXJAdXNhLm5ldCkKICAqLwogCiAjaW5jbHVkZSA8 bGludXgvY29uZmlnLmg+Ci0jaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CiAjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxs aW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgv ZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KIAogI2luY2x1ZGUgPGFzbS9v cGxpYi5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9hdXhpby5oPgog I2luY2x1ZGUgPGFzbS9zYnVzLmg+CiAjaW5jbHVkZSA8YXNtL2VidXMuaD4KLSNpbmNsdWRl IDxhc20vZmhjLmg+Ci0jaW5jbHVkZSA8YXNtL3NwaXRmaXJlLmg+Ci0jaW5jbHVkZSA8YXNt L3N0YXJmaXJlLmg+CisjaW5jbHVkZSA8YXNtL2F1eGlvLmg+CisKKy8qIFRoaXMgY2Fubm90 IGJlIHN0YXRpYywgYXMgaXQgaXMgcmVmZXJlbmNlZCBpbiBlbnRyeS5TICovCit1bnNpZ25l ZCBsb25nIGF1eGlvX3JlZ2lzdGVyID0gMFVMOworCitlbnVtIGF1eGlvX3R5cGUgeworCUFV WElPX1RZUEVfTk9ERVYsCisJQVVYSU9fVFlQRV9TQlVTLAorCUFVWElPX1RZUEVfRUJVUwor fTsKIAotLyogUHJvYmUgYW5kIG1hcCBpbiB0aGUgQXV4aWxpYXJ5IEkvTyByZWdpc3RlciAq LwotdW5zaWduZWQgbG9uZyBhdXhpb19yZWdpc3RlciA9IDA7CitzdGF0aWMgZW51bSBhdXhp b190eXBlIGF1eGlvX2RldnR5cGUgPSBBVVhJT19UWVBFX05PREVWOworCitzdGF0aWMgdm9p ZCBfX2F1eGlvX3NidXNfc2V0KHU4IGJpdHNfb24sIHU4IGJpdHNfb2ZmKQoreworCWlmKGF1 eGlvX3JlZ2lzdGVyKSB7CisJCXVuc2lnbmVkIGNoYXIgcmVndmFsOworCQl1bnNpZ25lZCBs b25nIGZsYWdzOworCQl1bnNpZ25lZCBjaGFyIG5ld3ZhbDsKKworCQlzYXZlX2ZsYWdzKGZs YWdzKTsgY2xpKCk7CisKKwkJcmVndmFsID0gIHNidXNfcmVhZGIoYXV4aW9fcmVnaXN0ZXIp OworCQluZXd2YWwgPSAgcmVndmFsIHwgYml0c19vbjsKKwkJbmV3dmFsICY9IH5iaXRzX29m ZjsKKwkJbmV3dmFsICY9IH5BVVhJT19BVVgxX01BU0s7CisJCXNidXNfd3JpdGViKG5ld3Zh bCwgYXV4aW9fcmVnaXN0ZXIpOworCisJCXJlc3RvcmVfZmxhZ3MoZmxhZ3MpOworCX0KK30K Kworc3RhdGljIHZvaWQgX19hdXhpb19lYnVzX3NldCh1OCBiaXRzX29uLCB1OCBiaXRzX29m ZikKK3sKKwlpZihhdXhpb19yZWdpc3RlcikgeworCQl1bnNpZ25lZCBjaGFyIHJlZ3ZhbDsK KwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkJdW5zaWduZWQgY2hhciBuZXd2YWw7CisKKwkJ c2F2ZV9mbGFncyhmbGFncyk7IGNsaSgpOworCisJCXJlZ3ZhbCA9ICAodTgpcmVhZGwoYXV4 aW9fcmVnaXN0ZXIpOworCQluZXd2YWwgPSAgcmVndmFsIHwgYml0c19vbjsKKwkJbmV3dmFs ICY9IH5iaXRzX29mZjsKKwkJd3JpdGVsKCh1MzIpbmV3dmFsLCBhdXhpb19yZWdpc3Rlcik7 CisKKwkJcmVzdG9yZV9mbGFncyhmbGFncyk7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHZv aWQgX19hdXhpb19lYnVzX3NldF9sZWQoaW50IG9uKQoreworCShvbikgPyBfX2F1eGlvX2Vi dXNfc2V0KEFVWElPX1BDSU9fTEVELCAwKSA6CisJCV9fYXV4aW9fZWJ1c19zZXQoMCwgQVVY SU9fUENJT19MRUQpIDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIF9fYXV4aW9fc2J1c19z ZXRfbGVkKGludCBvbikKK3sKKwkob24pID8gX19hdXhpb19zYnVzX3NldChBVVhJT19BVVgx X0xFRCwgMCkgOgorCQlfX2F1eGlvX3NidXNfc2V0KDAsIEFVWElPX0FVWDFfTEVEKSA7Cit9 CisKK3ZvaWQgYXV4aW9fc2V0X2xlZChpbnQgb24pCit7CisJc3dpdGNoKGF1eGlvX2RldnR5 cGUpIHsKKwljYXNlIEFVWElPX1RZUEVfU0JVUzoKKwkJX19hdXhpb19zYnVzX3NldF9sZWQo b24pOworCQlicmVhazsKKwljYXNlIEFVWElPX1RZUEVfRUJVUzoKKwkJX19hdXhpb19lYnVz X3NldF9sZWQob24pOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZCBfX2F1eGlvX3NidXNfc2V0X2x0ZShpbnQgb24pCit7CisJ KG9uKSA/IF9fYXV4aW9fc2J1c19zZXQoQVVYSU9fQVVYMV9MVEUsIDApIDogCisJCV9fYXV4 aW9fc2J1c19zZXQoMCwgQVVYSU9fQVVYMV9MVEUpIDsKK30KKwordm9pZCBhdXhpb19zZXRf bHRlKGludCBvbikKK3sKKwlzd2l0Y2goYXV4aW9fZGV2dHlwZSkgeworCWNhc2UgQVVYSU9f VFlQRV9TQlVTOgorCQlfX2F1eGlvX3NidXNfc2V0X2x0ZShvbik7CisJCWJyZWFrOworCWNh c2UgQVVYSU9fVFlQRV9FQlVTOgorCQkvKiBGQUxMLVRIUk9VR0ggKi8KKwlkZWZhdWx0Ogor CQlicmVhazsKKwl9Cit9CiAKIHZvaWQgX19pbml0IGF1eGlvX3Byb2JlKHZvaWQpCiB7CkBA IC0zNywxMSArMTIyLDE1IEBACiAgICAgICAgIH0KIAogZm91bmRfc2RldjoKLQlpZiAoIXNk ZXYpIHsKKwlpZiAoc2RldikgeworCQlhdXhpb19kZXZ0eXBlICA9IEFVWElPX1RZUEVfU0JV UzsKKwkJYXV4aW9fcmVnaXN0ZXIgPSBzYnVzX2lvcmVtYXAoJnNkZXYtPnJlc291cmNlWzBd LCAwLAorCQkgIAkJc2Rldi0+cmVnX2FkZHJzWzBdLnJlZ19zaXplLCAiYXV4aWxpYXJ5SU8i KTsKKwl9CiAjaWZkZWYgQ09ORklHX1BDSQorCWVsc2UgewogCQlzdHJ1Y3QgbGludXhfZWJ1 cyAqZWJ1czsKIAkJc3RydWN0IGxpbnV4X2VidXNfZGV2aWNlICplZGV2ID0gMDsKLQkJdW5z aWduZWQgbG9uZyBsZWRfYXV4aW87CiAKIAkJZm9yX2VhY2hfZWJ1cyhlYnVzKSB7CiAJCQlm b3JfZWFjaF9lYnVzZGV2KGVkZXYsIGVidXMpIHsKQEAgLTUwLDE5ICsxMzksMTIgQEAKIAkJ CX0KIAkJfQogCWVidXNfZG9uZToKLQogCQlpZiAoZWRldikgewotCQkJbGVkX2F1eGlvID0g ZWRldi0+cmVzb3VyY2VbMF0uc3RhcnQ7Ci0JCQlvdXRsKDB4MDEsIGxlZF9hdXhpbyk7Ci0J CQlyZXR1cm47CisJCQlhdXhpb19kZXZ0eXBlICA9IEFVWElPX1RZUEVfRUJVUzsKKwkJCWF1 eGlvX3JlZ2lzdGVyID0gKHVuc2lnbmVkIGxvbmcpCisJCQkJaW9yZW1hcChlZGV2LT5yZXNv dXJjZVswXS5zdGFydCwgc2l6ZW9mKHUzMikpOwogCQl9Ci0jZW5kaWYKLQkJYXV4aW9fcmVn aXN0ZXIgPSAwVUw7Ci0JCXJldHVybjsKIAl9Ci0KLQkvKiBNYXAgdGhlIHJlZ2lzdGVyIGJv dGggcmVhZCBhbmQgd3JpdGUgKi8KLQlhdXhpb19yZWdpc3RlciA9IHNidXNfaW9yZW1hcCgm c2Rldi0+cmVzb3VyY2VbMF0sIDAsCi0JCQkJICAgICAgc2Rldi0+cmVnX2FkZHJzWzBdLnJl Z19zaXplLCAiYXV4aWxpYXJ5SU8iKTsKLQlUVVJOX09OX0xFRDsKKwlhdXhpb19zZXRfbGVk KEFVWElPX0xFRF9PTik7CisjZW5kaWYKIH0KPT09PT0gYXJjaC9zcGFyYzY0L2tlcm5lbC9l bnRyeS5TIDEuMTIgdnMgZWRpdGVkID09PT09Ci0tLSAxLjEyL2FyY2gvc3BhcmM2NC9rZXJu ZWwvZW50cnkuUwlNb24gQXVnIDI2IDAyOjM2OjQxIDIwMDIKKysrIGVkaXRlZC9hcmNoL3Nw YXJjNjQva2VybmVsL2VudHJ5LlMJU3VuIE9jdCAxMyAwMDo0MDowOCAyMDAyCkBAIC0yMCw2 ICsyMCw3IEBACiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS92 aXNhc20uaD4KICNpbmNsdWRlIDxhc20vZXN0YXRlLmg+CisjaW5jbHVkZSA8YXNtL2F1eGlv Lmg+CiAKIC8qICNkZWZpbmUgU1lTQ0FMTF9UUkFDSU5HCTEgKi8KIApAQCAtNjYyLDkgKzY2 MywxMSBAQAogCXNldGhpCQklaGkoYXV4aW9fcmVnaXN0ZXIpLCAlZzEKIAlsZHgJCVslZzEg KyAlbG8oYXV4aW9fcmVnaXN0ZXIpXSwgJWc3CiAJbGR1YmEJCVslZzddIEFTSV9QSFlTX0JZ UEFTU19FQ19FLCAlZzUKLQlvcgkJJWc1LCAweGMyLCAlZzUKKwlvcgkJJWc1LCBBVVhJT19B VVgxX0ZUQ05ULCAlZzUKKy8qCWFuZG4JCSVnNSwgQVVYSU9fQVVYMV9NQVNLLCAlZzUgKi8K IAlzdGJhCQklZzUsIFslZzddIEFTSV9QSFlTX0JZUEFTU19FQ19FCi0JYW5kbgkJJWc1LCAw eDAyLCAlZzUKKwlhbmRuCQklZzUsIEFVWElPX0FVWDFfRlRDTlQsICVnNQorLyoJYW5kbgkJ JWc1LCBBVVhJT19BVVgxX01BU0ssICVnNSAqLwogCiAJbm9wOyBub3A7ICBub3A7IG5vcDsg IG5vcDsgbm9wOwogCW5vcDsgbm9wOyAgbm9wOyBub3A7ICBub3A7IG5vcDsKPT09PT0gYXJj aC9zcGFyYzY0L2tlcm5lbC9wb3dlci5jIDEuNSB2cyBlZGl0ZWQgPT09PT0KLS0tIDEuNS9h cmNoL3NwYXJjNjQva2VybmVsL3Bvd2VyLmMJTW9uIEp1biAxNyAxNDo1NDozMSAyMDAyCisr KyBlZGl0ZWQvYXJjaC9zcGFyYzY0L2tlcm5lbC9wb3dlci5jCVN1biBPY3QgMTMgMDE6NDU6 MTcgMjAwMgpAQCAtMTIsMTQgKzEyLDEzIEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K IAogI2luY2x1ZGUgPGFzbS9lYnVzLmg+CisjaW5jbHVkZSA8YXNtL2F1eGlvLmg+CiAKICNk ZWZpbmUgX19LRVJORUxfU1lTQ0FMTFNfXwogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPgog CiAjaWZkZWYgQ09ORklHX1BDSQogc3RhdGljIHVuc2lnbmVkIGxvbmcgcG93ZXJfcmVnID0g MFVMOwotI2RlZmluZSBQT1dFUl9TWVNURU1fT0ZGICgxIDw8IDApCi0jZGVmaW5lIFBPV0VS X0NPVVJURVNZX09GRiAoMSA8PCAxKQogCiBzdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hF QUQocG93ZXJkX3dhaXQpOwogc3RhdGljIGludCBidXR0b25fcHJlc3NlZDsKQEAgLTQ4LDcg KzQ3LDcgQEAKIAkJCSAqIHNhbWUgZWZmZWN0LCBzbyB1bnRpbCBJIGZpZ3VyZSBvdXQKIAkJ CSAqIHdoYXQgdGhlIGRpZmZlcmVuY2UgaXMuLi4KIAkJCSAqLwotCQkJd3JpdGVsKFBPV0VS X0NPVVJURVNZX09GRiB8IFBPV0VSX1NZU1RFTV9PRkYsIHBvd2VyX3JlZyk7CisJCQl3cml0 ZWwoQVVYSU9fUENJT19DUFdSX09GRiB8IEFVWElPX1BDSU9fU1BXUl9PRkYsIHBvd2VyX3Jl Zyk7CiAJCX0gZWxzZQogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIAkJCWlmIChwb3dlcm9m Zl9tZXRob2QgIT0gTlVMTCkgewo9PT09PSBhcmNoL3NwYXJjNjQva2VybmVsL3NwYXJjNjRf a3N5bXMuYyAxLjE5IHZzIGVkaXRlZCA9PT09PQotLS0gMS4xOS9hcmNoL3NwYXJjNjQva2Vy bmVsL3NwYXJjNjRfa3N5bXMuYwlGcmkgSnVuICA3IDIzOjQ5OjMzIDIwMDIKKysrIGVkaXRl ZC9hcmNoL3NwYXJjNjQva2VybmVsL3NwYXJjNjRfa3N5bXMuYwlTdW4gT2N0IDEzIDAyOjA2 OjU5IDIwMDIKQEAgLTIwMCw3ICsyMDAsOCBAQAogRVhQT1JUX1NZTUJPTChtc3RrNDh0MDJf cmVncyk7CiBFWFBPUlRfU1lNQk9MKHJlcXVlc3RfZmFzdF9pcnEpOwogI2lmIENPTkZJR19T VU5fQVVYSU8KLUVYUE9SVF9TWU1CT0woYXV4aW9fcmVnaXN0ZXIpOworRVhQT1JUX1NZTUJP TChhdXhpb19zZXRfbGVkKTsKK0VYUE9SVF9TWU1CT0woYXV4aW9fc2V0X2x0ZSk7CiAjZW5k aWYKICNpZiBDT05GSUdfU0JVUwogRVhQT1JUX1NZTUJPTChzYnVzX3Jvb3QpOwo9PT09PSBk cml2ZXJzL2ZjNC9zb2MuYyAxLjYgdnMgZWRpdGVkID09PT09Ci0tLSAxLjYvZHJpdmVycy9m YzQvc29jLmMJVGh1IE1hciAyMSAyMTozMzo0MSAyMDAyCisrKyBlZGl0ZWQvZHJpdmVycy9m YzQvc29jLmMJTW9uIE9jdCAgNyAwOToxOTozMiAyMDAyCkBAIC00MCw3ICs0MCw2IEBACiAK ICNpbmNsdWRlIDxhc20vb3BlbnByb20uaD4KICNpbmNsdWRlIDxhc20vb3BsaWIuaD4KLSNp bmNsdWRlIDxhc20vYXV4aW8uaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1 ZGUgPGFzbS9pcnEuaD4KIAo9PT09PSBkcml2ZXJzL2ZjNC9zb2NhbC5jIDEuNSB2cyBlZGl0 ZWQgPT09PT0KLS0tIDEuNS9kcml2ZXJzL2ZjNC9zb2NhbC5jCVRodSBNYXIgMjEgMjE6MzM6 NDEgMjAwMgorKysgZWRpdGVkL2RyaXZlcnMvZmM0L3NvY2FsLmMJTW9uIE9jdCAgNyAwOTox ODoyMyAyMDAyCkBAIC0zNiw3ICszNiw2IEBACiAKICNpbmNsdWRlIDxhc20vb3BlbnByb20u aD4KICNpbmNsdWRlIDxhc20vb3BsaWIuaD4KLSNpbmNsdWRlIDxhc20vYXV4aW8uaD4KICNp bmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KIAo9PT09PSBk cml2ZXJzL25ldC9zdW5sYW5jZS5jIDEuMTEgdnMgZWRpdGVkID09PT09Ci0tLSAxLjExL2Ry aXZlcnMvbmV0L3N1bmxhbmNlLmMJTW9uIE1heSAxMyAxNTo1NDo0NiAyMDAyCisrKyBlZGl0 ZWQvZHJpdmVycy9uZXQvc3VubGFuY2UuYwlXZWQgT2N0ICA5IDA4OjQ4OjU0IDIwMDIKQEAg LTE0MjEsNyArMTQyMSw3IEBACiAJCQkJICAgICAgICIndHBlLWxpbmstdGVzdD8nXG4iLCBk ZXYtPm5hbWUpOwogCQkJCXByaW50ayhLRVJOX05PVElDRSAiJXM6IHdhcm5pbmc6IG1haWwg YW55IHByb2JsZW1zICIKIAkJCQkgICAgICAgInRvIGVjZEBza3luZXQuYmVcbiIsIGRldi0+ bmFtZSk7Ci0JCQkJc2V0X2F1eGlvKEFVWElPX0xJTktfVEVTVCwgMCk7CisJCQkJYXV4aW9f c2V0X2x0ZShBVVhJT19MVEVfT04pOwogCQkJfQogbm9fbGlua190ZXN0OgogCQkJbHAtPmF1 dG9fc2VsZWN0ID0gMTsKPT09PT0gaW5jbHVkZS9hc20tc3BhcmM2NC9hdXhpby5oIDEuMiB2 cyBlZGl0ZWQgPT09PT0KLS0tIDEuMi9pbmNsdWRlL2FzbS1zcGFyYzY0L2F1eGlvLmgJTW9u IEZlYiAgNCAyMzo0MTowNCAyMDAyCisrKyBlZGl0ZWQvaW5jbHVkZS9hc20tc3BhcmM2NC9h dXhpby5oCVN1biBPY3QgMTMgMDE6NDI6NTYgMjAwMgpAQCAtMSwxMTIgKzEsOTggQEAKIC8q ICRJZDogYXV4aW8uaCx2IDEuMyAyMDAxLzA2LzA1IDA4OjE2OjM0IGRhdmVtIEV4cCAkCi0g KiBhdXhpby5oOiAgRGVmaW5pdGlvbnMgYW5kIGNvZGUgZm9yIHRoZSBBdXhpbGlhcnkgSS9P IHJlZ2lzdGVyLgorICogYXV4aW8uaDogIERlZmluaXRpb25zIGFuZCBjb2RlIGZvciB0aGUg QXV4aWxpYXJ5IEkvTyByZWdpc3RlcnMKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTUgRGF2 aWQgUy4gTWlsbGVyIChkYXZlbUBjYWlwLnJ1dGdlcnMuZWR1KQorICoKKyAqIFJlZmFjdG9y aW5nIGZvciB1bmlmaWVkIE5DUi9QQ0lPIHN1cHBvcnQgMjAwMiBFcmljIEJyb3dlciAoZWJy b3dlckB1c2EubmV0KQogICovCiAjaWZuZGVmIF9TUEFSQzY0X0FVWElPX0gKICNkZWZpbmUg X1NQQVJDNjRfQVVYSU9fSAogCi0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUg PGFzbS9pby5oPgotCi0vKiBGSVhNRTogQWxsIG9mIHRoaXMgc2hvdWxkIGJlIGNoZWNrZWQg Zm9yIHN1bjR1LiBJdCBoYXMgL3NidXMvYXV4aW8sIGJ1dAotICAgSSBkb24ndCBrbm93IHdo ZXRoZXIgaXQgaXMgdGhlIHNhbWUgYW5kIGRvbid0IGhhdmUgYSBmbG9wcHkgKi8KKy8qIEFV WElPIGltcGxlbWVudGF0aW9uczoKKyAqIHNidXMtYmFzZWQgTkNSODlDMTA1ICJTbGF2aW8i CisgKglMRUQvRmxvcHB5IChBVVgxKSByZWdpc3RlcgorICoJUG93ZXIgKEFVWDIpIHJlZ2lz dGVyCisgKgorICogZWJ1cy1iYXNlZCBhdXhpbyBvbiBQQ0lPIAorICoJTEVEIEF1eGlvIFJl Z2lzdGVyCisgKglQb3dlciBBdXhpbyBSZWdpc3RlcgorICoKKyAqIFJlZ2lzdGVyIGRlZmlu aXRpb25zIGZyb20gTkNSIF9OQ1I4OUMxMDUgQ2hpcCBTcGVjaWZpY2F0aW9uXworICogCisg KiBTTEFWSU8gQVVYMSBAIDB4MTkwMDAwMAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCAoUikgfCAoUikgfCAgRCAgfCAoUikg fCAgRSAgfCAgTSAgfCAgVCAgfCAgTCAgfAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogKFIpIC0gYml0IDc6Niw0IGFyZSByZXNl cnZlZCBhbmQgc2hvdWxkIGJlIG1hc2tlZCBpbiBzL3cKKyAqICBEICAtIEZsb3BweSBEZW5z aXR5IFNlbnNlICgxPWhpZ2ggZGVuc2l0eSkgUi9PCisgKiAgRSAgLSBMaW5rIFRlc3QgRW5h YmxlLCBkaXJlY3RseSByZWZsZWN0ZWQgb24gQVQmVCA3MjEzIExURSBwaW4KKyAqICBNICAt IE1vbml0b3IvTW91c2UgTXV4LCBkaXJlY3RseSByZWZsZWN0ZWQgb24gTU9OX01TRV9NVVgg cGluCisgKiAgVCAgLSBUZXJtaW5hbCBDb3VudDogc2VuZHMgVEMgcHVsc2UgdG8gODIwNzcg ZmxvcHB5IGNvbnRyb2xsZXIKKyAqICBMICAtIFN5c3RlbSBMRUQgb24gZnJvbnQgcGFuZWwg KDA9b2ZmLCAxPW9uKSAKKyAqLworI2RlZmluZSBBVVhJT19BVVgxX01BU0sJCTB4YzAgLyog TWFzayBiaXRzIAkJKi8KKyNkZWZpbmUgQVVYSU9fQVVYMV9GREVOUwkweDIwIC8qIEZsb3Bw eSBEZW5zaXR5IFNlbnNlCSovCisjZGVmaW5lIEFVWElPX0FVWDFfTFRFIAkJMHgwOCAvKiBM aW5rIFRlc3QgRW5hYmxlIAkqLworI2RlZmluZSBBVVhJT19BVVgxX01NVVgJCTB4MDQgLyog TW9uaXRvci9Nb3VzZSBNdXgJKi8KKyNkZWZpbmUgQVVYSU9fQVVYMV9GVENOVAkweDAyIC8q IFRlcm1pbmFsIENvdW50LCAJKi8KKyNkZWZpbmUgQVVYSU9fQVVYMV9MRUQJCTB4MDEgLyog U3lzdGVtIExFRAkJKi8KKworLyogU0xBVklPIEFVWDIgQCAweDE5MTAwMDAKKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgKFIp IHwgKFIpIHwgIEQgIHwgKFIpIHwgKFIpIHwgKFIpIHwgIEMgIHwgIEYgIHwKKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIChSKSAt IGJpdHMgNzo2LDQ6MiBhcmUgcmVzZXJ2ZWQgYW5kIHNob3VsZCBiZSBtYXNrZWQgaW4gcy93 CisgKiAgRCAgLSBQb3dlciBGYWlsdXJlIERldGVjdCAoMT1wb3dlciBmYWlsKQorICogIEMg IC0gQ2xlYXIgUG93ZXIgRmFpbHVyZSBEZXRlY3QgSW50ICgxPWNsZWFyKQorICogIEYgIC0g UG93ZXIgT2ZmICgxPXBvd2VyIG9mZikKKyAqLworI2RlZmluZSBBVVhJT19BVVgyX01BU0sJ CTB4ZGMgLyogTWFzayBCaXRzCQkqLworI2RlZmluZSBBVVhJT19BVVgyX1BGQUlMREVUCTB4 MjAgLyogUG93ZXIgRmFpbCBEZXRlY3QJKi8KKyNkZWZpbmUgQVVYSU9fQVVYMl9QRkFJTENM UiAJMHgwMiAvKiBDbGVhciBQd3IgRmFpbCBEZXQgSW50cgkqLworI2RlZmluZSBBVVhJT19B VVgyX1BXUl9PRkYJMHgwMSAvKiBQb3dlciBPZmYJCSovCiAKLWV4dGVybiB1bnNpZ25lZCBs b25nIGF1eGlvX3JlZ2lzdGVyOworLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgZnJvbSBTdW4g TWljcm9zeXN0ZW1zIF9QQ0lPXyBwL24gODAyLTc4MzcKKyAqCisgKiBQQ0lPIExFRCBBdXhp byBAIDB4NzI2MDAwCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKiB8ICAgICAgICAgICAgIDMxOjEgVW51c2VkICAgICAgICAgICAg ICAgICB8IExFRCB8CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKiBCaXRzIDMxOjEgdW51c2VkCisgKiBMRUQgLSBTeXN0ZW0gTEVE IG9uIGZyb250IHBhbmVsICgwPW9mZiwgMT1vbikKKyAqLworI2RlZmluZSBBVVhJT19QQ0lP X0xFRAkJMHgwMSAvKiBTeXN0ZW0gTEVEIAkJKi8gCiAKLS8qIFRoaXMgcmVnaXN0ZXIgaXMg YW4gdW5zaWduZWQgY2hhciBpbiBJTyBzcGFjZS4gIEl0IGRvZXMgdHdvIHRoaW5ncy4KLSAq IEZpcnN0LCBpdCBpcyB1c2VkIHRvIGNvbnRyb2wgdGhlIGZyb250IHBhbmVsIExFRCBsaWdo dCBvbiBtYWNoaW5lcwotICogdGhhdCBoYXZlIGl0IChnb29kIGZvciB0ZXN0aW5nIGVudHJ5 IHBvaW50cyB0byB0cmFwIGhhbmRsZXJzIGFuZCBpcnEncykKLSAqIFNlY29uZGx5LCBpdCBj b250cm9scyB2YXJpb3VzIGZsb3BweSBkcml2ZSBwYXJhbWV0ZXJzLgotICovCi0jZGVmaW5l IEFVWElPX09STUVJTiAgICAgIDB4ZjAgICAgLyogQWxsIHdyaXRlcyBtdXN0IHNldCB0aGVz ZSBiaXRzLiAqLwotI2RlZmluZSBBVVhJT19PUk1FSU40TSAgICAweGMwICAgIC8qIHN1bjRt IC0gQWxsIHdyaXRlcyBtdXN0IHNldCB0aGVzZSBiaXRzLiAqLwotI2RlZmluZSBBVVhJT19G TFBZX0RFTlMgICAweDIwICAgIC8qIEZsb3BweSBkZW5zaXR5LCBoaWdoIGlmIHNldC4gUmVh ZCBvbmx5LiAqLwotI2RlZmluZSBBVVhJT19GTFBZX0RDSEcgICAweDEwICAgIC8qIEEgZGlz ayBjaGFuZ2Ugb2NjdXJyZWQuICBSZWFkIG9ubHkuICovCi0jZGVmaW5lIEFVWElPX0VER0Vf T04gICAgIDB4MTAgICAgLyogc3VuNG0gLSBPbiBtZWFucyBKdW1wZXIgYmxvY2sgaXMgaW4u ICovCi0jZGVmaW5lIEFVWElPX0ZMUFlfRFNFTCAgIDB4MDggICAgLyogRHJpdmUgc2VsZWN0 L3N0YXJ0LW1vdG9yLiBXcml0ZSBvbmx5LiAqLwotI2RlZmluZSBBVVhJT19MSU5LX1RFU1Qg ICAweDA4ICAgIC8qIHN1bjRtIC0gT24gbWVhbnMgVFBFIENhcnJpZXIgZGV0ZWN0LiAqLwot Ci0vKiBTZXQgdGhlIGZvbGxvd2luZyB0byBvbmUsIHRoZW4gemVybywgYWZ0ZXIgZG9pbmcg YSBwc2V1ZG8gRE1BIHRyYW5zZmVyLiAqLwotI2RlZmluZSBBVVhJT19GTFBZX1RDTlQgICAw eDA0ICAgIC8qIEZsb3BweSB0ZXJtaW5hbCBjb3VudC4gV3JpdGUgb25seS4gKi8KLQotLyog U2V0IHRoZSBmb2xsb3dpbmcgdG8gemVybyB0byBlamVjdCB0aGUgZmxvcHB5LiAqLwotI2Rl ZmluZSBBVVhJT19GTFBZX0VKQ1QgICAweDAyICAgIC8qIEVqZWN0IGZsb3BweSBkaXNrLiAg V3JpdGUgb25seS4gKi8KLSNkZWZpbmUgQVVYSU9fTEVEICAgICAgICAgMHgwMSAgICAvKiBP biBpZiBzZXQsIG9mZiBpZiB1bnNldC4gUmVhZC9Xcml0ZSAqLwotCi0jZGVmaW5lIEFVWFJF RyAgIChhdXhpb19yZWdpc3RlcikKLQotLyogVGhlc2UgYXJlIGF2YWlsYWJsZSBvbiBzdW40 YyAqLwotI2RlZmluZSBUVVJOX09OX0xFRCAgIFwKLWRvIHsJaWYgKEFVWFJFRykgXAotCQlz YnVzX3dyaXRlYihzYnVzX3JlYWRiKEFVWFJFRykgfCBcCi0JCQkgICAgKEFVWElPX09STUVJ TiB8IEFVWElPX0xFRCksIEFVWFJFRyk7IFwKLX0gd2hpbGUoMCkKLSNkZWZpbmUgVFVSTl9P RkZfTEVEICBcCi1kbyB7CWlmIChBVVhSRUcpIFwKLQkJc2J1c193cml0ZWIoKHNidXNfcmVh ZGIoQVVYUkVHKSB8IFwKLQkJCSAgICAgQVVYSU9fT1JNRUlOKSAmICh+QVVYSU9fTEVEKSwg XAotCQkJICAgIEFVWFJFRyk7IFwKLX0gd2hpbGUoMCkKLSNkZWZpbmUgRkxJUF9MRUQJXAot ZG8gewlpZiAoQVVYUkVHKSAgXAotCQlzYnVzX3dyaXRlYigoc2J1c19yZWFkYihBVVhSRUcp IHwgXAotCQkJICAgICBBVVhJT19PUk1FSU4pIF4gQVVYSU9fTEVOLCBcCi0JCQkgICAgQVVY UkVHKTsgXAotfSB3aGlsZSgwKQotI2RlZmluZSBGTFBZX01PVE9ST04JXAotZG8gewlpZiAo QVVYUkVHKSBcCi0JCXNidXNfd3JpdGViKHNidXNfcmVhZGIoQVVYUkVHKSB8IFwKLQkJCSAg ICAoQVVYSU9fT1JNRUlOIHwgQVVYSU9fRkxQWV9EU0VMKSwgXAotCQkJICAgIEFVWFJFRyk7 IFwKLX0gd2hpbGUoMCkKLSNkZWZpbmUgRkxQWV9NT1RPUk9GRglcCi1kbyB7CWlmIChBVVhS RUcpIFwKLQkJc2J1c193cml0ZWIoKHNidXNfcmVhZGIoQVVYUkVHKSB8IFwKLQkJCSAgICAg QVVYSU9fT1JNRUlOKSAmICh+QVVYSU9fRkxQWV9EU0VMKSwgXAotCQkJICAgIEFVWFJFRyk7 IFwKLX0gd2hpbGUoMCkKLSNkZWZpbmUgRkxQWV9UQ05UT04JXAotZG8gewlpZiAoQVVYUkVH KSBcCi0JCXNidXNfd3JpdGViKChzYnVzX3JlYWRiKEFVWFJFRykgfCBcCi0JCQkgICAgIEFV WElPX09STUVJTikgfCBBVVhJT19GTFBZX1RDTlQsIFwKLQkJCSAgICBBVVhSRUcpOyBcCi19 IHdoaWxlKDApCi0jZGVmaW5lIEZMUFlfVENOVE9GRglcCi1kbyB7CWlmIChBVVhSRUcpIFwK LQkJc2J1c193cml0ZWIoKHNidXNfcmVhZGIoQVVYUkVHKSB8IFwKLQkJCSAgICAgQVVYSU9f T1JNRUlOKSAmICh+QVVYSU9fRkxQWV9UQ05UKSwgXAotCQkJICAgIEFVWFJFRyk7IFwKLX0g d2hpbGUoMCkKKy8qIFBDSU8gUG93ZXIgQXV4aW8gQCAweDcyNDAwMAorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCAgICAgICAg ICAgICAzMToyIFVudXNlZCAgICAgICAgICAgfCBDUE8gfCBTUE8gfAorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQml0cyAzMToy IHVudXNlZAorICogQ1BPIC0gQ291cnRlc3kgUG93ZXIgT2ZmICgxPW9mZikKKyAqIFNQTyAt IFN5c3RlbSBQb3dlciBPZmYgICAoMT1vZmYpCisgKi8KKyNkZWZpbmUgQVVYSU9fUENJT19D UFdSX09GRgkweDAyIC8qIENvdXJ0ZXN5IFBvd2VyIE9mZgkqLworI2RlZmluZSBBVVhJT19Q Q0lPX1NQV1JfT0ZGCTB4MDEgLyogU3lzdGVtIFBvd2VyIE9mZgkqLwogCiAjaWZuZGVmIF9f QVNTRU1CTFlfXwotZXh0ZXJuIF9faW5saW5lX18gdm9pZCBzZXRfYXV4aW8odW5zaWduZWQg Y2hhciBiaXRzX29uLCB1bnNpZ25lZCBjaGFyIGJpdHNfb2ZmKQotewotCXVuc2lnbmVkIGNo YXIgcmVndmFsOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzYXZlX2ZsYWdzKGZsYWdz KTsgY2xpKCk7CiAKLQlpZihBVVhSRUcpIHsKLQkJdW5zaWduZWQgY2hhciBuZXd2YWw7Ci0K LQkJcmVndmFsID0gc2J1c19yZWFkYihBVVhSRUcpOwotCQluZXd2YWwgID0gcmVndmFsIHwg Yml0c19vbjsKLQkJbmV3dmFsICY9IH5iaXRzX29mZjsKLQkJbmV3dmFsIHw9IEFVWElPX09S TUVJTjRNOwotCQlzYnVzX3dyaXRlYihuZXd2YWwsIEFVWFJFRyk7Ci0JfQotCXJlc3RvcmVf ZmxhZ3MoZmxhZ3MpOwotfQotI2VuZGlmIC8qICEoX19BU1NFTUJMWV9fKSAqLworI2RlZmlu ZSBBVVhJT19MVEVfT04JMQorI2RlZmluZSBBVVhJT19MVEVfT0ZGCTAKIAorLyogYXV4aW9f c2V0X2x0ZSAtIFNldCBMaW5rIFRlc3QgRW5hYmxlIChUUEUgTGluayBEZXRlY3QpCisgKgor ICogb24gLSBBVVhJT19MVEVfT04gb3IgQVVYSU9fTFRFX09GRgorICovCitleHRlcm4gdm9p ZCBhdXhpb19zZXRfbHRlKGludCBvbik7CiAKLS8qIEFVWElPMiAoUG93ZXIgT2ZmIENvbnRy b2wpICovCi1leHRlcm4gX192b2xhdGlsZV9fIHVuc2lnbmVkIGNoYXIgKiBhdXhpb19wb3dl cl9yZWdpc3RlcjsKKyNkZWZpbmUgQVVYSU9fTEVEX09OCTEKKyNkZWZpbmUgQVVYSU9fTEVE X09GRgkwCiAKLSNkZWZpbmUJQVVYSU9fUE9XRVJfREVURUNUX0ZBSUxVUkUJMzIKLSNkZWZp bmUJQVVYSU9fUE9XRVJfQ0xFQVJfRkFJTFVSRQkyCi0jZGVmaW5lCUFVWElPX1BPV0VSX09G RgkJCTEKKy8qIGF1eGlvX3NldF9sZWQgLSBTZXQgc3lzdGVtIGZyb250IHBhbmVsIExFRCAK KyAqCisgKiBvbiAtIEFVWElPX0xFRF9PTiBvciBBVVhJT19MRURfT0ZGCisgKi8KK2V4dGVy biB2b2lkIGF1eGlvX3NldF9sZWQoaW50IG9uKTsKIAorI2VuZGlmIC8qIGlmbmRlZiBfX0FT U0VNQkxZX18gKi8gCiAKLSNlbmRpZiAvKiAhKF9TUEFSQ19BVVhJT19IKSAqLworI2VuZGlm IC8qICEoX1NQQVJDNjRfQVVYSU9fSCkgKi8K ------NetAddressPart-00--=_eVq67200S10331482f1--