[PATCH 9/9] Refactor devices build
Ladislav Michl <[email protected]> Sat, 25 Jan 2020 10:49:02 +0100
| Newsgroups | gmane.linux.drivers.gnokii |
|---|---|
| Message-ID | <20200125094902.GI143000@lenoch> |
SW50cm9kdWNlIGJhc2ljIGRldmljZSBwbHVnaW4gYXJjaGl0ZWN0dXJlLCB3aGljaCBhbGxvd3Mg dG8KcmVtb3ZlICNpZmRlZnMgZnJvbSBkZXZpY2UgZHJpdmVycyBhbmQgY29tcGlsZSB0aGVtIG9u bHkgd2hlbgpzZWxlY3RlZCBhbmQgYWxzbyByZW1vdmUgc3R1YiBmdW5jdGlvbnMgcmV0dXJuaW5n IC0xIGZvciBub3QKY29tcGlsZWQgZHJpdmVycy4KQXMgc29tZSBmdW5jdGlvbiBwcm90b3R5cGVz IGRpZmZlcnMgYmV0d2VlbiBkZXZpY2UgZHJpdmVycywKdXNlIF8gcHJlZml4ZWQgY29tcGF0aWJp bGl0eSB3cmFwcGVycyB3aGljaCBhcmUgZXhwZWN0ZWQKdG8gdmFuaXNoIGFnYWluIHdpdGggb25l IGJ5IG9uZSBkcml2ZXIgdW5pZmljYXRpb24uCk9uY2UgdGhlcmUsIG1vdmUgZGV2aWNlIGRldGVj dGlvbiBjb2RlIGluIGNvbmZpZ3VyZS5hYyB0byBsaXZlCmluIG9uZSBwbGFjZS4KLS0tCiBjb21t b24vZGV2aWNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNDUgKysrKysrKysr Ky0tLS0tLS0tCiBjb21tb24vZGV2aWNlcy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg fCAgNTcgKy0tCiBjb21tb24vZGV2aWNlcy9ibHVldG9vdGguYyAgICAgICAgICAgICAgICAgICAg fCAgMzEgLS0KIGNvbW1vbi9kZXZpY2VzL2RrdTJsaWJ1c2IuYyAgICAgICAgICAgICAgICAgICB8 ICAzMCAtLQogY29tbW9uL2RldmljZXMvaXJkYS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDI3IC0tCiBjb21tb24vZGV2aWNlcy9vc3hibHVldG9vdGgubSAgICAgICAgICAgICAgICAgfCAg IDggKy0KIGNvbW1vbi9kZXZpY2VzL3NvY2tldHBob25ldC5jICAgICAgICAgICAgICAgICB8ICAz OCArLQogY29tbW9uL2RldmljZXMvdGNwLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMy IC0tCiBjb21tb24vZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmMgICAgICAgICAgICAgICAgfCAgMTMg Ky0KIGNvbW1vbi9kZXZpY2VzL3VuaXhpcmRhLmMgICAgICAgICAgICAgICAgICAgICB8ICAgOCAr LQogY29tbW9uL2RldmljZXMvd2luYmx1ZXRvb3RoLmMgICAgICAgICAgICAgICAgIHwgIDEwICst CiBjb21tb24vZGV2aWNlcy93aW5pcmRhLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0K IGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2OSArKy0t CiAuLi4vZGV2aWNlcy97dW5peGJsdWV0b290aC5oID0+IGJsdWV0b290aC5ofSAgfCAgIDYgKy0K IGluY2x1ZGUvZGV2aWNlcy91bml4aXJkYS5oICAgICAgICAgICAgICAgICAgICB8ICAxNSAtCiBp bmNsdWRlL2dub2tpaS9kYXRhLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0KIDE2 IGZpbGVzIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspLCA0MTQgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgY29tbW9uL2RldmljZXMvYmx1ZXRvb3RoLmMKIGRlbGV0ZSBtb2RlIDEw MDY0NCBjb21tb24vZGV2aWNlcy9pcmRhLmMKIHJlbmFtZSBpbmNsdWRlL2RldmljZXMve3VuaXhi bHVldG9vdGguaCA9PiBibHVldG9vdGguaH0gKDg2JSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBpbmNs dWRlL2RldmljZXMvdW5peGlyZGEuaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9kZXZpY2UuYyBiL2Nv bW1vbi9kZXZpY2UuYwppbmRleCBlODJkYjExMS4uMmZiNmI0YzMgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9kZXZpY2UuYworKysgYi9jb21tb24vZGV2aWNlLmMKQEAgLTE5LDEzICsxOSwxNzIgQEAKICNp bmNsdWRlICJnbm9raWkuaCIKICNpbmNsdWRlICJnbm9raWktaW50ZXJuYWwuaCIKICNpbmNsdWRl ICJkZXZpY2UuaCIKKworI2lmZGVmIEhBVkVfQkxVRVRPT1RICisjaW5jbHVkZSAiZGV2aWNlcy9i bHVldG9vdGguaCIKK3N0YXRpYyBpbnQKK19ibHVldG9vdGhfb3Blbihjb25zdCBjaGFyICpmaWxl LCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBpbnQgd2l0aF9hc3luYywKKwkJaW50IHdpdGhfaHdfaGFu ZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKK3sKKwlyZXR1cm4gYmx1ZXRv b3RoX29wZW4oc3RhdGUtPmNvbmZpZy5wb3J0X2RldmljZSwgc3RhdGUtPmNvbmZpZy5yZmNvbW1f Y24sIHN0YXRlKTsKK30KKworY29uc3Qgc3RhdGljIGduX2RldmljZV9vcHMgX2JsdWV0b290aF9v cHMgPSB7CisJLm9wZW4JPSBfYmx1ZXRvb3RoX29wZW4sCisJLmNsb3NlCT0gYmx1ZXRvb3RoX2Ns b3NlLAorCS5zZWxlY3QJPSBibHVldG9vdGhfc2VsZWN0LAorCS5yZWFkCT0gYmx1ZXRvb3RoX3Jl YWQsCisJLndyaXRlCT0gYmx1ZXRvb3RoX3dyaXRlLAorfTsKKyMgIGRlZmluZSBibHVldG9vdGhf b3BzICZfYmx1ZXRvb3RoX29wcworI2Vsc2UKKyMgIGRlZmluZSBibHVldG9vdGhfb3BzCU5VTEwK KyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSUJVU0IKKyNpbmNsdWRlICJkZXZpY2VzL2RrdTJsaWJ1 c2IuaCIKK3N0YXRpYyBpbnQKK19ka3UybGlidXNiX29wZW4oY29uc3QgY2hhciAqZmlsZSwgaW50 IHdpdGhfb2RkX3Bhcml0eSwgaW50IHdpdGhfYXN5bmMsCisJCSBpbnQgd2l0aF9od19oYW5kc2hh a2UsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQoreworCXJldHVybiBmYnVzZGt1MnVz Yl9vcGVuKHN0YXRlKTsKK30KKworc3RhdGljIGludAorX2RrdTJsaWJ1c2JfY2xvc2UoaW50IGZk LCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKK3sKKwlyZXR1cm4gZmJ1c2RrdTJ1c2Jf Y2xvc2Uoc3RhdGUpOworfQorCitzdGF0aWMgaW50CitfZGt1MnVzYl9zZWxlY3Qoc3RydWN0IHRp bWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKTsKK3sKKwlyZXR1 cm4gZmJ1c2RrdTJ1c2Jfc2VsZWN0KHRpbWVvdXQsIHN0YXRlKTsKK30KKworc3RhdGljIGludAor X2RrdTJ1c2JfcmVhZChfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGduX3N0YXRlbWFj aGluZSAqc3RhdGUpCit7CisJcmV0dXJuIGZidXNka3UydXNiX3JlYWQoYnl0ZXMsIHNpemUsIHN0 YXRlKTsKK30KKworc3RhdGljIGludAorX2RrdTJ1c2Jfd3JpdGUoaW50IGZkLCBjb25zdCBfX3B0 cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCit7CisJ cmV0dXJuIGZidXNka3UydXNiX3dyaXRlKGJ5dGVzLCBzaXplLCBzdGF0ZSk7Cit9CisKK2NvbnN0 IHN0YXRpYyBnbl9kZXZpY2Vfb3BzIF9ka3UybGlidXNiX29wcyA9IHsKKwkub3Blbgk9IF9ka3Uy bGlidXNiX29wZW4sCisJLmNsb3NlCT0gX2RrdTJ1c2JfY2xvc2UsCisJLnNlbGVjdAk9IF9ka3Uy dXNiX3NlbGVjdCwKKwkucmVhZAk9IF9ka3UydXNiX3JlYWQsCisJLndyaXRlCT0gX2RrdTJ1c2Jf d3JpdGUsCit9OworIyAgZGVmaW5lIGRrdTJsaWJ1c2Jfb3BzCSZfZGt1MmxpYnVzYl9vcHMKKyNl bHNlCisjICBkZWZpbmUgZGt1MmxpYnVzYl9vcHMJTlVMTAorI2VuZGlmCisKKyNpZmRlZiBIQVZF X0lSREEKICNpbmNsdWRlICJkZXZpY2VzL2lyZGEuaCIKLSNpbmNsdWRlICJkZXZpY2VzL3VuaXhi bHVldG9vdGguaCIKLSNpbmNsdWRlICJkZXZpY2VzL3RjcC5oIgorc3RhdGljIGludAorX2lyZGFf b3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBpbnQgd2l0aF9hc3lu YywKKwkgICBpbnQgd2l0aF9od19oYW5kc2hha2UsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0 YXRlKQoreworCXJldHVybiBpcmRhX29wZW4oc3RhdGUpOworfQorCitjb25zdCBzdGF0aWMgZ25f ZGV2aWNlX29wcyBfaXJkYV9vcHMgPSB7CisJLm9wZW4JPSBfaXJkYV9vcGVuLAorCS5jbG9zZQk9 IGlyZGFfY2xvc2UsCisJLnNlbGVjdAk9IGlyZGFfc2VsZWN0LAorCS5yZWFkCT0gaXJkYV9yZWFk LAorCS53cml0ZQk9IGlyZGFfd3JpdGUsCit9OworIyAgZGVmaW5lIGlyZGFfb3BzCSZfaXJkYV9v cHMKKyNlbHNlCisjICBkZWZpbmUgaXJkYV9vcHMJTlVMTAorI2VuZGlmCisKICNpbmNsdWRlICJk ZXZpY2VzL3NlcmlhbC5oIgotI2luY2x1ZGUgImRldmljZXMvdGVrcmFtLmgiCi0jaW5jbHVkZSAi ZGV2aWNlcy9ka3UybGlidXNiLmgiCitjb25zdCBzdGF0aWMgZ25fZGV2aWNlX29wcyBfc2VyaWFs X29wcyA9IHsKKwkub3Blbgk9IHNlcmlhbF9vcGVuZGV2aWNlLAorCS5jbG9zZQk9IHNlcmlhbF9j bG9zZSwKKwkuc2VsZWN0CT0gc2VyaWFsX3NlbGVjdCwKKwkucmVhZAk9IHNlcmlhbF9yZWFkLAor CS53cml0ZQk9IHNlcmlhbF93cml0ZSwKKwkubnJlY2VpdmVkID0gc2VyaWFsX25yZWNlaXZlZCwK KwkuZmx1c2gJPSBzZXJpYWxfZmx1c2gsCisJLmNoYW5nZXNwZWVkID0gc2VyaWFsX2NoYW5nZXNw ZWVkLAorCS5zZXRkdHJydHMgPSBzZXJpYWxfc2V0ZHRycnRzLAorfTsKKyNkZWZpbmUgc2VyaWFs X29wcwkmX3NlcmlhbF9vcHMKKworI2lmZGVmIEhBVkVfU09DS0VUUEhPTkVUCiAjaW5jbHVkZSAi ZGV2aWNlcy9zb2NrZXRwaG9uZXQuaCIKK3N0YXRpYyBpbnQKK19zb2NrZXRwaG9uZXRfb3Blbihj b25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBpbnQgd2l0aF9hc3luYywKKwkJ ICAgaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkK K3sKKwlyZXR1cm4gc29ja2V0cGhvbmV0X29wZW4oZmlsZSwgd2l0aF9hc3luYywgc3RhdGUpOwor fQorCitzdGF0aWMgaW50Citfc29ja2V0cGhvbmV0X2Nsb3NlKGludCBmZCwgc3RydWN0IGduX3N0 YXRlbWFjaGluZSAqc3RhdGUpCit7CisJcmV0dXJuIHNvY2tldHBob25ldF9jbG9zZShzdGF0ZSk7 Cit9CisKK2NvbnN0IHN0YXRpYyBnbl9kZXZpY2Vfb3BzIF9waG9uZXRfb3BzID0geworCS5vcGVu CT0gX3NvY2tldHBob25ldF9vcGVuLAorCS5jbG9zZQk9IF9zb2NrZXRwaG9uZXRfY2xvc2UsCisJ LnNlbGVjdAk9IHNvY2tldHBob25ldF9zZWxlY3QsCisJLnJlYWQJPSBzb2NrZXRwaG9uZXRfcmVh ZCwKKwkud3JpdGUJPSBzb2NrZXRwaG9uZXRfd3JpdGUsCit9OworIyAgZGVmaW5lIHBob25ldF9v cHMJJl9waG9uZXRfb3BzCisjZWxzZQorIyAgZGVmaW5lIHBob25ldF9vcHMJTlVMTAorI2VuZGlm CisKKyNpZm5kZWYgV0lOMzIKKyNpbmNsdWRlICJkZXZpY2VzL3RjcC5oIgorc3RhdGljIGludAor X3RjcF9vcGVuKGNvbnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX29kZF9wYXJpdHksIGludCB3aXRo X2FzeW5jLAorCSAgaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5l ICpzdGF0ZSkKK3sKKwlyZXR1cm4gdGNwX29wZW5kZXZpY2UoZmlsZSwgd2l0aF9hc3luYywgc3Rh dGUpOworfQorCitjb25zdCBzdGF0aWMgZ25fZGV2aWNlX29wcyBfdGNwX29wcyA9IHsKKwkub3Bl bgk9IF90Y3Bfb3BlbiwKKwkuY2xvc2UJPSB0Y3BfY2xvc2UsCisJLnNlbGVjdAk9IHRjcF9zZWxl Y3QsCisJLnJlYWQJPSB0Y3BfcmVhZCwKKwkud3JpdGUJPSB0Y3Bfd3JpdGUsCit9OworIyAgZGVm aW5lIHRjcF9vcHMJJl90Y3Bfb3BzCisjZWxzZQorIyAgZGVmaW5lIHRjcF9vcHMJTlVMTAorI2Vu ZGlmCisKKyNpbmNsdWRlICJkZXZpY2VzL3Rla3JhbS5oIgorc3RhdGljIGludAorX3Rla3JhbV9v cGVuKGNvbnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX29kZF9wYXJpdHksIGludCB3aXRoX2FzeW5j LAorCSAgICAgaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpz dGF0ZSkKK3sKKwlyZXR1cm4gdGVrcmFtX29wZW4oZmlsZSwgc3RhdGUpOworfQorCitjb25zdCBz dGF0aWMgZ25fZGV2aWNlX29wcyBfdGVrcmFtX29wcyA9IHsKKwkub3Blbgk9IF90ZWtyYW1fb3Bl biwKKwkuY2xvc2UJPSB0ZWtyYW1fY2xvc2UsCisJLnNlbGVjdAk9IHRla3JhbV9zZWxlY3QsCisJ LnJlYWQJPSB0ZWtyYW1fcmVhZCwKKwkud3JpdGUJPSB0ZWtyYW1fd3JpdGUsCit9OworI2RlZmlu ZSB0ZWtyYW1fb3BzCSZfdGVrcmFtX29wcwogCiBHTk9LSUlfQVBJIGludCBkZXZpY2VfZ2V0ZmQo c3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiB7CkBAIC0zNiw0MCArMTk1LDQ2IEBAIGlu dCBkZXZpY2Vfb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBpbnQg d2l0aF9hc3luYywKIAkJaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBnbl9jb25uZWN0aW9uX3R5cGUg ZGV2aWNlX3R5cGUsCiAJCXN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogewotCXN0YXRl LT5kZXZpY2UudHlwZSA9IGRldmljZV90eXBlOworCXN0YXRlLT5kZXZpY2Uub3BzID0gTlVMTDsK IAlzdGF0ZS0+ZGV2aWNlLmRldmljZV9pbnN0YW5jZSA9IE5VTEw7CiAKIAlkcHJpbnRmKCJkZXZp Y2U6IG9wZW5pbmcgZGV2aWNlICVzXG4iLCAoZGV2aWNlX3R5cGUgPT0gR05fQ1RfREtVMkxJQlVT QikgPyAiVVNCIiA6IGZpbGUpOwogCi0Jc3dpdGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQlj YXNlIEdOX0NUX0RLVTI6CisJc3dpdGNoIChkZXZpY2VfdHlwZSkgewogCWNhc2UgR05fQ1RfU2Vy aWFsOgorCWNhc2UgR05fQ1RfREFVOVA6CisJY2FzZSBHTl9DVF9ETFIzUDoKIAljYXNlIEdOX0NU X0luZnJhcmVkOgotCQlzdGF0ZS0+ZGV2aWNlLmZkID0gc2VyaWFsX29wZW5kZXZpY2UoZmlsZSwg d2l0aF9vZGRfcGFyaXR5LCB3aXRoX2FzeW5jLCB3aXRoX2h3X2hhbmRzaGFrZSwgc3RhdGUpOwor CWNhc2UgR05fQ1RfTTJCVVM6CisJY2FzZSBHTl9DVF9ES1UyOgorCQlzdGF0ZS0+ZGV2aWNlLm9w cyA9IHNlcmlhbF9vcHM7CiAJCWJyZWFrOwogCWNhc2UgR05fQ1RfSXJkYToKLQkJc3RhdGUtPmRl dmljZS5mZCA9IGlyZGFfb3BlbihzdGF0ZSk7CisJCXN0YXRlLT5kZXZpY2Uub3BzID0gaXJkYV9v cHM7CiAJCWJyZWFrOwogCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCQlzdGF0ZS0+ZGV2aWNlLmZk ID0gYmx1ZXRvb3RoX29wZW4oc3RhdGUtPmNvbmZpZy5wb3J0X2RldmljZSwgc3RhdGUtPmNvbmZp Zy5yZmNvbW1fY24sIHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5vcHMgPSBibHVldG9vdGhfb3Bz OwogCQlicmVhazsKIAljYXNlIEdOX0NUX1Rla3JhbToKLQkJc3RhdGUtPmRldmljZS5mZCA9IHRl a3JhbV9vcGVuKGZpbGUsIHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5vcHMgPSB0ZWtyYW1fb3Bz OwogCQlicmVhazsKIAljYXNlIEdOX0NUX1RDUDoKLQkJc3RhdGUtPmRldmljZS5mZCA9IHRjcF9v cGVuZGV2aWNlKGZpbGUsIHdpdGhfYXN5bmMsIHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5vcHMg PSB0Y3Bfb3BzOwogCQlicmVhazsKIAljYXNlIEdOX0NUX0RLVTJMSUJVU0I6Ci0JCXN0YXRlLT5k ZXZpY2UuZmQgPSBmYnVzZGt1MnVzYl9vcGVuKHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5vcHMg PSBka3UybGlidXNiX29wczsKIAkJYnJlYWs7CiAJY2FzZSBHTl9DVF9TT0NLRVRQSE9ORVQ6Ci0J CXN0YXRlLT5kZXZpY2UuZmQgPSBzb2NrZXRwaG9uZXRfb3BlbihmaWxlLCB3aXRoX2FzeW5jLCBz dGF0ZSk7CisJCXN0YXRlLT5kZXZpY2Uub3BzID0gcGhvbmV0X29wczsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKLQkJc3RhdGUtPmRldmljZS5mZCA9IC0xOwogCQlicmVhazsKIAl9CiAKKwlpZiAoIXN0 YXRlLT5kZXZpY2Uub3BzKQorCQlyZXR1cm4gMDsKKworCXN0YXRlLT5kZXZpY2UuZmQgPSBzdGF0 ZS0+ZGV2aWNlLm9wcy0+b3BlbihmaWxlLCB3aXRoX29kZF9wYXJpdHksIHdpdGhfYXN5bmMsIHdp dGhfaHdfaGFuZHNoYWtlLCBzdGF0ZSk7CiAJaWYgKHN0YXRlLT5kZXZpY2UuZmQgPCAwKQogCQly ZXR1cm4gMDsKIApAQCAtOTUsMzMgKzI2MCw3IEBAIHZvaWQgZGV2aWNlX2Nsb3NlKHN0cnVjdCBn bl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogCWlmIChkZXZpY2Vfc2NyaXB0KHN0YXRlLT5kZXZpY2Uu ZmQsIDAsIHN0YXRlKSA9PSAtMSkKIAkJZHByaW50ZigiZ25va2lpIGRldmljZSBjbG9zZTogZGlz Y29ubmVjdF9zY3JpcHQgZmFpbHVyZVxuIik7CiAKLQlzd2l0Y2ggKHN0YXRlLT5kZXZpY2UudHlw ZSkgewotCWNhc2UgR05fQ1RfREtVMjoKLQljYXNlIEdOX0NUX1NlcmlhbDoKLQljYXNlIEdOX0NU X0luZnJhcmVkOgotCQlzZXJpYWxfY2xvc2Uoc3RhdGUtPmRldmljZS5mZCwgc3RhdGUpOwotCQli cmVhazsKLQljYXNlIEdOX0NUX0lyZGE6Ci0JCWlyZGFfY2xvc2Uoc3RhdGUtPmRldmljZS5mZCwg c3RhdGUpOwotCQlicmVhazsKLQljYXNlIEdOX0NUX0JsdWV0b290aDoKLQkJYmx1ZXRvb3RoX2Ns b3NlKHN0YXRlLT5kZXZpY2UuZmQsIHN0YXRlKTsKLQkJYnJlYWs7Ci0JY2FzZSBHTl9DVF9UZWty YW06Ci0JCXRla3JhbV9jbG9zZShzdGF0ZS0+ZGV2aWNlLmZkLCBzdGF0ZSk7Ci0JCWJyZWFrOwot CWNhc2UgR05fQ1RfVENQOgotCQl0Y3BfY2xvc2Uoc3RhdGUtPmRldmljZS5mZCwgc3RhdGUpOwot CQlicmVhazsKLQljYXNlIEdOX0NUX0RLVTJMSUJVU0I6Ci0JCWZidXNka3UydXNiX2Nsb3NlKHN0 YXRlKTsKLQkJYnJlYWs7Ci0JY2FzZSBHTl9DVF9TT0NLRVRQSE9ORVQ6Ci0JCXNvY2tldHBob25l dF9jbG9zZShzdGF0ZSk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWJyZWFrOwotCX0KKwlzdGF0 ZS0+ZGV2aWNlLm9wcy0+Y2xvc2Uoc3RhdGUtPmRldmljZS5mZCwgc3RhdGUpOwogCiAJZnJlZShz dGF0ZS0+ZGV2aWNlLmRldmljZV9pbnN0YW5jZSk7CiAJc3RhdGUtPmRldmljZS5kZXZpY2VfaW5z dGFuY2UgPSBOVUxMOwpAQCAtMTI5LDE0NCArMjY4LDQ4IEBAIHZvaWQgZGV2aWNlX2Nsb3NlKHN0 cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogCiB2b2lkIGRldmljZV9zZXRkdHJydHMoaW50 IGR0ciwgaW50IHJ0cywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiB7Ci0Jc3dpdGNo IChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQljYXNlIEdOX0NUX0RLVTI6Ci0JY2FzZSBHTl9DVF9T ZXJpYWw6Ci0JY2FzZSBHTl9DVF9JbmZyYXJlZDoKKwlpZiAoc3RhdGUtPmRldmljZS5vcHMtPnNl dGR0cnJ0cykgewogCQlkcHJpbnRmKCJkZXZpY2U6IHNldHRpbmcgUlRTIHRvICVzIGFuZCBEVFIg dG8gJXNcbiIsIHJ0cyA/ICJoaWdoIiA6ICJsb3ciLCBkdHIgPyAiaGlnaCIgOiAibG93Iik7Ci0J CXNlcmlhbF9zZXRkdHJydHMoc3RhdGUtPmRldmljZS5mZCwgZHRyLCBydHMsIHN0YXRlKTsKLQkJ YnJlYWs7Ci0JY2FzZSBHTl9DVF9JcmRhOgotCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCWNhc2Ug R05fQ1RfVGVrcmFtOgotCWNhc2UgR05fQ1RfVENQOgotCWNhc2UgR05fQ1RfREtVMkxJQlVTQjoK LQljYXNlIEdOX0NUX1NPQ0tFVFBIT05FVDoKLQlkZWZhdWx0OgotCQlicmVhazsKKwkJc3RhdGUt PmRldmljZS5vcHMtPnNldGR0cnJ0cyhzdGF0ZS0+ZGV2aWNlLmZkLCBkdHIsIHJ0cywgc3RhdGUp OwogCX0KIH0KIAogdm9pZCBkZXZpY2VfY2hhbmdlc3BlZWQoaW50IHNwZWVkLCBzdHJ1Y3QgZ25f c3RhdGVtYWNoaW5lICpzdGF0ZSkKIHsKLQlzd2l0Y2ggKHN0YXRlLT5kZXZpY2UudHlwZSkgewot CWNhc2UgR05fQ1RfREtVMjoKLQljYXNlIEdOX0NUX1NlcmlhbDoKLQljYXNlIEdOX0NUX0luZnJh cmVkOgorCWlmIChzdGF0ZS0+ZGV2aWNlLm9wcy0+Y2hhbmdlc3BlZWQpIHsKIAkJZHByaW50Zigi ZGV2aWNlOiBzZXR0aW5nIHNwZWVkIHRvICVkXG4iLCBzcGVlZCk7Ci0JCXNlcmlhbF9jaGFuZ2Vz cGVlZChzdGF0ZS0+ZGV2aWNlLmZkLCBzcGVlZCwgc3RhdGUpOwotCQlicmVhazsKLQljYXNlIEdO X0NUX1Rla3JhbToKLQkJZHByaW50ZigiZGV2aWNlOiBzZXR0aW5nIHNwZWVkIHRvICVkXG4iLCBz cGVlZCk7Ci0JCXRla3JhbV9jaGFuZ2VzcGVlZChzdGF0ZS0+ZGV2aWNlLmZkLCBzcGVlZCwgc3Rh dGUpOwotCQlicmVhazsKLQljYXNlIEdOX0NUX0lyZGE6Ci0JY2FzZSBHTl9DVF9CbHVldG9vdGg6 Ci0JY2FzZSBHTl9DVF9UQ1A6Ci0JY2FzZSBHTl9DVF9ES1UyTElCVVNCOgotCWNhc2UgR05fQ1Rf U09DS0VUUEhPTkVUOgotCWRlZmF1bHQ6Ci0JCWJyZWFrOworCQlzdGF0ZS0+ZGV2aWNlLm9wcy0+ Y2hhbmdlc3BlZWQoc3RhdGUtPmRldmljZS5mZCwgc3BlZWQsIHN0YXRlKTsKIAl9CiB9CiAKIHNp emVfdCBkZXZpY2VfcmVhZChfX3B0cl90IGJ1Ziwgc2l6ZV90IG5ieXRlcywgc3RydWN0IGduX3N0 YXRlbWFjaGluZSAqc3RhdGUpCiB7Ci0Jc3dpdGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQlj YXNlIEdOX0NUX0RLVTI6Ci0JY2FzZSBHTl9DVF9TZXJpYWw6Ci0JY2FzZSBHTl9DVF9JbmZyYXJl ZDoKLQkJcmV0dXJuIHNlcmlhbF9yZWFkKHN0YXRlLT5kZXZpY2UuZmQsIGJ1ZiwgbmJ5dGVzLCBz dGF0ZSk7Ci0JY2FzZSBHTl9DVF9JcmRhOgotCQlyZXR1cm4gaXJkYV9yZWFkKHN0YXRlLT5kZXZp Y2UuZmQsIGJ1ZiwgbmJ5dGVzLCBzdGF0ZSk7Ci0JY2FzZSBHTl9DVF9CbHVldG9vdGg6Ci0JCXJl dHVybiBibHVldG9vdGhfcmVhZChzdGF0ZS0+ZGV2aWNlLmZkLCBidWYsIG5ieXRlcywgc3RhdGUp OwotCWNhc2UgR05fQ1RfVGVrcmFtOgotCQlyZXR1cm4gdGVrcmFtX3JlYWQoc3RhdGUtPmRldmlj ZS5mZCwgYnVmLCBuYnl0ZXMsIHN0YXRlKTsKLQljYXNlIEdOX0NUX1RDUDoKLQkJcmV0dXJuIHRj cF9yZWFkKHN0YXRlLT5kZXZpY2UuZmQsIGJ1ZiwgbmJ5dGVzLCBzdGF0ZSk7Ci0JY2FzZSBHTl9D VF9ES1UyTElCVVNCOgotCQlyZXR1cm4gZmJ1c2RrdTJ1c2JfcmVhZChidWYsIG5ieXRlcywgc3Rh dGUpOwotCWNhc2UgR05fQ1RfU09DS0VUUEhPTkVUOgotCQlyZXR1cm4gc29ja2V0cGhvbmV0X3Jl YWQoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBuYnl0ZXMsIHN0YXRlKTsKLQlkZWZhdWx0OgotCQli cmVhazsKLQl9Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHN0YXRlLT5kZXZpY2Uub3BzLT5yZWFkKHN0 YXRlLT5kZXZpY2UuZmQsIGJ1ZiwgbmJ5dGVzLCBzdGF0ZSk7CiB9CiAKIHNpemVfdCBkZXZpY2Vf d3JpdGUoY29uc3QgX19wdHJfdCBidWYsIHNpemVfdCBuLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5l ICpzdGF0ZSkKIHsKLQlzd2l0Y2ggKHN0YXRlLT5kZXZpY2UudHlwZSkgewotCWNhc2UgR05fQ1Rf REtVMjoKLQljYXNlIEdOX0NUX1NlcmlhbDoKLQljYXNlIEdOX0NUX0luZnJhcmVkOgotCQlyZXR1 cm4gc2VyaWFsX3dyaXRlKHN0YXRlLT5kZXZpY2UuZmQsIGJ1Ziwgbiwgc3RhdGUpOwotCWNhc2Ug R05fQ1RfSXJkYToKLQkJcmV0dXJuIGlyZGFfd3JpdGUoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBu LCBzdGF0ZSk7Ci0JY2FzZSBHTl9DVF9CbHVldG9vdGg6Ci0JCXJldHVybiBibHVldG9vdGhfd3Jp dGUoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBuLCBzdGF0ZSk7Ci0JY2FzZSBHTl9DVF9UZWtyYW06 Ci0JCXJldHVybiB0ZWtyYW1fd3JpdGUoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBuLCBzdGF0ZSk7 Ci0JY2FzZSBHTl9DVF9UQ1A6Ci0JCXJldHVybiB0Y3Bfd3JpdGUoc3RhdGUtPmRldmljZS5mZCwg YnVmLCBuLCBzdGF0ZSk7Ci0JY2FzZSBHTl9DVF9ES1UyTElCVVNCOgotCQlyZXR1cm4gZmJ1c2Rr dTJ1c2Jfd3JpdGUoYnVmLCBuLCBzdGF0ZSk7Ci0JY2FzZSBHTl9DVF9TT0NLRVRQSE9ORVQ6Ci0J CXJldHVybiBzb2NrZXRwaG9uZXRfd3JpdGUoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBuLCBzdGF0 ZSk7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCXJldHVybiAwOworCXJldHVybiBzdGF0ZS0+ ZGV2aWNlLm9wcy0+d3JpdGUoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBuLCBzdGF0ZSk7CiB9CiAK IGludCBkZXZpY2Vfc2VsZWN0KHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1Y3QgZ25fc3Rh dGVtYWNoaW5lICpzdGF0ZSkKIHsKLQlzd2l0Y2ggKHN0YXRlLT5kZXZpY2UudHlwZSkgewotCWNh c2UgR05fQ1RfREtVMjoKLQljYXNlIEdOX0NUX1NlcmlhbDoKLQljYXNlIEdOX0NUX0luZnJhcmVk OgotCQlyZXR1cm4gc2VyaWFsX3NlbGVjdChzdGF0ZS0+ZGV2aWNlLmZkLCB0aW1lb3V0LCBzdGF0 ZSk7Ci0JY2FzZSBHTl9DVF9JcmRhOgotCQlyZXR1cm4gaXJkYV9zZWxlY3Qoc3RhdGUtPmRldmlj ZS5mZCwgdGltZW91dCwgc3RhdGUpOwotCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCQlyZXR1cm4g Ymx1ZXRvb3RoX3NlbGVjdChzdGF0ZS0+ZGV2aWNlLmZkLCB0aW1lb3V0LCBzdGF0ZSk7Ci0JY2Fz ZSBHTl9DVF9UZWtyYW06Ci0JCXJldHVybiB0ZWtyYW1fc2VsZWN0KHN0YXRlLT5kZXZpY2UuZmQs IHRpbWVvdXQsIHN0YXRlKTsKLQljYXNlIEdOX0NUX1RDUDoKLQkJcmV0dXJuIHRjcF9zZWxlY3Qo c3RhdGUtPmRldmljZS5mZCwgdGltZW91dCwgc3RhdGUpOwotCWNhc2UgR05fQ1RfREtVMkxJQlVT QjoKLQkJcmV0dXJuIGZidXNka3UydXNiX3NlbGVjdCh0aW1lb3V0LCBzdGF0ZSk7Ci0JY2FzZSBH Tl9DVF9TT0NLRVRQSE9ORVQ6Ci0JCXJldHVybiBzb2NrZXRwaG9uZXRfc2VsZWN0KHN0YXRlLT5k ZXZpY2UuZmQsIHRpbWVvdXQsIHN0YXRlKTsKLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0JcmV0 dXJuIC0xOworCXJldHVybiBzdGF0ZS0+ZGV2aWNlLm9wcy0+c2VsZWN0KHN0YXRlLT5kZXZpY2Uu ZmQsIHRpbWVvdXQsIHN0YXRlKTsKIH0KIAogZ25fZXJyb3IgZGV2aWNlX25yZWNlaXZlZChpbnQg Km4sIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogewogCSpuID0gLTE7Ci0KLQlzd2l0 Y2ggKHN0YXRlLT5kZXZpY2UudHlwZSkgewotCWNhc2UgR05fQ1RfREtVMjoKLQljYXNlIEdOX0NU X1NlcmlhbDoKLQljYXNlIEdOX0NUX0luZnJhcmVkOgotCQlyZXR1cm4gc2VyaWFsX25yZWNlaXZl ZChzdGF0ZS0+ZGV2aWNlLmZkLCBuLCBzdGF0ZSk7Ci0JZGVmYXVsdDoKKwlpZiAoIXN0YXRlLT5k ZXZpY2Uub3BzLT5ucmVjZWl2ZWQpCiAJCXJldHVybiBHTl9FUlJfTk9UU1VQUE9SVEVEOwotCX0K KworCXJldHVybiBzdGF0ZS0+ZGV2aWNlLm9wcy0+bnJlY2VpdmVkKHN0YXRlLT5kZXZpY2UuZmQs IG4sIHN0YXRlKTsKIH0KIAogZ25fZXJyb3IgZGV2aWNlX2ZsdXNoKHN0cnVjdCBnbl9zdGF0ZW1h Y2hpbmUgKnN0YXRlKQogewotCXN3aXRjaCAoc3RhdGUtPmRldmljZS50eXBlKSB7Ci0JY2FzZSBH Tl9DVF9ES1UyOgotCWNhc2UgR05fQ1RfU2VyaWFsOgotCWNhc2UgR05fQ1RfSW5mcmFyZWQ6Ci0J CXJldHVybiBzZXJpYWxfZmx1c2goc3RhdGUtPmRldmljZS5mZCwgc3RhdGUpOwotCWRlZmF1bHQ6 CisJaWYgKCFzdGF0ZS0+ZGV2aWNlLm9wcy0+Zmx1c2gpCiAJCXJldHVybiBHTl9FUlJfTk9UU1VQ UE9SVEVEOwotCX0KKworCXJldHVybiBzdGF0ZS0+ZGV2aWNlLm9wcy0+Zmx1c2goc3RhdGUtPmRl dmljZS5mZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvY29tbW9uL2RldmljZXMvTWFrZWZpbGUu YW0gYi9jb21tb24vZGV2aWNlcy9NYWtlZmlsZS5hbQppbmRleCA4NjA3NjJlNC4uNTkyYzJiOWQg MTAwNjQ0Ci0tLSBhL2NvbW1vbi9kZXZpY2VzL01ha2VmaWxlLmFtCisrKyBiL2NvbW1vbi9kZXZp Y2VzL01ha2VmaWxlLmFtCkBAIC0xLDM0ICsxLDM4IEBACiBub2luc3RfTFRMSUJSQVJJRVMgPSBs aWJERVZJQ0VTLmxhCiAKLVdJTjMyX0ZJTEVTID0gXAotCXdpbnNlcmlhbC5jIFwKLQl3aW5pcmRh LmMgXAotCXdpbmJsdWV0b290aC5jCi0KLVVOSVhfRklMRVMgPSBcCi0JdW5peHNlcmlhbC5jIFwK LQl1bml4aXJkYS5jIFwKLQl0Y3AuYyBcCi0Jc29ja2V0cGhvbmV0LmMKLQotaWYgRk9SX01BQwot VU5JWF9TUEVDSUZJQ19GSUxFUyA9IG9zeGJsdWV0b290aC5tCi1lbHNlCi1VTklYX1NQRUNJRklD X0ZJTEVTID0gdW5peGJsdWV0b290aC5jCitnbm9raWlfZGV2aWNlcwk9IHRla3JhbS5jCitpZiBM SUJVU0IKK2dub2tpaV9kZXZpY2VzCSs9IGRrdTJsaWJ1c2IuYworZW5kaWYKK2lmICFXSU4zMgor Z25va2lpX2RldmljZXMJKz0gdGNwLmMKK2VuZGlmCitpZiBTT0NLRVRQSE9ORVQKK2dub2tpaV9k ZXZpY2VzCSs9IHNvY2tldHBob25ldC5jCitlbmRpZgoraWYgT1NYQkxVRVRPT1RICitnbm9raWlf ZGV2aWNlcwkrPSBvc3hibHVldG9vdGgubQorZW5kaWYKK2lmIFVOSVhCTFVFVE9PVEgKK2dub2tp aV9kZXZpY2VzCSs9IHVuaXhibHVldG9vdGguYworZW5kaWYKK2lmIFVOSVhJUkRBCitnbm9raWlf ZGV2aWNlcwkrPSB1bml4aXJkYS5jCitlbmRpZgoraWYgIVdJTjMyCitnbm9raWlfZGV2aWNlcwkr PSB1bml4c2VyaWFsLmMKK2VuZGlmCitpZiBXSU5CTFVFVE9PVEgKK2dub2tpaV9kZXZpY2VzCSs9 IHdpbmJsdWV0b290aC5jCitlbmRpZgoraWYgV0lOSVJEQQorZ25va2lpX2RldmljZXMJKz0gd2lu aXJkYS5jCiBlbmRpZgotCiBpZiBXSU4zMgotUExBVEZPUk1fRklMRVMgPSAkKFdJTjMyX0ZJTEVT KQotZWxzZQotUExBVEZPUk1fRklMRVMgPSAkKFVOSVhfRklMRVMpICQoVU5JWF9TUEVDSUZJQ19G SUxFUykKK2dub2tpaV9kZXZpY2VzCSs9IHdpbnNlcmlhbC5jCiBlbmRpZgogCi1saWJERVZJQ0VT X2xhX1NPVVJDRVMgPSBcCi0JJChQTEFURk9STV9GSUxFUykgXAotCXRla3JhbS5jIFwKLQlpcmRh LmMgXAotCWRrdTJsaWJ1c2IuYyBcCi0JYmx1ZXRvb3RoLmMKK2xpYkRFVklDRVNfbGFfU09VUkNF UyA9ICQoZ25va2lpX2RldmljZXMpCiAKIGxpYkRFVklDRVNfbGFfQ0ZMQUdTID0JCVwKIAktSSQo dG9wX3NyY2RpcikvaW5jbHVkZQpAQCAtMzcsNiArNDEsMyBAQCBsaWJERVZJQ0VTX2xhX0xJQkFE RCA9CQlcCiAJJChVU0JfTElCUykJCVwKIAkkKEJMVUVUT09USF9MSUJTKQlcCiAJJChUQ1BfTElC UykKLQotRVhUUkFfRElTVCA9ICQoV0lOMzJfRklMRVMpICQoVU5JWF9GSUxFUykgJChVTklYX1NQ RUNJRklDX0ZJTEVTKQotCmRpZmYgLS1naXQgYS9jb21tb24vZGV2aWNlcy9ibHVldG9vdGguYyBi L2NvbW1vbi9kZXZpY2VzL2JsdWV0b290aC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBkY2NmNDQ4Yi4uMDAwMDAwMDAKLS0tIGEvY29tbW9uL2RldmljZXMvYmx1ZXRvb3RoLmMKKysr IC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vKgotCi0gIEcgTiBPIEsgSSBJCi0KLSAgQSBM aW51eC9Vbml4IHRvb2xzZXQgYW5kIGRyaXZlciBmb3IgdGhlIG1vYmlsZSBwaG9uZXMuCi0KLSAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgZ25va2lpLgotCi0gIENvcHlyaWdodCAoQykgMjAwMiAgICAg ICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBob2x0bWFubi5vcmc+Ci0gIENvcHlyaWdodCAoQykg MjAwMyAgICAgICBCT1JCRUxZIFpvbHRhbgotICBDb3B5cmlnaHQgKEMpIDIwMDQgICAgICAgUGF3 ZWwgS290LCBQaGlsIEFzaGJ5Ci0KLSAgRmFrZSBkZWZpbml0aW9ucyBmb3IgdGhlIGJsdWV0b290 aCBoYW5kbGluZyBmdW5jdGlvbnMuCi0KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs dWRlICJjb21wYXQuaCIKLSNpbmNsdWRlICJtaXNjLmgiCi0jaW5jbHVkZSAiZ25va2lpLmgiCi0j aW5jbHVkZSAiZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmgiCi0KLSNpZm5kZWYgSEFWRV9CTFVFVE9P VEgKLQotaW50IGJsdWV0b290aF9vcGVuKGNvbnN0IGNoYXIgKmFkZHIsIHVpbnQ4X3QgY2hhbm5l bCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci1pbnQgYmx1 ZXRvb3RoX2Nsb3NlKGludCBmZCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0 dXJuIC0xOyB9Ci1pbnQgYmx1ZXRvb3RoX3dyaXRlKGludCBmZCwgY29uc3QgX19wdHJfdCBieXRl cywgaW50IHNpemUsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKSB7IHJldHVybiAtMTsg fQotaW50IGJsdWV0b290aF9yZWFkKGludCBmZCwgX19wdHJfdCBieXRlcywgaW50IHNpemUsIHN0 cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKSB7IHJldHVybiAtMTsgfQotaW50IGJsdWV0b290 aF9zZWxlY3QoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0IGduX3N0YXRl bWFjaGluZSAqc3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci0KLSNlbmRpZiAvKiBIQVZFX0JMVUVUT09U SCAqLwpkaWZmIC0tZ2l0IGEvY29tbW9uL2RldmljZXMvZGt1MmxpYnVzYi5jIGIvY29tbW9uL2Rl dmljZXMvZGt1MmxpYnVzYi5jCmluZGV4IDBhNmViOGExLi44N2IyZGYxOCAxMDA2NDQKLS0tIGEv Y29tbW9uL2RldmljZXMvZGt1MmxpYnVzYi5jCisrKyBiL2NvbW1vbi9kZXZpY2VzL2RrdTJsaWJ1 c2IuYwpAQCAtMjksMzQgKzI5LDYgQEAKICMgIGRlZmluZSBFTk9EQVRBCTYxCiAjZW5kaWYKIAot I2lmbmRlZiBIQVZFX0xJQlVTQgotaW50IGZidXNka3UydXNiX29wZW4oc3RydWN0IGduX3N0YXRl bWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQotCi1pbnQgZmJ1c2RrdTJ1c2JfY2xv c2Uoc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQotCi1p bnQgZmJ1c2RrdTJ1c2Jfd3JpdGUoY29uc3QgX19wdHJfdCBieXRlcywgaW50IHNpemUsIHN0cnVj dCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVybiAtMTsKLX0KLQotaW50IGZidXNk a3UydXNiX3JlYWQoX19wdHJfdCBieXRlcywgaW50IHNpemUsIHN0cnVjdCBnbl9zdGF0ZW1hY2hp bmUgKnN0YXRlKQotewotCXJldHVybiAtMTsKLX0KLQotaW50IGZidXNka3UydXNiX3NlbGVjdChz dHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17 Ci0JcmV0dXJuIC0xOwotfQotCi0jZWxzZQotCiAjaW5jbHVkZSA8dXNiLmg+CiAKIC8qIEluZm9y bWF0aW9uIGFib3V0IGEgVVNCIERLVTIgRkJVUyBpbnRlcmZhY2UgcHJlc2VudCBvbiB0aGUgc3lz dGVtICovCkBAIC01NDAsNSArNTEyLDMgQEAgaW50IGZidXNka3UydXNiX3NlbGVjdChzdHJ1Y3Qg dGltZXZhbCAqdGltZW91dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiB7CiAJcmV0 dXJuIDE7CiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvY29tbW9uL2RldmljZXMvaXJkYS5jIGIv Y29tbW9uL2RldmljZXMvaXJkYS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjc0 YzJkYi4uMDAwMDAwMDAKLS0tIGEvY29tbW9uL2RldmljZXMvaXJkYS5jCisrKyAvZGV2L251bGwK QEAgLTEsMjcgKzAsMCBAQAotLyoKLSAqCi0gKiBHIE4gTyBLIEkgSQotICoKLSAqIEEgTGludXgv VW5peCB0b29sc2V0IGFuZCBkcml2ZXIgZm9yIHRoZSBtb2JpbGUgcGhvbmVzLgotICoKLSAqIENv cHlyaWdodCAoQykgMTk5OS0yMDAwICBIdWdoIEJsZW1pbmdzICYgUGF2ZWwgSmFuw61rIG1sLgot ICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgIE1hcmNlbCBIb2x0bWFubiA8bWFyY2VsQGhvbHRt YW5uLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNCAgICAgICBQaGlsIEFzaGJ5Ci0gKgotICog RmFrZSBkZWZpbml0aW9ucyBmb3IgaXJkYSBoYW5kbGluZyBmdW5jdGlvbnMuCi0gKi8KLQotI2lu Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgImNvbXBhdC5oIgotI2luY2x1ZGUgIm1pc2MuaCIK LSNpbmNsdWRlICJnbm9raWkuaCIKLQotI2lmbmRlZiBIQVZFX0lSREEKLQotaW50IGlyZGFfb3Bl bihzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkgeyByZXR1cm4gLTE7IH0KLWludCBpcmRh X2Nsb3NlKGludCBmZCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0dXJuIC0x OyB9Ci1pbnQgaXJkYV93cml0ZShpbnQgZmQsIGNvbnN0IF9fcHRyX3QgYnl0ZXMsIGludCBzaXpl LCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkgeyByZXR1cm4gLTE7IH0KLWludCBpcmRh X3JlYWQoaW50IGZkLCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGduX3N0YXRlbWFj aGluZSAqc3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci1pbnQgaXJkYV9zZWxlY3QoaW50IGZkLCBzdHJ1 Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0 dXJuIC0xOyB9Ci0KLSNlbmRpZiAvKiBIQVZFX0lSREEgKi8KZGlmZiAtLWdpdCBhL2NvbW1vbi9k ZXZpY2VzL29zeGJsdWV0b290aC5tIGIvY29tbW9uL2RldmljZXMvb3N4Ymx1ZXRvb3RoLm0KaW5k ZXggNjIxNmNjNWMuLjFmYzExMjk1IDEwMDY0NAotLS0gYS9jb21tb24vZGV2aWNlcy9vc3hibHVl dG9vdGgubQorKysgYi9jb21tb24vZGV2aWNlcy9vc3hibHVldG9vdGgubQpAQCAtMTAsMTQgKzEw LDEwIEBACiAKICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmZGVmIEhBVkVfQkxVRVRP T1RIX01BQ09TWAotCiAjaW5jbHVkZSA8SU9CbHVldG9vdGgvb2JqYy9JT0JsdWV0b290aFJGQ09N TUNoYW5uZWwuaD4KICNpbmNsdWRlIDxJT0JsdWV0b290aC9vYmpjL0lPQmx1ZXRvb3RoRGV2aWNl Lmg+CiAKLSNpbmNsdWRlICJkZXZpY2VzL3VuaXhibHVldG9vdGguaCIKKyNpbmNsdWRlICJkZXZp Y2VzL2JsdWV0b290aC5oIgogCiBzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqcXVldWVzOwog c3RhdGljIGludCBuZXh0X2ZkID0gMTsKQEAgLTE3OSw1ICsxNzUsMyBAQCBpbnQgYmx1ZXRvb3Ro X2Nsb3NlKGludCBmZCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiAgICAgW3F1ZXVl cyByZW1vdmVPYmplY3RGb3JLZXk6QChmZCldOwogICAgIHJldHVybiAxOwogfQotCi0jZW5kaWYK ZGlmZiAtLWdpdCBhL2NvbW1vbi9kZXZpY2VzL3NvY2tldHBob25ldC5jIGIvY29tbW9uL2Rldmlj ZXMvc29ja2V0cGhvbmV0LmMKaW5kZXggMTJiZWQ4YjIuLjFlMTE5OTM5IDEwMDY0NAotLS0gYS9j b21tb24vZGV2aWNlcy9zb2NrZXRwaG9uZXQuYworKysgYi9jb21tb24vZGV2aWNlcy9zb2NrZXRw aG9uZXQuYwpAQCAtMTUsNDkgKzE1LDE3IEBACiAKICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIK LSNpbmNsdWRlICJjb21wYXQuaCIgLyogZm9yIF9fcHRyX3QgZGVmaW5pdGlvbiAqLwotI2luY2x1 ZGUgImdub2tpaS5oIgotCi0jaWZuZGVmIEhBVkVfU09DS0VUUEhPTkVUCi0KLWludCBzb2NrZXRw aG9uZXRfY2xvc2Uoc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0x OwotfQotCi1pbnQgc29ja2V0cGhvbmV0X29wZW4oY29uc3QgY2hhciAqaWZhY2UsIGludCB3aXRo X2FzeW5jLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQlyZXR1cm4gLTE7Ci19 Ci0KLXNpemVfdCBzb2NrZXRwaG9uZXRfcmVhZChpbnQgZmQsIF9fcHRyX3QgYnVmLCBzaXplX3Qg bmJ5dGVzLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQlyZXR1cm4gLTE7Ci19 Ci0KLXNpemVfdCBzb2NrZXRwaG9uZXRfd3JpdGUoaW50IGZkLCBjb25zdCBfX3B0cl90IGJ1Ziwg c2l6ZV90IG4sIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVybiAtMTsK LX0KLQotaW50IHNvY2tldHBob25ldF9zZWxlY3QoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGlt ZW91dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQot Ci0jZWxzZQotCiAvKiBTeXN0ZW0gaGVhZGVyIGZpbGVzICovCiAjaW5jbHVkZSA8c3lzL3NvY2tl dC5oPgogI2luY2x1ZGUgPGxpbnV4L3Bob25ldC5oPgogCiAvKiBWYXJpb3VzIGhlYWRlciBmaWxl cyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNvbXBhdC5oIgogI2luY2x1ZGUg ImxpbmtzL2ZidXMtY29tbW9uLmgiCiAjaW5jbHVkZSAibGlua3MvZmJ1cy1waG9uZXQuaCIKLSNp bmNsdWRlICJkZXZpY2UuaCIKICNpbmNsdWRlICJkZXZpY2VzL3NlcmlhbC5oIgorI2luY2x1ZGUg ImRldmljZXMvc29ja2V0cGhvbmV0LmgiCiAjaW5jbHVkZSAiZ25va2lpLWludGVybmFsLmgiCiAK IHN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfcG4gYWRkciA9IHsgLnNwbl9mYW1pbHkgPSBBRl9QSE9O RVQsIC5zcG5fZGV2ID0gRkJVU19ERVZJQ0VfUEhPTkUgfTsKQEAgLTE1OSw1ICsxMjcsMyBAQCBp bnQgc29ja2V0cGhvbmV0X3NlbGVjdChpbnQgZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBz dHJ1Y3QgZ25fc3RhdGVtYWNoaW5lCiB7CiAJcmV0dXJuIHNlcmlhbF9zZWxlY3QoZmQsIHRpbWVv dXQsIHN0YXRlKTsKIH0KLQotI2VuZGlmIC8qIEhBVkVfU09DS0VUUEhPTkVUICovCmRpZmYgLS1n aXQgYS9jb21tb24vZGV2aWNlcy90Y3AuYyBiL2NvbW1vbi9kZXZpY2VzL3RjcC5jCmluZGV4IGUy YmNkZTQ2Li4zYWZiNDU3NSAxMDA2NDQKLS0tIGEvY29tbW9uL2RldmljZXMvdGNwLmMKKysrIGIv Y29tbW9uL2RldmljZXMvdGNwLmMKQEAgLTE4LDggKzE4LDYgQEAKICNpbmNsdWRlICJkZXZpY2Vz L3RjcC5oIgogI2luY2x1ZGUgImRldmljZXMvc2VyaWFsLmgiCiAKLSNpZm5kZWYgV0lOMzIKLQog I2lmZGVmIEhBVkVfU1lTX0lPQ1RMX0gKICMgIGluY2x1ZGUgPHN5cy9pb2N0bC5oPgogI2VuZGlm CkBAIC0xNDIsNyArMTQwLDYgQEAgaW50IHRjcF9vcGVuZGV2aWNlKGNvbnN0IGNoYXIgKmZpbGUs IGludCB3aXRoX2FzeW5jLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGEKIAlpbnQgcmV0Y29k ZTsKIAogCS8qIE9wZW4gZGV2aWNlICovCi0KIAlmZCA9IHRjcF9vcGVuKGZpbGUpOwogCiAJaWYg KGZkIDwgMCkKQEAgLTE5NywzMiArMTk0LDMgQEAgc2l6ZV90IHRjcF93cml0ZShpbnQgZmQsIGNv bnN0IF9fcHRyX3QgYnVmLCBzaXplX3Qgbiwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3QKIHsK IAlyZXR1cm4gd3JpdGUoZmQsIGJ1Ziwgbik7CiB9Ci0KLSNlbHNlIC8qIFdJTjMyICovCi0KLWlu dCB0Y3BfY2xvc2UoaW50IGZkLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQly ZXR1cm4gLTE7Ci19Ci0KLWludCB0Y3Bfb3BlbmRldmljZShjb25zdCBjaGFyICpmaWxlLCBpbnQg d2l0aF9hc3luYywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0x OwotfQotCi1zaXplX3QgdGNwX3JlYWQoaW50IGZkLCBfX3B0cl90IGJ1Ziwgc2l6ZV90IG5ieXRl cywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQotCi1z aXplX3QgdGNwX3dyaXRlKGludCBmZCwgY29uc3QgX19wdHJfdCBidWYsIHNpemVfdCBuLCBzdHJ1 Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQlyZXR1cm4gLTE7Ci19Ci0KLWludCB0Y3Bf c2VsZWN0KGludCBmZCwgc3RydWN0IHRpbWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1h Y2hpbmUgKnN0YXRlKQotewotCXJldHVybiAtMTsKLX0KLQotI2VuZGlmIC8qIFdJTjMyICovCmRp ZmYgLS1naXQgYS9jb21tb24vZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmMgYi9jb21tb24vZGV2aWNl cy91bml4Ymx1ZXRvb3RoLmMKaW5kZXggMWNlYjEyMjguLmUxM2MyZTBiIDEwMDY0NAotLS0gYS9j b21tb24vZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmMKKysrIGIvY29tbW9uL2RldmljZXMvdW5peGJs dWV0b290aC5jCkBAIC0xNiwxMyArMTYsMTAgQEAKIAogKi8KIAotI2luY2x1ZGUgImNvbmZpZy5o IgogI2luY2x1ZGUgImNvbXBhdC5oIgogI2luY2x1ZGUgIm1pc2MuaCIKICNpbmNsdWRlICJnbm9r aWkuaCIKLSNpbmNsdWRlICJkZXZpY2VzL3VuaXhibHVldG9vdGguaCIKLQotI2lmIGRlZmluZWQo SEFWRV9CTFVFVE9PVEhfQkxVRVopIHx8IGRlZmluZWQoSEFWRV9CTFVFVE9PVEhfTkVUR1JBUEgp IHx8IGRlZmluZWQoSEFWRV9CTFVFVE9PVEhfTkVUQlQpCisjaW5jbHVkZSAiZGV2aWNlcy9ibHVl dG9vdGguaCIKIAogI2lmZGVmIEhBVkVfQkxVRVRPT1RIX05FVEdSQVBICS8qIEZyZWVCU0QgLyBu ZXRncmFwaCAqLwogCkBAIC0yNTcsNyArMjU0LDcgQEAgc3RhdGljIGludCBmaW5kX3NlcnZpY2Vf Y2hhbm5lbChiZGFkZHJfdCAqYWRhcHRlciwgYmRhZGRyX3QgKmRldmljZSwgaW50IG9ubHlfZ24K IAkJY2FzZSBTRFBfQVRUUl9QUklNQVJZX0xBTkdVQUdFX0JBU0VfSUQgKyBTRFBfQVRUUl9TRVJW SUNFX05BTUVfT0ZGU0VUOgogCQkJaWYgKGNoYW5uZWwgPT0gLTEpCiAJCQkJYnJlYWs7Ci0JCQkK KwogCQkJU0RQX0dFVDgodHlwZSwgc3RhcnQpOwogCQkJc3dpdGNoICh0eXBlKSB7CiAJCQkJY2Fz ZSBTRFBfREFUQV9TVFI4OgpAQCAtMjk1LDcgKzI5Miw3IEBAIHN0YXRpYyBpbnQgZmluZF9zZXJ2 aWNlX2NoYW5uZWwoYmRhZGRyX3QgKmFkYXB0ZXIsIGJkYWRkcl90ICpkZXZpY2UsIGludCBvbmx5 X2duCiAJCQkJCWJyZWFrOwogCQkJCX0KIAkJCX0KLQkJCQorCiAJCQlpZiAoc3Ryc3RyKG5hbWUs ICJOb2tpYSBQQyBTdWl0ZSIpICE9IE5VTEwpIHsKIAkJCQljaGFubmVsID0gLTE7CiAJCQkJYnJl YWs7CkBAIC01MDEsNyArNDk4LDcgQEAgaW50IGJsdWV0b290aF9vcGVuKGNvbnN0IGNoYXIgKmFk ZHIsIHVpbnQ4X3QgY2hhbm5lbCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3QKIAogCWRwcmlu dGYoIlVzaW5nIGNoYW5uZWw6ICVkXG4iLCBjaGFubmVsKTsKIAlyYWRkci5yY19jaGFubmVsID0g Y2hhbm5lbDsKLQkKKwogCWlmIChjb25uZWN0KGZkLCAoc3RydWN0IHNvY2thZGRyICopJnJhZGRy LCBzaXplb2YocmFkZHIpKSA8IDApIHsKIAkJcGVycm9yKF8oIkNhbid0IGNvbm5lY3QiKSk7CiAJ CWNsb3NlKGZkKTsKQEAgLTU0MSw1ICs1MzgsMyBAQCBpbnQgYmx1ZXRvb3RoX3NlbGVjdChpbnQg ZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdAog CiAJcmV0dXJuIHNlbGVjdChmZCArIDEsICZyZWFkZmRzLCBOVUxMLCBOVUxMLCB0aW1lb3V0KTsK IH0KLQotI2VuZGlmCS8qIEhBVkVfQkxVRVRPT1RIX0JMVUVaIHx8IEhBVkVfQkxVRVRPT1RIX05F VEdSQVBIIHx8IEhBVkVfQkxVRVRPT1RIX05FVEJUICovCmRpZmYgLS1naXQgYS9jb21tb24vZGV2 aWNlcy91bml4aXJkYS5jIGIvY29tbW9uL2RldmljZXMvdW5peGlyZGEuYwppbmRleCAxMjcxMDQx YS4uYjJhOWVhYzAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9kZXZpY2VzL3VuaXhpcmRhLmMKKysrIGIv Y29tbW9uL2RldmljZXMvdW5peGlyZGEuYwpAQCAtMTMsMTggKzEzLDE0IEBACiAgKgogICovCiAK LSNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJjb21wYXQuaCIKICNpbmNsdWRlICJtaXNj LmgiCiAjaW5jbHVkZSAiZ25va2lpLmgiCi0KLSNpZmRlZiBIQVZFX0lSREEKKyNpbmNsdWRlICJk ZXZpY2VzL2lyZGEuaCIKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGlu dXgvaXJkYS5oPgogCi0jaW5jbHVkZSAiZGV2aWNlcy9pcmRhLmgiCi0KICNpZm5kZWYgQUZfSVJE QQogIyAgZGVmaW5lIEFGX0lSREEgMjMKICNlbmRpZgpAQCAtMTcxLDUgKzE2NywzIEBAIGludCBp cmRhX3NlbGVjdChpbnQgZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1Y3QgZ25fc3Rh dGVtYWNoaW5lICpzdGF0ZSkKIAogCXJldHVybiBzZWxlY3QoZmQgKyAxLCAmcmVhZGZkcywgTlVM TCwgTlVMTCwgdGltZW91dCk7CiB9Ci0KLSNlbmRpZiAvKiBIQVZFX0lSREEgKi8KZGlmZiAtLWdp dCBhL2NvbW1vbi9kZXZpY2VzL3dpbmJsdWV0b290aC5jIGIvY29tbW9uL2RldmljZXMvd2luYmx1 ZXRvb3RoLmMKaW5kZXggYTg5OGUyZTYuLjdiZTQwMTI3IDEwMDY0NAotLS0gYS9jb21tb24vZGV2 aWNlcy93aW5ibHVldG9vdGguYworKysgYi9jb21tb24vZGV2aWNlcy93aW5ibHVldG9vdGguYwpA QCAtOCwxOCArOCwxNCBAQAogICoKICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZmRl ZiBIQVZFX0JMVUVUT09USAotCiAjaW5jbHVkZSA8d2luc29jazIuaD4KICNpbmNsdWRlIDxtbXN5 c3RlbS5oPgogI2luY2x1ZGUgPHdzMmJ0aC5oPgogI2luY2x1ZGUgPGJsdWV0b290aGFwaXMuaD4K IAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNvbXBhdC5oIgotI2luY2x1ZGUgImdu b2tpaS5oIgotI2luY2x1ZGUgIm1pc2MuaCIKKyNpbmNsdWRlICJkZXZpY2VzL2JsdWV0b290aC5o IgogCiAvKiBRVFRZIGJ5IERhdmlkZSBMaWJlbnppICggVGVybWluYWwgaW50ZXJmYWNlIHRvIFN5 bWJpYW4gUUNvbnNvbGUgKQogICogQ29weXJpZ2h0IChDKSAyMDA0ICBEYXZpZGUgTGliZW56aQpA QCAtMTA5LDUgKzEwNSwzIEBAIGludCBibHVldG9vdGhfc2VsZWN0KGludCBmZCwgc3RydWN0IHRp bWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0CiAKIAlyZXR1cm4gc2Vs ZWN0KDAgLyogaWdub3JlZCBvbiBXaW4zMiAqLywgJnJlYWRmZHMsIE5VTEwsIE5VTEwsIHRpbWVv dXQpOwogfQotCi0jZW5kaWYgLyogSEFWRV9CTFVFVE9PVEggKi8KZGlmZiAtLWdpdCBhL2NvbW1v bi9kZXZpY2VzL3dpbmlyZGEuYyBiL2NvbW1vbi9kZXZpY2VzL3dpbmlyZGEuYwppbmRleCA0YmZl ZDc0Mi4uNzEwMTg4NDIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9kZXZpY2VzL3dpbmlyZGEuYworKysg Yi9jb21tb24vZGV2aWNlcy93aW5pcmRhLmMKQEAgLTgsMTQgKzgsMTEgQEAKICAqCiAgKi8KIAot I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWZkZWYgSEFWRV9JUkRBCi0KICNkZWZpbmUgV0lOMzJf TEVBTl9BTkRfTUVBTgogI2luY2x1ZGUgPHdpbnNvY2suaD4KICNpbmNsdWRlIDxtbXN5c3RlbS5o PgogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiY29tcGF0LmgiCiAjaW5jbHVkZSAi bWlzYy5oIgogI2luY2x1ZGUgImRldmljZXMvaXJkYS5oIgpAQCAtMTYwLDUgKzE1NywzIEBAIGlu dCBpcmRhX3NlbGVjdChpbnQgZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1Y3QgZ25f c3RhdGVtYWNoaW5lICpzdGF0ZSkKIAogCXJldHVybiBzZWxlY3QoMCAvKiBpZ25vcmVkIG9uIFdp bjMyICovLCAmcmVhZGZkcywgTlVMTCwgTlVMTCwgdGltZW91dCk7CiB9Ci0KLSNlbmRpZiAvKiBI QVZFX0lSREEgKi8KZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRl eCA1MTJhNjIwZC4uZTVlMmM1YWQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25m aWd1cmUuYWMKQEAgLTQ1OCwzOSArNDU4LDI1IEBAIGlmIHRlc3QgIiRlbmFibGVfbGlidXNiIiA9 ICJ5ZXMiOyB0aGVuCiAJCV0KIAkpCiBmaQorQU1fQ09ORElUSU9OQUwoW0xJQlVTQl0sIFt0ZXN0 ICRVU0VfTElCVVNCID0geWVzXSkKIAotZG5sID09PT09PT09PT09PT09PT09PT09PT09PSBDaGVj a3MgZm9yIExpbnV4IFBob25ldCBzdXBwb3J0CitkbmwgPT09PT09PT09PT09PT09PT09PT09PT09 IFBob25ldCBzd2l0Y2gKIFVTRV9TT0NLRVRQSE9ORVQ9Im5vIgogQUNfQVJHX0VOQUJMRShwaG9u ZXQsCiAgICAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtcGhvbmV0XSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGUgcGhvbmV0IHN1cHBvcnQgKGRlZmF1 bHQgaXMgYXV0b2RldGVjdGVkKV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCwKICAg ICAgICAgICAgICAgW2VuYWJsZV9waG9uZXQ9eWVzXSkKLWlmIHRlc3QgIiRlbmFibGVfcGhvbmV0 IiA9ICJ5ZXMiOyB0aGVuCi0JQUNfQ0hFQ0tfSEVBREVSKGxpbnV4L3Bob25ldC5oLAotCQlbQUNf REVGSU5FKEhBVkVfU09DS0VUUEhPTkVULCAxLCBbV2hldGhlciBQaG9uZXQgaXMgYXZhaWxhYmxl XSkKLQkJIFVTRV9TT0NLRVRQSE9ORVQ9InllcyJdLCwKLQkJWyNpbmNsdWRlIDxzeXMvc29ja2V0 Lmg+Ci0JCSAjaW5jbHVkZSA8bGludXgvcGhvbmV0Lmg+XSkKLWZpCiAKLWRubCA9PT09PT09PT09 PT09PT09PT09PT09PT0gQ2hlY2tzIGZvciBMaW51eCBJckRBIHN1cHBvcnQKK2RubCA9PT09PT09 PT09PT09PT09PT09PT09PT0gSXJEQSBzd2l0Y2gKIFVTRV9JUkRBPSJubyIKIEFDX0FSR19FTkFC TEUoaXJkYSwKICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pcmRhXSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGUgaXJkYSBzdXBwb3J0IChkZWZh dWx0IGlzIGF1dG9kZXRlY3RlZCldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwsCiAg ICAgICAgICAgICAgIFtlbmFibGVfaXJkYT15ZXNdKQotaWYgdGVzdCAiJGVuYWJsZV9pcmRhIiA9 ICJ5ZXMiOyB0aGVuCi0JQUNfQ0hFQ0tfSEVBREVSKGxpbnV4L2lyZGEuaCwKLQkJW0FDX0RFRklO RShIQVZFX0lSREEsIDEsIFtXaGV0aGVyIElyREEgaXMgYXZhaWxhYmxlXSkKLQkJIFVTRV9JUkRB PSJ5ZXMiXSwsCi0JCVsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCQkgI2luY2x1ZGUgPHN5cy9p b2N0bC5oPgotCQkgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+XSkKLWZpCiAKLWRubCA9PT09PT09 PT09PT09PT09PT09PT09PT0gQ2hlY2tzIGZvciBCbHVldG9vdGggc3VwcG9ydAorZG5sID09PT09 PT09PT09PT09PT09PT09PT09PSBCbHVldG9vdGggc3dpdGNoCiBVU0VfQkxVRVRPT1RIPSJubyIK IEFDX0FSR19XSVRIKGJsdWV0b290aCwKIAlbICAtLXdpdGgtYmx1ZXRvb3RoPURJUiAgICBzcGVj aWZpZXMgdGhlIGJhc2UgbGliYmx1ZXRvb3RoXSwKQEAgLTUyNCwxMCArNTEwLDI2IEBAIGxpbnV4 KikKIAkJCUFDX0RFRklORShIQVZFX0JMVUVUT09USCwgMSwgW1doZXRoZXIgQmx1ZXRvb3RoIGlz IGF2YWlsYWJsZV0pCiAJCQlBQ19ERUZJTkUoSEFWRV9CTFVFVE9PVEhfQkxVRVosW10sW0NvbXBp bGUgb24gTGludXhdKQogCQkJVVNFX0JMVUVUT09USD0ieWVzIgorCQkJVU5JWF9CTFVFVE9PVEg9 InRydWUiCiAJCQlCTFVFVE9PVEhfTElCUz0iLWxibHVldG9vdGgiCiAJCQlBQ19TVUJTVChCTFVF VE9PVEhfTElCUykKIAkJZmkKIAlmaQorCWlmIHRlc3QgIiRlbmFibGVfaXJkYSIgPSAieWVzIjsg dGhlbgorCQlBQ19DSEVDS19IRUFERVIobGludXgvaXJkYS5oLAorCQkJW0FDX0RFRklORShIQVZF X0lSREEsIDEsIFtXaGV0aGVyIElyREEgaXMgYXZhaWxhYmxlXSkKKwkJCVtVU0VfSVJEQT0ieWVz IiBVTklYX0lSREE9InRydWUiXV0sLAorCQkJWyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisJCQkg I2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorCQkJICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPl0pCisJ ZmkKKwlpZiB0ZXN0ICIkZW5hYmxlX3Bob25ldCIgPSAieWVzIjsgdGhlbgorCQlBQ19DSEVDS19I RUFERVIobGludXgvcGhvbmV0LmgsCisJCQlbQUNfREVGSU5FKEhBVkVfU09DS0VUUEhPTkVULCAx LCBbV2hldGhlciBQaG9uZXQgaXMgYXZhaWxhYmxlXSkKKwkJCSBVU0VfU09DS0VUUEhPTkVUPSJ5 ZXMiXSwsCisJCQlbI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKwkJCSAjaW5jbHVkZSA8bGludXgv cGhvbmV0Lmg+XSkKKwlmaQogCTs7CiBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09IENoZWNr cyBmb3IgTWFjT1NYIEJsdWV0b290aCBzdXBwb3J0CiBkYXJ3aW4qKQpAQCAtNTUxLDYgKzU1Myw3 IEBAIGRhcndpbiopCiAJCQlBQ19ERUZJTkUoSEFWRV9CTFVFVE9PVEgsIDEsIFtXaGV0aGVyIEJs dWV0b290aCBpcyBhdmFpbGFibGVdKQogCQkJQUNfREVGSU5FKEhBVkVfQkxVRVRPT1RIX01BQ09T WCxbXSxbQ29tcGlsZSBvbiBEYXJ3aW4gLyBNYWMgT1NYXSkKIAkJCVVTRV9CTFVFVE9PVEg9Inll cyIKKwkJCU9TWF9CTFVFVE9PVEg9InRydWUiCiAJCQlCTFVFVE9PVEhfTElCUz0iJFBUSFJFQURf TElCUyAtV2wsLWZyYW1ld29yayxDb3JlRm91bmRhdGlvbiAtV2wsLWZyYW1ld29yayxJT0JsdWV0 b290aCAtV2wsLWZyYW1ld29yayxGb3VuZGF0aW9uIgogCQkJQUNfU1VCU1QoQkxVRVRPT1RIX0xJ QlMpCiAJCWZpCkBAIC01NzIsNiArNTc1LDcgQEAgZnJlZWJzZCkKIAkJCUFDX0RFRklORShIQVZF X0JMVUVUT09USCwgMSwgW1doZXRoZXIgQmx1ZXRvb3RoIGlzIGF2YWlsYWJsZV0pCiAJCQlBQ19E RUZJTkUoSEFWRV9CTFVFVE9PVEhfTkVUR1JBUEgsIFtdLCBbQ29tcGlsZSBvbiBGcmVlQlNEXSkK IAkJCVVTRV9CTFVFVE9PVEg9InllcyIKKwkJCVVOSVhfQkxVRVRPT1RIPSJ0cnVlIgogCQkJQUNf Q0hFQ0tfTElCKGJsdWV0b290aCwgYnRfYXRvbiwKIAkJCQlbQkxVRVRPT1RIX0xJQlM9Ii1sYmx1 ZXRvb3RoIiBhY19jdl9oYXZlX2J0X2xpYj15ZXNdLAogCQkJCWFjX2N2X2hhdmVfYnRfbGliPW5v KQpAQCAtNTk4LDYgKzYwMiw3IEBAIG5ldGJzZCopCiAJCQlBQ19ERUZJTkUoSEFWRV9CTFVFVE9P VEgsIDEsIFtXaGV0aGVyIEJsdWV0b290aCBpcyBhdmFpbGFibGVdKQogCQkJQUNfREVGSU5FKEhB VkVfQkxVRVRPT1RIX05FVEJULCBbXSwgW0NvbXBpbGUgb24gTmV0QlNEXSkKIAkJCVVTRV9CTFVF VE9PVEg9InllcyIKKwkJCVVOSVhfQkxVRVRPT1RIPSJ0cnVlIgogCQkJQ0ZMQUdTPSIkQ0ZMQUdT IC1EQ09NUEFUX0JMVUVaIgogCQkJQUNfQ0hFQ0tfTElCKGJsdWV0b290aCwgYnRfYXRvbiwKIAkJ CQlbQkxVRVRPT1RIX0xJQlM9Ii1sYmx1ZXRvb3RoIiBhY19jdl9oYXZlX2J0X2xpYj15ZXNdLApA QCAtNjExLDE5ICs2MTYsMzcgQEAgbmV0YnNkKikKIAlmaQogCTs7CiAKK2RubCA9PT09PT09PT09 PT09PT09PT09PT09PT0gQ2hlY2tzIGZvciBXaW5kb3dzIGRldmljZXMKIGN5Z3dpbjMyfGN5Z3dp bnxtaW5ndzMyfG1pbmd3MzJtc3ZjKQotCUFDX0NIRUNLX0hFQURFUihhZl9pcmRhLmgsIFtBQ19E RUZJTkUoSEFWRV9JUkRBLCAxLCBbV2hldGhlciBJckRBIGlzIGF2YWlsYWJsZV0pIFVTRV9JUkRB PSJ5ZXMiIExJQlM9IiRMSUJTIC1sd2lubW0iXSwsIFsjaW5jbHVkZSA8d2luZG93cy5oPl0pCi0J QUNfQ0hFQ0tfSEVBREVSKHdzMmJ0aC5oLCBbQUNfREVGSU5FKEhBVkVfQkxVRVRPT1RILCAxLCBb V2hldGhlciBCbHVldG9vdGggaXMgYXZhaWxhYmxlXSkgVVNFX0JMVUVUT09USD0ieWVzIl0sLCBb I2luY2x1ZGUgPHdpbmRvd3MuaD5dKQorCWlmIHRlc3QgIiRlbmFibGVfYmx1ZXRvb3RoIiA9ICJ5 ZXMiOyB0aGVuCisJCUFDX0NIRUNLX0hFQURFUih3czJidGguaCwKKwkJCQlbQUNfREVGSU5FKEhB VkVfQkxVRVRPT1RILCAxLCBbV2hldGhlciBCbHVldG9vdGggaXMgYXZhaWxhYmxlXSkgVVNFX0JM VUVUT09USD0ieWVzIiBXSU4zMl9CTFVFVE9PVEg9InRydWUiXSwsCisJCQkJWyNpbmNsdWRlIDx3 aW5kb3dzLmg+XSkKKwlmaQorCWlmIHRlc3QgIiRlbmFibGVfaXJkYSIgPSAieWVzIjsgdGhlbgor CQlBQ19DSEVDS19IRUFERVIoYWZfaXJkYS5oLAorCQkJCVtBQ19ERUZJTkUoSEFWRV9JUkRBLCAx LCBbV2hldGhlciBJckRBIGlzIGF2YWlsYWJsZV0pIFVTRV9JUkRBPSJ5ZXMiIFdJTjMyX0lSREE9 InRydWUiXSwsCisJCQkJWyNpbmNsdWRlIDx3aW5kb3dzLmg+XSkKKwlmaQorCUJMVUVUT09USF9M SUJTPSIiCiAJaWYgdGVzdCB4IiRVU0VfSVJEQSIgPSAieHllcyIgLW8geCIkVVNFX0JMVUVUT09U SCIgPSAieHllcyI7IHRoZW4KLQkJTElCUz0iJExJQlMgLWx3czJfMzIiCisJCUJMVUVUT09USF9M SUJTPSItbHdzMl8zMiIKIAlmaQorCWlmIHRlc3QgeCIkVVNFX0lSREEiID0gInh5ZXMiOyB0aGVu CisJCUJMVUVUT09USF9MSUJTPSIkQkxVRVRPT1RIX0xJQlMgLWx3aW5tbSIKKwlmaQorCUFDX1NV QlNUKEJMVUVUT09USF9MSUJTKQogCVdJTjMyPTEKIAk7OwotCiBlc2FjCiAKIEFNX0NPTkRJVElP TkFMKFtXSU4zMl0sIFt0ZXN0ICJ4JFdJTjMyIiA9ICJ4MSJdKQotQU1fQ09ORElUSU9OQUwoW0ZP Ul9NQUNdLCBbdGVzdCAieCRGT1JfTUFDIiA9ICJ4MSJdKQorQU1fQ09ORElUSU9OQUwoW1NPQ0tF VFBIT05FVF0sIFt0ZXN0ICJ4JFVTRV9TT0NLRVRQSE9ORVQiID0gInh5ZXMiXSkKK0FNX0NPTkRJ VElPTkFMKFtPU1hCTFVFVE9PVEhdLCBbdGVzdCAieCRPU1hfQkxVRVRPT1RIIiA9ICJ4dHJ1ZSJd KQorQU1fQ09ORElUSU9OQUwoW1VOSVhCTFVFVE9PVEhdLCBbdGVzdCAieCRVTklYX0JMVUVUT09U SCIgPSAieHRydWUiXSkKK0FNX0NPTkRJVElPTkFMKFtVTklYSVJEQV0sIFt0ZXN0ICJ4JFVOSVhf SVJEQSIgPSAieHRydWUiXSkKK0FNX0NPTkRJVElPTkFMKFtXSU5CTFVFVE9PVEhdLCBbdGVzdCAi eCRXSU4zMl9CTFVFVE9PVEgiID0gInh0cnVlIl0pCitBTV9DT05ESVRJT05BTChbV0lOSVJEQV0s IFt0ZXN0ICJ4JFdJTjMyX0lSREEiID0gInh0cnVlIl0pCiAKIGRubCA9PT09PT09PT09PT09PT09 PT09PT09PT0gQ2hlY2tzIGZvciBYIGJhc2Ugc3VwcG9ydAogCmRpZmYgLS1naXQgYS9pbmNsdWRl L2RldmljZXMvdW5peGJsdWV0b290aC5oIGIvaW5jbHVkZS9kZXZpY2VzL2JsdWV0b290aC5oCnNp bWlsYXJpdHkgaW5kZXggODYlCnJlbmFtZSBmcm9tIGluY2x1ZGUvZGV2aWNlcy91bml4Ymx1ZXRv b3RoLmgKcmVuYW1lIHRvIGluY2x1ZGUvZGV2aWNlcy9ibHVldG9vdGguaAppbmRleCBkYjQxNzFl OS4uYTUzMWNjMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmgK KysrIGIvaW5jbHVkZS9kZXZpY2VzL2JsdWV0b290aC5oCkBAIC0xMSw4ICsxMSw4IEBACiAKICov CiAKLSNpZm5kZWYgX2dub2tpaV91bml4X2JsdWV0b290aF9oCi0jZGVmaW5lIF9nbm9raWlfdW5p eF9ibHVldG9vdGhfaAorI2lmbmRlZiBfZ25va2lpX2JsdWV0b290aF9oCisjZGVmaW5lIF9nbm9r aWlfYmx1ZXRvb3RoX2gKIAogI2luY2x1ZGUgImdub2tpaS5oIgogCkBAIC0yMiw0ICsyMiw0IEBA IGludCBibHVldG9vdGhfd3JpdGUoaW50IGZkLCBjb25zdCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6 ZSwgc3RydWN0IGduX3N0YXRlbWFjaGluCiBpbnQgYmx1ZXRvb3RoX3JlYWQoaW50IGZkLCBfX3B0 cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwogaW50 IGJsdWV0b290aF9zZWxlY3QoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0 IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwogCi0jZW5kaWYgLyogX2dub2tpaV91bml4X2JsdWV0 b290aF9oICovCisjZW5kaWYgLyogX2dub2tpaV9ibHVldG9vdGhfaCAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kZXZpY2VzL3VuaXhpcmRhLmggYi9pbmNsdWRlL2RldmljZXMvdW5peGlyZGEuaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTliMDdlZjQuLjAwMDAwMDAwCi0tLSBhL2lu Y2x1ZGUvZGV2aWNlcy91bml4aXJkYS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAot LyoKLSAqCi0gKiBHIE4gTyBLIEkgSQotICoKLSAqIEEgTGludXgvVW5peCB0b29sc2V0IGFuZCBk cml2ZXIgZm9yIHRoZSBtb2JpbGUgcGhvbmVzLgotICoKLSAqIENvcHlyaWdodCAoQykgMTk5OSwg MjAwMCBIdWdoIEJsZW1pbmdzICYgUGF2ZWwgSmFuw61rIG1sLgotICogQ29weXJpZ2h0IChDKSAy MDAwLTIwMDEgIE1hcmNlbCBIb2x0bWFubiA8bWFyY2VsQGhvbHRtYW5uLm9yZz4KLSAqCi0gKi8K LQotI2lmbmRlZiBfX3VuaXhfaXJkYV9oXwotI2RlZmluZSBfX3VuaXhfaXJkYV9oXwotCi0jZW5k aWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ25va2lpL2RhdGEuaCBiL2luY2x1ZGUvZ25va2lpL2Rh dGEuaAppbmRleCA5ODIyYzBiMC4uODRmMTYyNGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ25va2lp L2RhdGEuaAorKysgYi9pbmNsdWRlL2dub2tpaS9kYXRhLmgKQEAgLTE5MSw5ICsxOTEsMjIgQEAg dHlwZWRlZiBzdHJ1Y3QgewogCWduX2F1dGhfaW50ZXJhY3RpdmVfZnVuY190IGF1dGhfaW50ZXJh Y3RpdmU7CiB9IGduX2NhbGxiYWNrOwogCit0eXBlZGVmIHN0cnVjdCB7CisJaW50ICgqb3Blbiko Y29uc3QgY2hhciAqZmlsZSwgaW50IHdpdGhfb2RkX3Bhcml0eSwgaW50IHdpdGhfYXN5bmMsCisJ CSAgICBpbnQgd2l0aF9od19oYW5kc2hha2UsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRl KTsKKwl2b2lkICgqY2xvc2UpKGludCBmZCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUp OworCWludCAoKnNlbGVjdCkoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0 IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOworCXNpemVfdCAoKnJlYWQpKGludCBmZCwgX19wdHJf dCBidWYsIHNpemVfdCBuYnl0ZXMsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKTsKKwlz aXplX3QgKCp3cml0ZSkoaW50IGZkLCBjb25zdCBfX3B0cl90IGJ1Ziwgc2l6ZV90IG4sIHN0cnVj dCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKTsKKwlnbl9lcnJvciAoKm5yZWNlaXZlZCkoaW50IGZk LCBpbnQgKm4sIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKTsKKwlnbl9lcnJvciAoKmZs dXNoKShpbnQgZmQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKTsKKwlnbl9lcnJvciAo KmNoYW5nZXNwZWVkKShpbnQgZmQsIGludCBzcGVlZCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAq c3RhdGUpOworCXZvaWQgKCpzZXRkdHJydHMpKGludCBmZCwgaW50IGR0ciwgaW50IHJ0cywgc3Ry dWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOworfSBnbl9kZXZpY2Vfb3BzOworCiB0eXBlZGVm IHN0cnVjdCB7CiAJaW50IGZkOwotCWduX2Nvbm5lY3Rpb25fdHlwZSB0eXBlOworCWNvbnN0IGdu X2RldmljZV9vcHMgKm9wczsKIAl2b2lkICpkZXZpY2VfaW5zdGFuY2U7CiB9IGduX2RldmljZTsK IAotLSAKMi4yNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZ25va2lpLXVzZXJzIG1haWxpbmcgbGlzdApnbm9raWktdXNlcnNAbm9uZ251Lm9yZwpo dHRwczovL2xpc3RzLm5vbmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9nbm9raWktdXNlcnMK