[PATCH v9 11/12] reset: zte: Add a zx297520v3 reset driver
Stefan Dösinger <[email protected]> Sun, 02 Aug 2026 23:33:43 +0300
| Newsgroups | org.infradead.lists.linux-phy,dev.linux.lists.mfd,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
VGhpcyBkcml2ZXMgdGhlIE1GRCBjaGlsZCBkZXZpY2VzIGNyZWF0ZWQgYnkgdGhlIHp0ZS16eDI5 NzUyMHYzLWNybQpkcml2ZXIuCgpSZXZpZXdlZC1ieTogUGhpbGlwcCBaYWJlbCA8cC56YWJlbEBw ZW5ndXRyb25peC5kZT4KU2lnbmVkLW9mZi1ieTogU3RlZmFuIETDtnNpbmdlciA8c3RlZmFuZG9l c2luZ2VyQGdtYWlsLmNvbT4KLS0tCgp2OToKUmVtb3ZlIEhTSUMgYW5kIFVTQiBQSFkgcmVzZXRz LCB0aGUgcGh5IGRyaXZlciB3aWxsIGFjY2VzcyB0aGVtIHRocm91Z2gKdGhlIHNoYXJlZCByZWdt YXAgZGlyZWN0bHkKU29ydCBpbmNsdWRlIGZpbGVzIGFscGhhYmV0aWNhbGx5CkRlcGVuZCBvbiBI QVNfSU9NRU0gZHVlIHRvICJzZWxlY3QgTUZEX1NZU0NPTiIgKFNhc2hpa28pLiBUaGlzIGhhcyBz b21lLApidXQgbm90IGNvbnNpc3RlbnQsIHByZWNlZGVudCBpbiB0aGUgc2FtZSBmaWxlCgp2ODog U2VsZWN0IE1GRF9TWVNDT04gZm9yIENPTVBJTEVfVEVTVGluZyB0aGlzIGRyaXZlciB3aXRob3V0 IHRoZSBNRkQKcGFyZW50IGRyaXZlci4KCnY3OgpBZGQgTU9EVUxFX0RFVklDRV9UQUJMRSAoUGhp bGlwcCkKQWRkIEREUiBjb250cm9sIGFuZCBMU1AgcmVzZXRzCgp2NjoKQWRkIGEgY29tbWVudCB3 cnQgY2hlY2tpbmcgYWxsIGJpdHMgaW4gLnN0YXR1cygpIChQaGlsaXBwKQppbmNsdWRlIGNsZWFu dXAgKFBoaWxpcHAsIFNhc2hpa28pCgp2NToKTWFrZSB0b3AgYW5kIG1hdHJpeCBNRkQgY2hpbGRy ZW4gaW5zdGVhZCBvZiBhdXggZGV2aWNlcwpTcGxpdCBVU0IgUEhZIHJlc2V0IGludG8gaXRzIG93 biByZXNldCBJRApSZW1vdmUgVVNCIHJlc2V0IHdhaXQgY29kZSAtIHRoaXMgd2lsbCBiZSBoYW5k bGVkIHZpYSBzeXNjb24gZnJvbSBhCmZ1dHVyZSBtaW5pbWFsIHBoeS16eDI5LXVzYiBkcml2ZXIK LS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVy cy9yZXNldC9LY29uZmlnICAgICAgICAgICAgICAgIHwgIDEzICsrCiBkcml2ZXJzL3Jlc2V0L01h a2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9yZXNldC9yZXNldC16dGUtengy OTc1MjB2My5jIHwgMjM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZp bGVzIGNoYW5nZWQsIDI1MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMg Yi9NQUlOVEFJTkVSUwppbmRleCA3N2ZhODZjNjcxYjguLmVhYjBjZGY4ZWZhYyAxMDA2NDQKLS0t IGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTM5MTcsNiArMzkxNyw3IEBAIEY6 CWFyY2gvYXJtL2Jvb3QvZHRzL3p0ZS8KIEY6CWFyY2gvYXJtL21hY2gtenRlLwogRjoJZHJpdmVy cy9jbGsvenRlLwogRjoJZHJpdmVycy9tZmQvenRlLXp4Mjk3NTIwdjMtY3JtLmMKK0Y6CWRyaXZl cnMvcmVzZXQvcmVzZXQtenRlLXp4Mjk3NTIwdjMuYwogRjoJaW5jbHVkZS9kdC1iaW5kaW5ncy9j bG9jay96dGUsengyOTc1MjB2My1jbGsuaAogRjoJaW5jbHVkZS9kdC1iaW5kaW5ncy9waHkvenRl LHp4Mjk3NTIwdjMtdG9wY3JtLmgKIEY6CWluY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvenRlLHp4 Mjk3NTIwdjMtcmVzZXQuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9LY29uZmlnIGIvZHJp dmVycy9yZXNldC9LY29uZmlnCmluZGV4IGQwMDllYjA4NDlhMy4uYjkyYmQwYzE2NTE3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3Jlc2V0L0tjb25maWcKKysrIGIvZHJpdmVycy9yZXNldC9LY29uZmln CkBAIC00MDQsNiArNDA0LDE5IEBAIGNvbmZpZyBSRVNFVF9VTklQSElFUl9HTFVFCiAJICBvbiBV bmlQaGllciBTb0NzLiBTYXkgWSBpZiB5b3Ugd2FudCB0byBjb250cm9sIHJlc2V0IHNpZ25hbHMK IAkgIHByb3ZpZGVkIGJ5IHRoZSBnbHVlIGxheWVyLgogCitjb25maWcgUkVTRVRfWlRFX1pYMjk3 NTIwVjMKKwl0cmlzdGF0ZSAiWlRFIHp4Mjk3NTIwdjMgUmVzZXQgRHJpdmVyIgorCWRlcGVuZHMg b24gSEFTX0lPTUVNCisJZGVwZW5kcyBvbiBNRkRfWlRFX1pYMjk3NTIwVjNfQ1JNIHx8IENPTVBJ TEVfVEVTVAorCWRlZmF1bHQgU09DX1pYMjk3NTIwVjMKKwlzZWxlY3QgTUZEX1NZU0NPTgorCWhl bHAKKwkgIFRoaXMgZW5hYmxlcyB0aGUgcmVzZXQgY29udHJvbGxlcnMgZm9yIFpURSB6eDI5NzUy MHYzIFNvQ3MuIFRoZSByZXNldAorCSAgY29udHJvbGxlcnMgYXJlIHJlcXVpcmVkIGZvciBib290 aW5nIHRoaXMgYm9hcmQgYW5kIGFyZSBwYXJ0IG9mIHRoZQorCSAgY2xvY2sgYW5kIHJlc2V0IG1h bmFnZW1lbnQgY29udHJvbGxlcnMgb24gdGhpcyBib2FyZCwgc28geW91IHdpbGwgYWxzbworCSAg bmVlZCBNRkRfWlRFX1pYMjk3NTIwVjNfQ1JNLiBFbmFibGUgdGhpcyBpZiB5b3UgYXJlIGJ1aWxk aW5nIGEga2VybmVsCisJICBmb3IgYSBaVEUgengyOTc1MjB2MyBiYXNlZCBib2FyZC4KKwogY29u ZmlnIFJFU0VUX1pZTlEKIAlib29sICJaWU5RIFJlc2V0IERyaXZlciIgaWYgQ09NUElMRV9URVNU CiAJZGVmYXVsdCBBUkNIX1pZTlEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvTWFrZWZpbGUg Yi9kcml2ZXJzL3Jlc2V0L01ha2VmaWxlCmluZGV4IDNlNTI1NjliZDI3Ni4uOWE4YTQ4ZDQ0ZGM0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Jlc2V0L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcmVzZXQv TWFrZWZpbGUKQEAgLTUwLDUgKzUwLDYgQEAgb2JqLSQoQ09ORklHX1JFU0VUX1RJX1RQUzM4MFgp ICs9IHJlc2V0LXRwczM4MHgubwogb2JqLSQoQ09ORklHX1JFU0VUX1RONDhNX0NQTEQpICs9IHJl c2V0LXRuNDhtLm8KIG9iai0kKENPTkZJR19SRVNFVF9VTklQSElFUikgKz0gcmVzZXQtdW5pcGhp ZXIubwogb2JqLSQoQ09ORklHX1JFU0VUX1VOSVBISUVSX0dMVUUpICs9IHJlc2V0LXVuaXBoaWVy LWdsdWUubworb2JqLSQoQ09ORklHX1JFU0VUX1pURV9aWDI5NzUyMFYzKSArPSByZXNldC16dGUt engyOTc1MjB2My5vCiBvYmotJChDT05GSUdfUkVTRVRfWllOUSkgKz0gcmVzZXQtenlucS5vCiBv YmotJChDT05GSUdfUkVTRVRfWllOUU1QKSArPSByZXNldC16eW5xbXAubwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9yZXNldC9yZXNldC16dGUtengyOTc1MjB2My5jIGIvZHJpdmVycy9yZXNldC9yZXNl dC16dGUtengyOTc1MjB2My5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uYmMyODAxZDQzZDEwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9yZXNldC9yZXNldC16 dGUtengyOTc1MjB2My5jCkBAIC0wLDAgKzEsMjM2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ29weXJpZ2h0IChDKSAyMDI2IFN0ZWZhbiBEw7Zz aW5nZXIKKyAqLworI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L3p0ZSx6eDI5NzUyMHYzLXJl c2V0Lmg+CisKKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+ CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+ CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvcmVzZXQt Y29udHJvbGxlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKy8qIE1vc3QgZGV2aWNl cyBvbiB0aGUgengyOTc1MjB2MyBTb0MgaGF2ZSBvbmUgcmVzZXQgYml0IHBlciBjbG9jayBsaW5l LiBBcyBhIHJ1bGUgb2YgdGh1bWIsIHRoZQorICogbG93ZXIgYml0IGRpc2Nvbm5lY3RzIHRoZSBk ZXZpY2UgZnJvbSB0aGUgYnVzLCBzaW1pbGFybHkgdG8gdHVybmluZyBvZmYgUENMSyAtIHJlZ2lz dGVycyByZWFkIDAKKyAqIG9yIGhhbmcgaW5kZWZpbml0ZWx5LiBVbmxpa2UgUENMSywgdGhpcyBy ZXNldCBtYXkgaGF2ZSBhIGxpbmdlcmluZyBlZmZlY3QgYWZ0ZXIgZGVhc3NlcnRpbmcuCisgKiBF LmcuIHRpbWVycyB3aWxsIGJlIGRpc2FibGVkLCBidXQgcmV0YWluIHRoZWlyIGNvdW50ZXIgdmFs dWUuCisgKgorICogVGhlIG90aGVyIGJpdCByZXNldHMgdGhlIGFjdHVhbCBkZXZpY2UgcmVnaXN0 ZXJzLgorICoKKyAqIEZvciBzb21lIGRldmljZXMsIGUuZy4gR01BQywgYm90aCByZXNldCBiaXRz IGJlaGF2ZSBpbiB0aGUgc2FtZSB3YXk6IFRoZXkgZGlzY29ubmVjdCB0aGUgZGV2aWNlCisgKiBh bmQgcmVnaXN0ZXJzIHdpbGwgaGF2ZSB0aGVpciBkZWZhdWx0IHN0YXRlIGFmdGVyIGRlYXNzZXJ0 aW5nLiBGb3IgZGV2aWNlcyB0aGF0IGhhdmUgdHdvIHJlc2V0CisgKiBiaXRzLCBib3RoIG5lZWQg dG8gYmUgZGVhc3NlcnRlZCBmb3IgdGhlIGRldmljZSB0byBmdW5jdGlvbi4KKyAqLworc3RydWN0 IHp0ZV9yZXNldF9yZWcgeworCXUzMiBtYXNrOworCXUxNiByZWc7Cit9OworCitzdHJ1Y3QgenRl X3Jlc2V0X2RhdGEgeworCWNvbnN0IHN0cnVjdCB6dGVfcmVzZXRfcmVnICpyZXNldHM7CisJdW5z aWduZWQgaW50IG51bTsKK307CisKK3N0cnVjdCB6dGVfcmVzZXQgeworCXN0cnVjdCByZXNldF9j b250cm9sbGVyX2RldiByY2RldjsKKwlzdHJ1Y3QgcmVnbWFwICptYXA7CisJY29uc3Qgc3RydWN0 IHp0ZV9yZXNldF9yZWcgKnJlc2V0czsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHp0ZV9y ZXNldCAqdG9fenRlX3Jlc2V0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYpCit7 CisJcmV0dXJuIGNvbnRhaW5lcl9vZihyY2Rldiwgc3RydWN0IHp0ZV9yZXNldCwgcmNkZXYpOwor fQorCitzdGF0aWMgaW50IHp4MjlfcnN0X2Fzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9k ZXYgKnJjZGV2LCB1bnNpZ25lZCBsb25nIGlkKQoreworCXN0cnVjdCB6dGVfcmVzZXQgKnJzdCA9 IHRvX3p0ZV9yZXNldChyY2Rldik7CisKKwlyZXR1cm4gcmVnbWFwX2NsZWFyX2JpdHMocnN0LT5t YXAsIHJzdC0+cmVzZXRzW2lkXS5yZWcsIHJzdC0+cmVzZXRzW2lkXS5tYXNrKTsKK30KKworc3Rh dGljIGludCB6eDI5X3JzdF9kZWFzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJj ZGV2LCB1bnNpZ25lZCBsb25nIGlkKQoreworCXN0cnVjdCB6dGVfcmVzZXQgKnJzdCA9IHRvX3p0 ZV9yZXNldChyY2Rldik7CisKKwlyZXR1cm4gcmVnbWFwX3NldF9iaXRzKHJzdC0+bWFwLCByc3Qt PnJlc2V0c1tpZF0ucmVnLCByc3QtPnJlc2V0c1tpZF0ubWFzayk7Cit9CisKK3N0YXRpYyBpbnQg engyOV9yc3Rfc3RhdHVzKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsIHVuc2ln bmVkIGxvbmcgaWQpCit7CisJc3RydWN0IHp0ZV9yZXNldCAqcnN0ID0gdG9fenRlX3Jlc2V0KHJj ZGV2KTsKKwlpbnQgcmVzOworCisJLyogRGV2aWNlcyB3aXRoIHR3byByZXNldCBiaXRzIG5lZWQg Ym90aCBkZWFzc2VydGVkIHRvIHdvcmsuIFNvIG9ubHkgcmVwb3J0IHRoZW0gYXMKKwkgKiBkZWFz c2VydGVkIGlmIGJvdGggYml0cyBhcmUgc2V0LgorCSAqCisJICogYXNzZXJ0KCkvZGVhc3NlcnQo KSB3aWxsIGFsd2F5cyBjbGVhci9zZXQgYm90aC4gVGhlIG9ubHkgcmVhc29uIGEgZGV2aWNlIG1p Z2h0IGJlIGluIGEKKwkgKiBoeWJyaWQgc3RhdGUgaXMgYW4gdW5leHBlY3RlZCBoYW5kb3ZlciBz dGF0ZSBmcm9tIHRoZSBib290bG9hZGVyLgorCSAqLworCXJlcyA9IHJlZ21hcF90ZXN0X2JpdHMo cnN0LT5tYXAsIHJzdC0+cmVzZXRzW2lkXS5yZWcsIHJzdC0+cmVzZXRzW2lkXS5tYXNrKTsKKwlp ZiAocmVzIDwgMCkKKwkJcmV0dXJuIHJlczsKKworCXJldHVybiAhcmVzOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IHJlc2V0X2NvbnRyb2xfb3BzIHp4MjlfcnN0X29wcyA9IHsKKwkuYXNzZXJ0 CQk9IHp4MjlfcnN0X2Fzc2VydCwKKwkuZGVhc3NlcnQJPSB6eDI5X3JzdF9kZWFzc2VydCwKKwku c3RhdHVzCQk9IHp4MjlfcnN0X3N0YXR1cywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenRl X3Jlc2V0X3JlZyB6eDI5NzUyMHYzX3RvcF9yZXNldHNbXSA9IHsKKwkvKiBUaGlzIGJpdCBpcyBz ZXQgYnkgWlRFJ3MgY3Brby5rbyBibG9iLCBpdCBsb29rcyBsaWtlIGEgcmVzZXQgYml0IGZvciB0 aGUgTFRFIERTUAorCSAqIGNvcHJvY2Vzc29yLiBDbG9ja3MgZm9yIGl0IGFyZSBpbiBtYXRyaXhj cm0uCisJICovCisJW1pYMjk3NTIwVjNfWlNQX1JFU0VUXSAgICAgICA9IHsgLnJlZyA9IDB4MTNj LCAubWFzayA9IEJJVCgwKSAgICAgICAgICAgIH0sCisKKwlbWlgyOTc1MjBWM19VQVJUMF9SRVNF VF0gICAgID0geyAucmVnID0gIDB4NzgsIC5tYXNrID0gQklUKDYpICB8IEJJVCg3KSAgfSwKKwlb WlgyOTc1MjBWM19JMkMwX1JFU0VUXSAgICAgID0geyAucmVnID0gIDB4NzQsIC5tYXNrID0gQklU KDgpICB8IEJJVCg5KSAgfSwKKwkvKiBPbmx5IG9uZSByZXNldC4gQml0IDUgaXMgc2V0dGFibGUg YnV0IGRvZXMgbm90IGRvIGFueXRoaW5nIG9ic2VydmFibGUgKi8KKwlbWlgyOTc1MjBWM19SVENf UkVTRVRdICAgICAgID0geyAucmVnID0gIDB4NzQsIC5tYXNrID0gQklUKDQpICAgICAgICAgICAg fSwKKwlbWlgyOTc1MjBWM19USU1FUl9UMDhfUkVTRVRdID0geyAucmVnID0gIDB4NzgsIC5tYXNr ID0gQklUKDQpICB8IEJJVCg1KSAgfSwKKwlbWlgyOTc1MjBWM19USU1FUl9UMDlfUkVTRVRdID0g eyAucmVnID0gIDB4NzgsIC5tYXNrID0gQklUKDIpICB8IEJJVCgzKSAgfSwKKwkvKiBPbmx5IG9u ZSByZXNldC4gQml0IDAgaXMgc2V0dGFibGUgYnV0IGRvZXMgbm90IGRvIGFueXRoaW5nIG9ic2Vy dmFibGUgKi8KKwlbWlgyOTc1MjBWM19QTU1fUkVTRVRdICAgICAgID0geyAucmVnID0gIDB4NzQs IC5tYXNrID0gQklUKDEpICAgICAgICAgICAgfSwKKworCS8qIEkgaGF2ZW4ndCBmb3VuZCBhbnkg Y2xvY2tzIGZvciBHUElPLiBJdCBwcm9iYWJseSB3b3VsZG4ndCBtYWtlIG11Y2gKKwkgKiBzZW5z ZSBhbnl3YXkuIE9ubHkgb25lIHJlc2V0IGJpdCBwZXIgY29udHJvbGxlci4KKwkgKi8KKwlbWlgy OTc1MjBWM19HUElPX1JFU0VUXSAgICAgID0geyAucmVnID0gIDB4NzQsIC5tYXNrID0gQklUKDMp ICAgICAgICAgICAgfSwKKwlbWlgyOTc1MjBWM19HUElPOF9SRVNFVF0gICAgID0geyAucmVnID0g IDB4NzQsIC5tYXNrID0gQklUKDIpICAgICAgICAgICAgfSwKKworCVtaWDI5NzUyMFYzX1RJTUVS X1QxMl9SRVNFVF0gPSB7IC5yZWcgPSAgMHg3NCwgLm1hc2sgPSBCSVQoNikgIHwgQklUKDcpICB9 LAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxM19SRVNFVF0gPSB7IC5yZWcgPSAgMHg3YywgLm1hc2sg PSBCSVQoMCkgIHwgQklUKDEpICB9LAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxNF9SRVNFVF0gPSB7 IC5yZWcgPSAgMHg3YywgLm1hc2sgPSBCSVQoMikgIHwgQklUKDMpICB9LAorCVtaWDI5NzUyMFYz X1RJTUVSX1QxNV9SRVNFVF0gPSB7IC5yZWcgPSAgMHg3NCwgLm1hc2sgPSBCSVQoMTApIHwgQklU KDExKSB9LAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxNl9SRVNFVF0gPSB7IC5yZWcgPSAgMHg3Yywg Lm1hc2sgPSBCSVQoNCkgIHwgQklUKDUpICB9LAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxN19SRVNF VF0gPSB7IC5yZWcgPSAweDEyYywgLm1hc2sgPSBCSVQoMCkgIHwgQklUKDEpICB9LAorCVtaWDI5 NzUyMFYzX1dEVF9UMThfUkVTRVRdICAgPSB7IC5yZWcgPSAgMHg3NCwgLm1hc2sgPSBCSVQoMTIp IHwgQklUKDEzKSB9LAorCVtaWDI5NzUyMFYzX1VTSU0xX1JFU0VUXSAgICAgPSB7IC5yZWcgPSAg MHg3NCwgLm1hc2sgPSBCSVQoMTQpIHwgQklUKDE1KSB9LAorCVtaWDI5NzUyMFYzX0FIQl9SRVNF VF0gICAgICAgPSB7IC5yZWcgPSAgMHg3MCwgLm1hc2sgPSBCSVQoMCkgIHwgQklUKDEpICB9LAor CisJLyogVVNCIHJlc2V0LiAweDg0IHJldHVybnMgdGhlIFVTQiBkZXZpY2Ugc3RhdHVzICgweDEg Zm9yIEhTSUMgdXAsIDB4MiBmb3IgVVNCIHVwLCBidXQKKwkgKiBhbGwgMyBiaXRzIChQQ0xLLCBX Q0xLLCBQSFkpIG5lZWQgdG8gYmUgZGVhc3NlcnRlZCBmb3IgdGhlIGRldmljZSB0byByZXBvcnQg cmVhZHkuCisJICogVGh1cyBwb2xsaW5nIHRoZSBzdGF0dXMgaXMgdGhlIHJlc3BvbnNpYmlsaXR5 IG9mIHRoZSBVU0IgUEhZIGRyaXZlci4KKwkgKi8KKwlbWlgyOTc1MjBWM19VU0JfUkVTRVRdICAg ICAgID0geyAucmVnID0gIDB4ODAsIC5tYXNrID0gQklUKDQpIHwgQklUKDUpICAgfSwKKwlbWlgy OTc1MjBWM19IU0lDX1JFU0VUXSAgICAgID0geyAucmVnID0gIDB4ODAsIC5tYXNrID0gQklUKDEp IHwgQklUKDIpICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenRlX3Jlc2V0X2RhdGEg engyOTc1MjB2M190b3ByZXNldF9kYXRhID0geworCS5yZXNldHMgPSB6eDI5NzUyMHYzX3RvcF9y ZXNldHMsCisJLm51bSA9IEFSUkFZX1NJWkUoengyOTc1MjB2M190b3BfcmVzZXRzKSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgenRlX3Jlc2V0X3JlZyB6eDI5NzUyMHYzX21hdHJpeF9yZXNl dHNbXSA9IHsKKwlbWlgyOTc1MjBWM19DUFVfUkVTRVRdICAgICAgID0geyAucmVnID0gIDB4Mjgs IC5tYXNrID0gQklUKDEpICAgICAgICAgICAgfSwKKwlbWlgyOTc1MjBWM19ERFJfQ1RSTF9SRVNF VF0gID0geyAucmVnID0gMHgxMDAsIC5tYXNrID0gQklUKDEwKSB8IEJJVCgxMSkgfSwKKwlbWlgy OTc1MjBWM19FRENQX1JFU0VUXSAgICAgID0geyAucmVnID0gIDB4NjgsIC5tYXNrID0gQklUKDAp ICAgICAgICAgICAgfSwKKwlbWlgyOTc1MjBWM19TRDBfUkVTRVRdICAgICAgID0geyAucmVnID0g IDB4NTgsIC5tYXNrID0gQklUKDEpICAgICAgICAgICAgfSwKKwlbWlgyOTc1MjBWM19TRDFfUkVT RVRdICAgICAgID0geyAucmVnID0gIDB4NTgsIC5tYXNrID0gQklUKDApICAgICAgICAgICAgfSwK KwlbWlgyOTc1MjBWM19OQU5EX1JFU0VUXSAgICAgID0geyAucmVnID0gIDB4NTgsIC5tYXNrID0g QklUKDQpICAgICAgICAgICAgfSwKKwlbWlgyOTc1MjBWM19QRENGR19SRVNFVF0gICAgID0geyAu cmVnID0gIDB4OTQsIC5tYXNrID0gQklUKDIwKSAgICAgICAgICAgfSwKKwlbWlgyOTc1MjBWM19T U0NfUkVTRVRdICAgICAgID0geyAucmVnID0gIDB4OTQsIC5tYXNrID0gQklUKDI0KSAgICAgICAg ICAgfSwKKwlbWlgyOTc1MjBWM19HTUFDX1JFU0VUXSAgICAgID0geyAucmVnID0gMHgxMTQsIC5t YXNrID0gQklUKDApICB8IEJJVCgxKSAgfSwKKwlbWlgyOTc1MjBWM19WT1VfUkVTRVRdICAgICAg ID0geyAucmVnID0gMHgxNmMsIC5tYXNrID0gQklUKDApICAgICAgICAgICAgfSwKKwlbWlgyOTc1 MjBWM19MU1BfUkVTRVRdICAgICAgID0geyAucmVnID0gIDB4ODAsIC5tYXNrID0gQklUKDApICAg ICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenRlX3Jlc2V0X2RhdGEgengy OTc1MjB2M19tYXRyaXhyZXNldF9kYXRhID0geworCS5yZXNldHMgPSB6eDI5NzUyMHYzX21hdHJp eF9yZXNldHMsCisJLm51bSA9IEFSUkFZX1NJWkUoengyOTc1MjB2M19tYXRyaXhfcmVzZXRzKSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenRlX3Jlc2V0X3JlZyB6eDI5NzUyMHYzX2xzcF9y ZXNldHNbXSA9IHsKKwlbWlgyOTc1MjBWM19USU1FUl9MMV9SRVNFVF0gID0geyAucmVnID0gMHgw NCwgIC5tYXNrID0gQklUKDgpICB8IEJJVCg5KSAgfSwKKwlbWlgyOTc1MjBWM19XRFRfTDJfUkVT RVRdICAgID0geyAucmVnID0gMHgwOCwgIC5tYXNrID0gQklUKDgpICB8IEJJVCg5KSAgfSwKKwlb WlgyOTc1MjBWM19XRFRfTDNfUkVTRVRdICAgID0geyAucmVnID0gMHgwYywgIC5tYXNrID0gQklU KDgpICB8IEJJVCg5KSAgfSwKKwlbWlgyOTc1MjBWM19QV01fUkVTRVRdICAgICAgID0geyAucmVn ID0gMHgxMCwgIC5tYXNrID0gQklUKDgpICB8IEJJVCg5KSAgfSwKKwlbWlgyOTc1MjBWM19JMlMw X1JFU0VUXSAgICAgID0geyAucmVnID0gMHgxNCwgIC5tYXNrID0gQklUKDgpICB8IEJJVCg5KSAg fSwKKwkvKiAweDE4OiBOb3Qgd3JpdGVhYmxlICovCisJW1pYMjk3NTIwVjNfSTJTMV9SRVNFVF0g ICAgICA9IHsgLnJlZyA9IDB4MWMsICAubWFzayA9IEJJVCg4KSAgfCBCSVQoOSkgIH0sCisJLyog MHgyMDogTm90IHdyaXRlYWJsZSAqLworCVtaWDI5NzUyMFYzX1FTUElfUkVTRVRdICAgICAgPSB7 IC5yZWcgPSAweDI0LCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYz X1VBUlQxX1JFU0VUXSAgICAgPSB7IC5yZWcgPSAweDI4LCAgLm1hc2sgPSBCSVQoOCkgIHwgQklU KDkpICB9LAorCVtaWDI5NzUyMFYzX0kyQzFfUkVTRVRdICAgICAgPSB7IC5yZWcgPSAweDJjLCAg Lm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYzX1NQSTBfUkVTRVRdICAg ICAgPSB7IC5yZWcgPSAweDMwLCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5 NzUyMFYzX1RJTUVSX0xCX1JFU0VUXSAgPSB7IC5yZWcgPSAweDM0LCAgLm1hc2sgPSBCSVQoOCkg IHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYzX1RJTUVSX0xDX1JFU0VUXSAgPSB7IC5yZWcgPSAw eDM4LCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYzX1VBUlQyX1JF U0VUXSAgICAgPSB7IC5yZWcgPSAweDNjLCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAor CVtaWDI5NzUyMFYzX1dEVF9MRV9SRVNFVF0gICAgPSB7IC5yZWcgPSAweDQwLCAgLm1hc2sgPSBC SVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYzX1RJTUVSX0xGX1JFU0VUXSAgPSB7IC5y ZWcgPSAweDQ0LCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYzX1NQ STFfUkVTRVRdICAgICAgPSB7IC5yZWcgPSAweDQ4LCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkp ICB9LAorCVtaWDI5NzUyMFYzX1RJTUVSX0wxMV9SRVNFVF0gPSB7IC5yZWcgPSAweDRjLCAgLm1h c2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorCVtaWDI5NzUyMFYzX1RETV9SRVNFVF0gICAgICAg PSB7IC5yZWcgPSAweDUwLCAgLm1hc2sgPSBCSVQoOCkgIHwgQklUKDkpICB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCB6dGVfcmVzZXRfZGF0YSB6eDI5NzUyMHYzX2xzcHJlc2V0X2RhdGEg PSB7CisJLnJlc2V0cyA9IHp4Mjk3NTIwdjNfbHNwX3Jlc2V0cywKKwkubnVtID0gQVJSQVlfU0la RSh6eDI5NzUyMHYzX2xzcF9yZXNldHMpLAorfTsKKworc3RhdGljIGludCByZXNldF96eDI5NzUy MHYzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJY29uc3Qgc3RydWN0 IHBsYXRmb3JtX2RldmljZV9pZCAqaWQgPSBwbGF0Zm9ybV9nZXRfZGV2aWNlX2lkKHBkZXYpOwor CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisJc3RydWN0IGRldmljZV9ub2RlICpv Zl9ub2RlID0gZGV2LT5wYXJlbnQtPm9mX25vZGU7CisJY29uc3Qgc3RydWN0IHp0ZV9yZXNldF9k YXRhICpkYXRhOworCXN0cnVjdCB6dGVfcmVzZXQgKnJzdDsKKworCWlmICghaWQpCisJCXJldHVy biAtRU5PREVWOworCWRhdGEgPSAoY29uc3Qgc3RydWN0IHp0ZV9yZXNldF9kYXRhICopaWQtPmRy aXZlcl9kYXRhOworCisJcnN0ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpyc3QpLCBHRlBf S0VSTkVMKTsKKwlpZiAoIXJzdCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyc3QtPnJlc2V0cyA9 IGRhdGEtPnJlc2V0czsKKwlyc3QtPnJjZGV2Lm93bmVyID0gVEhJU19NT0RVTEU7CisJcnN0LT5y Y2Rldi5ucl9yZXNldHMgPSBkYXRhLT5udW07CisJcnN0LT5yY2Rldi5vcHMgPSAmengyOV9yc3Rf b3BzOworCXJzdC0+cmNkZXYub2Zfbm9kZSA9IG9mX25vZGU7CisJcnN0LT5yY2Rldi5kZXYgPSBk ZXY7CisKKwlyc3QtPm1hcCA9IGRldmljZV9ub2RlX3RvX3JlZ21hcChvZl9ub2RlKTsKKwlpZiAo SVNfRVJSKHJzdC0+bWFwKSkKKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHJz dC0+bWFwKSwgIkNhbm5vdCBnZXQgcGFyZW50IHN5c2NvbiByZWdtYXBcbiIpOworCisJcmV0dXJu IGRldm1fcmVzZXRfY29udHJvbGxlcl9yZWdpc3RlcihkZXYsICZyc3QtPnJjZGV2KTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgcmVzZXRfengyOTc1MjB2M19p ZHNbXSA9IHsKKwl7CisJCS5uYW1lID0gInp4Mjk3NTIwdjMtdG9wcmVzZXQiLAorCQkuZHJpdmVy X2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJnp4Mjk3NTIwdjNfdG9wcmVzZXRfZGF0YSwKKwl9LAor CXsKKwkJLm5hbWUgPSAiengyOTc1MjB2My1tYXRyaXhyZXNldCIsCisJCS5kcml2ZXJfZGF0YSA9 IChrZXJuZWxfdWxvbmdfdCkmengyOTc1MjB2M19tYXRyaXhyZXNldF9kYXRhLAorCX0sCisJewor CQkubmFtZSA9ICJ6eDI5NzUyMHYzLWxzcHJlc2V0IiwKKwkJLmRyaXZlcl9kYXRhID0gKGtlcm5l bF91bG9uZ190KSZ6eDI5NzUyMHYzX2xzcHJlc2V0X2RhdGEsCisJfSwKKwl7IH0KK307CitNT0RV TEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCByZXNldF96eDI5NzUyMHYzX2lkcyk7CisKK3N0YXRp YyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHJlc2V0X3p4Mjk3NTIwdjMgPSB7CisJLnByb2JlID0g cmVzZXRfengyOTc1MjB2M19wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJyZXNldC16 eDI5NzUyMHYzIiwKKwl9LAorCS5pZF90YWJsZSA9IHJlc2V0X3p4Mjk3NTIwdjNfaWRzLAorfTsK K21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIocmVzZXRfengyOTc1MjB2Myk7CisKK01PRFVMRV9BVVRI T1IoIlN0ZWZhbiBEw7ZzaW5nZXIgPHN0ZWZhbmRvZXNpbmdlckBnbWFpbC5jb20+Iik7CitNT0RV TEVfREVTQ1JJUFRJT04oIlpURSB6eDI5NzUyMHYzIHJlc2V0IGRyaXZlciIpOworTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwoKLS0gCjIuNTQuMAoKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0Cmxp bnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=