[PATCH v9 10/12] clk: zte: Introduce a driver for zx297520v3 LSP clocks

Stefan Dösinger <[email protected]> Sun, 02 Aug 2026 23:33:42 +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]>
IkxTUCIgaXMgWlRFJ3MgdGVybSBmb3IgdGhpcyBwYXJ0IG9mIHRoZSBTb0MsIEkgc3VzcGVjdCBp
dCBzdGFuZHMgZm9yCiJsb3cgc3BlZWQgcGVyaXBoZXJhbHMiLiBUaGUgbWFpbiBVQVJUIGlzIGhl
cmUsIHRvZ2V0aGVyIHdpdGggdGhlIGZsYXNoCmNvbnRyb2xsZXIgYW5kIG1vcmUgc3VycGx1cyBw
cm9wcmlldGFyeSB0aW1lcnMuCgpJdCBhbHNvIGhhcyBvbmUgbW9yZSBJMkMgY29udHJvbGxlciB0
aGF0IHN1cHBvc2VkbHkgY29ubmVjdHMgdG8gYQpiYXR0ZXJ5IGNoYXJnZXIsIFNQSSBmb3IgZGlz
cGxheXMgYW5kIEkyUyBmb3IgYW5hbG9nIHRlbGVwaG9uZXMuIFRoZQpib2FyZHMgSSBoYXZlIGRv
bid0IGhhdmUgYW55IG9mIHRoZXNlIGNvbXBvbmVudHMgdGhvdWdoLgoKU2lnbmVkLW9mZi1ieTog
U3RlZmFuIETDtnNpbmdlciA8c3RlZmFuZG9lc2luZ2VyQGdtYWlsLmNvbT4KCi0tLQoKVmVyc2lv
biA5OgpMaW5rIGludGVybmFsIHBhcmVudHMgYnkgYW4gKGludGVybmFsKSBjbG9jayBJRCByYXRo
ZXIgdGhhbiBuYW1lcy4KCk9uZSBpbnRlbnRpb25hbCBjbG9jayB0cmVlIGNoYW5nZTogVGhlIFBX
TSBkZXZpY2UncyBwYXJlbnQgaXMgdGhlIDEwNApNSHogbXBsbC1kNiBpbnB1dC4gV2l0aCBzb21l
IG1hbnVhbCBleHBlcmltZW50YXRpb24gSSBtYW5hZ2VkIHRvIG1ha2UKdGhlIFdpRmkgbGVkIGJs
aW5rIHdpdGggUFdNLCBzbyBJIGNvdWxkIGNvbmZpcm0gd2hpY2ggbWF0cml4Y3JtIGJpdApnYXRl
cyBvZmYgaXRzIHBhcmVudC4KClVwZGF0ZSB0aGUgY29tbWVudHMgdG8gc2F5IHRoYXQgdGhlIGRl
dmljZSBhdCBsc3Bjcm0rMHg0MDAwIGlzIGluZGVlZCBhClB1bHNlIFdpZHRoIE1vZHVsYXRvci4K
CkBTYXNoaWtvOiBJZiB5b3UgZmluZCBhbnkgb3RoZXIgY2xvY2sgdHJlZSBjaGFuZ2VzIGNvbXBh
cmVkIHRvIHZlcnNpb24KOCwgdGhleSBhcmUgdW5pbnRlbnRpb25hbCBhbmQgbGlrZWx5IGJ1Z3Mu
CgpWZXJzaW9uIDg6CkRvdWJsZS1jaGVja2VkIHBjbGsgYW5kIHdjbGsuIFRoZXkgd2VyZSB0aGUg
d3Jvbmcgd2F5IGFyb3VuZCBpbiBwcmV2aW91cwpzdWJtaXNzaW9ucy4gUGNsayBpcyBiaXQgMCwg
d2NsayBpcyBiaXQgMS4KClZlcnNpb24gNzoKVW5kZXJzY29yZSBpbiBjbG9jayBuYW1lcyB0byBk
YXNoZXMKClZlcnNpb24gNjoKdXNlIE1GRCBmb3IgTFNQIHRvbwoKVmVyc2lvbiA1OgpSZW1vdmVk
IHVudXNlZCB0ZG1fbHNwX3NlbC4gRml4IHp4Mjk3NTI5IHZzIHp4Mjk3NTIwIHR5cG8uCkFkanVz
dGVkIC5jb21wYXRpYmxlIHRvIHp0ZSx6eDI5NzUyMHYzLWxzcGNybQotLS0KIGRyaXZlcnMvY2xr
L3p0ZS9jbGstengyOTc1MjB2My5jIHwgMjg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI4NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0
IGEvZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMgYi9kcml2ZXJzL2Nsay96dGUvY2xr
LXp4Mjk3NTIwdjMuYwppbmRleCA2YzRhN2ExYzNhOWIuLjI4NmVhZWRmZmNlOSAxMDA2NDQKLS0t
IGEvZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMKKysrIGIvZHJpdmVycy9jbGsvenRl
L2Nsay16eDI5NzUyMHYzLmMKQEAgLTEyNDgsNiArMTI0OCwyODcgQEAgc3RhdGljIGNvbnN0IHN0
cnVjdCB6eF9jbGtfZGF0YSB6eDI5NzUyMHYzX21hdHJpeGNsa19kYXRhID0gewogCS5udW1fZXhw
b3J0cyA9IEFSUkFZX1NJWkUoengyOTc1MjB2M19tYXRyaXhfZXhwb3J0cyksCiB9OwogCisvKgor
ICogTFNQIGNsb2NrIGVudHJpZXMgaGF2ZSBhIGNvbW1vbiBwYXR0ZXJuOiBCaXQgMCBmb3IgcGNs
aywgQml0IDEgZm9yIHdjbGsuIEJpdCA0IChhbmQgc29tZXRpbWVzCisgKiBtb3JlKSBmb3Igd2Ns
ayBtdXguCisgKgorICogQml0IDggYW5kIDkgYXJlIHJlc2V0cyBoYW5kbGVkIGJ5IHRoZSByZXNl
dC16dGUtengyOTc1MjB2MyBkcml2ZXIuCisgKgorICogQml0cyAxNToxMiBjYW4gYmUgYSBkaXZp
c29yLCBidXQgbm90IGFsbCBjbG9ja3MgaGF2ZSBpdC4gU29tZSBjbG9ja3MgaGF2ZSBhIGRpdmlz
b3IgaW4gMTk6MTYuCisgKgorICogVGhlIElEIGdpdmVuIGluIHRoaXMgdGFibGUgaXMgdGhlIGZp
cnN0IHJlZ2lzdGVyIGluIHRoZSBkZXZpY2UncyBNTUlPIHNwYWNlLiBaVEUncyBkcml2ZXJzCisg
KiB1c3VhbGx5IGNhbGwgdGhpcyBhIHZlcnNpb24gcmVnaXN0ZXIsIGJ1dCBpdCBsb29rcyBtb3Jl
IGxpa2UgYSBkZXZpY2UgaWRlbnRpZmllci4KKyAqCisgKiBJdCBsb29rcyBsaWtlIHRoZSByZWdp
c3RlcnMgbWFwIHRvIGRldmljZXMgbGlrZSB0aGlzOgorICoKKyAqIENSTSBSZWcJZnVuY3Rpb24J
ZGl2CWRldiBvZmZzZXQobHNwICsgeHh4eCkJSUQKKyAqIDB4MDogUmVhZC1vbmx5LCBwcm9iYWJs
eSBkZXZpY2UgaWRlbnRpZmllcgkJCTB4MDA3NTIxMDAKKyAqIDB4NDoJCXRpbWVyX2wxCVkJMHgx
MDAwCQkJMHgwMjAyMDAwMAorICogMHg4OgkJd2F0Y2hkb2dfbDIJWQkweDIwMDAJCQkweDAyMDIw
MDAwCisgKiAweGM6CQl3YXRjaGRvZ19sMwlZCTB4MzAwMAkJCTB4MDIwMjAwMDAKKyAqIDB4MTA6
CXB3bQkJTgkweDQwMDAJCQkweDAxMDIwMDAwCisgKiAweDE0OglpMnMwCQlZaAkweDUwMDAJCQkw
eDAxMDMwMDAwCisgKiAweDE4OglhbHdheXMgMAktCS0JCQktCisgKiAweDFjOglpMnMxCQlZaAkw
eDYwMDAJCQkweDAxMDMwMDAwCisgKiAweDIwOglhbHdheXMgMAktCS0JCQktCisgKiAweDI0Oglx
c3BpCQlOCTB4NzAwMAkJCTB4MDEwNDAwMDAKKyAqIDB4Mjg6CXVhcnQxCQlOCTB4ODAwMAkJCTB4
MDEwNjAwMDAKKyAqIDB4MmM6CWkyYzEJCU4JMHg5MDAwCQkJMHgwMTAyMDAwMAorICogMHgzMDoJ
c3BpMAkJWQkweGEwMDAJCQkweDAxMDQwMDAwCisgKiAweDM0Ogl0aW1lcl9sYglZCTB4YjAwMAkJ
CTB4MDIwMjAwMDAKKyAqIDB4Mzg6CXRpbWVyX2xjCVkJMHhjMDAwCQkJMHgwMjAyMDAwMAorICog
MHgzYzoJdWFydDIJCU4JMHhkMDAwCQkJMHgwMTA2MDAwMAorICogMHg0MDoJd2F0Y2hkb2dfbGUJ
WQkweGUwMDAJCQkweDAyMDIwMDAwCisgKiAweDQ0Ogl0aW1lcl9sZglZCTB4ZjAwMAkJCTB4MDIw
MjAwMDAKKyAqIDB4NDg6CXNwaTEJCVkJMHgxMDAwMAkJCTB4MDEwNDAwMDAKKyAqIDB4NGM6CXRp
bWVyX2wxMQlZCTB4MTEwMDAJCQkweDAyMDIwMDAwCisgKiAweDUwOgl0ZG0JCVloCTB4MTIwMDAJ
CQkweDAxMDQwMDAwCisgKgorICogUmVnaXN0ZXJzIDB4NTgsIDB4NWMsIDB4NjAsIDB4NjQsIDB4
Njggc2VlbSB0byBjb250YWluIG1vcmUgY29udHJvbHMgZm9yIGkycyBhbmQgdGRtLgorICoKKyAq
IFRoZSBkZXZpY2UgYXQgb2Zmc2V0IDB4NDAwMCAoY2xrIHJlZyAweDEwKSBpcyBhIFBXTSBkZXZp
Y2UuIFRoZSBJRCBtYXRjaGVzIHRoYXQgb2YgaTJjLCBpdCBoYXMgYQorICogbGFyZ2VyIHJlZ2lz
dGVyIHNldC4gWlRFJ3Mga2VybmVsIGRvZXMgbm90IG9wZXJhdGUgaXQgYXQgYWxsLiBUaGUgb2xk
IHVwc3RyZWFtIHB3bS16eC5jIGRyaXZlcgorICogcHJvdmlkZWQgZW5vdWdoIGluc3RydWN0aW9u
cyB0byBibGluayB0aGUgV2lmaSBsZWQgYW5kIGlzb2xhdGUgdGhlIHBhcmVudC4KKyAqLworCitl
bnVtIGxzcF9jbG9ja19pZHMgeworCVpYX0NMS19USU1FUl9MMV9NVVgsCisJWlhfQ0xLX1dEVF9M
Ml9NVVgsCisJWlhfQ0xLX1dEVF9MM19NVVgsCisJWlhfQ0xLX0kyUzBfTVVYLAorCVpYX0NMS19J
MlMxX01VWCwKKwlaWF9DTEtfUVNQSV9NVVgsCisJWlhfQ0xLX1VBUlQxX01VWCwKKwlaWF9DTEtf
STJDMV9NVVgsCisJWlhfQ0xLX1NQSTBfTVVYLAorCVpYX0NMS19USU1FUl9MQl9NVVgsCisJWlhf
Q0xLX1RJTUVSX0xDX01VWCwKKwlaWF9DTEtfVUFSVDJfTVVYLAorCVpYX0NMS19XRFRfTEVfTVVY
LAorCVpYX0NMS19USU1FUl9MRl9NVVgsCisJWlhfQ0xLX1NQSTFfTVVYLAorCVpYX0NMS19USU1F
Ul9MMTFfTVVYLAorCisJWlhfQ0xLX1RJTUVSX0wxX0RJViwKKwlaWF9DTEtfV0RUX0wyX0RJViwK
KwlaWF9DTEtfV0RUX0wzX0RJViwKKwlaWF9DTEtfSTJTMF9ESVYsCisJWlhfQ0xLX0kyUzFfRElW
LAorCVpYX0NMS19TUEkwX0RJViwKKwlaWF9DTEtfVElNRVJfTEJfRElWLAorCVpYX0NMS19USU1F
Ul9MQ19ESVYsCisJWlhfQ0xLX1dEVF9MRV9ESVYsCisJWlhfQ0xLX1RJTUVSX0xGX0RJViwKKwla
WF9DTEtfU1BJMV9ESVYsCisJWlhfQ0xLX1RJTUVSX0wxMV9ESVYsCisJWlhfQ0xLX1RETV9ESVYs
CisKKwlaWF9DTEtfVElNRVJfTDFfUENMSywKKwlaWF9DTEtfVElNRVJfTDFfV0NMSywKKwlaWF9D
TEtfV0RUX0wyX1BDTEssCisJWlhfQ0xLX1dEVF9MMl9XQ0xLLAorCVpYX0NMS19XRFRfTDNfUENM
SywKKwlaWF9DTEtfV0RUX0wzX1dDTEssCisJWlhfQ0xLX1BXTV9QQ0xLLAorCVpYX0NMS19QV01f
V0NMSywKKwlaWF9DTEtfSTJTMF9QQ0xLLAorCVpYX0NMS19JMlMwX1dDTEssCisJWlhfQ0xLX0ky
UzFfUENMSywKKwlaWF9DTEtfSTJTMV9XQ0xLLAorCVpYX0NMS19RU1BJX1BDTEssCisJWlhfQ0xL
X1FTUElfV0NMSywKKwlaWF9DTEtfVUFSVDFfUENMSywKKwlaWF9DTEtfVUFSVDFfV0NMSywKKwla
WF9DTEtfSTJDMV9QQ0xLLAorCVpYX0NMS19JMkMxX1dDTEssCisJWlhfQ0xLX1NQSTBfUENMSywK
KwlaWF9DTEtfU1BJMF9XQ0xLLAorCVpYX0NMS19USU1FUl9MQl9QQ0xLLAorCVpYX0NMS19USU1F
Ul9MQl9XQ0xLLAorCVpYX0NMS19USU1FUl9MQ19QQ0xLLAorCVpYX0NMS19USU1FUl9MQ19XQ0xL
LAorCVpYX0NMS19VQVJUMl9QQ0xLLAorCVpYX0NMS19VQVJUMl9XQ0xLLAorCVpYX0NMS19XRFRf
TEVfUENMSywKKwlaWF9DTEtfV0RUX0xFX1dDTEssCisJWlhfQ0xLX1RJTUVSX0xGX1BDTEssCisJ
WlhfQ0xLX1RJTUVSX0xGX1dDTEssCisJWlhfQ0xLX1NQSTFfUENMSywKKwlaWF9DTEtfU1BJMV9X
Q0xLLAorCVpYX0NMS19USU1FUl9MMTFfUENMSywKKwlaWF9DTEtfVElNRVJfTDExX1dDTEssCisJ
WlhfQ0xLX1RETV9QQ0xLLAorCVpYX0NMS19URE1fV0NMSywKK307CisKK3N0YXRpYyBjb25zdCBz
dHJ1Y3QgenhfcGFyZW50X2Rlc2MgdGltZXJfbHNwX3NlbFtdID0geworCVBBUkVOVF9GVygib3Nj
MzJrIiksCisJUEFSRU5UX0ZXKCJvc2MyNm0iKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg
enhfcGFyZW50X2Rlc2MgdWFydF9sc3Bfc2VsW10gPSB7CisJUEFSRU5UX0ZXKCJvc2MyNm0iKSwK
KwlQQVJFTlRfRlcoIm1wbGwtZDYiKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFy
ZW50X2Rlc2MgaTJzX2xzcF9zZWxbXSA9IHsKKwlQQVJFTlRfRlcoIm9zYzI2bSIpLAorCVBBUkVO
VF9GVygiZHBsbC1kNCIpLAorCVBBUkVOVF9GVygibXBsbC1kNiIpLAorCS8qIFVua25vd24gKi8K
K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2Mgc3BpX2xzcF9zZWxbXSA9
IHsKKwlQQVJFTlRfRlcoIm9zYzI2bSIpLAorCVBBUkVOVF9GVygibXBsbC1kNCIpLAorCVBBUkVO
VF9GVygibXBsbC1kNiIpLAorCS8qIFVua25vd24gKi8KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1
Y3QgenhfcGFyZW50X2Rlc2MgcXNwaV9sc3Bfc2VsW10gPSB7CisJUEFSRU5UX0ZXKCJvc2MyNm0i
KSwKKwlQQVJFTlRfRlcoIm1wbGwtZDQiKSwKKwlQQVJFTlRfRlcoIm1wbGwtZDUiKSwKKwlQQVJF
TlRfRlcoIm1wbGwtZDYiKSwKKwlQQVJFTlRfRlcoIm1wbGwtZDgiKSwKKwlQQVJFTlRfRlcoIm1w
bGwtZDEyIiksCisJUEFSRU5UX0ZXKCJvc2MyNm0iKSwKKwlQQVJFTlRfRlcoIm9zYzI2bSIpLAor
fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9jbG9jayB6eDI5NzUyMHYzX2xzcF9jbG9ja3Nb
XSA9IHsKKwlbWlhfQ0xLX1RJTUVSX0wxX01VWF0gICAgID0gTVVYKCJ0aW1lci1sMS1tdXgiLCAg
IHRpbWVyX2xzcF9zZWwsICAgIDB4MDQsICA0LCAxKSwKKwlbWlhfQ0xLX1dEVF9MMl9NVVhdICAg
ICAgID0gTVVYKCJ3ZHQtbDItbXV4IiwgICAgIHRpbWVyX2xzcF9zZWwsICAgIDB4MDgsICA0LCAx
KSwKKwlbWlhfQ0xLX1dEVF9MM19NVVhdICAgICAgID0gTVVYKCJ3ZHQtbDMtbXV4IiwgICAgIHRp
bWVyX2xzcF9zZWwsICAgIDB4MGMsICA0LCAxKSwKKwkvKiBQV006IE5vIG11eCBiaXQgY2FuIGJl
IHNldCAqLworCVtaWF9DTEtfSTJTMF9NVVhdICAgICAgICAgPSBNVVgoImkyczAtbXV4IiwgICAg
ICAgaTJzX2xzcF9zZWwsICAgICAgMHgxNCwgIDQsIDIpLAorCS8qIDB4MTg6IEFsd2F5cyAwICov
CisJW1pYX0NMS19JMlMxX01VWF0gICAgICAgICA9IE1VWCgiaTJzMS1tdXgiLCAgICAgICBpMnNf
bHNwX3NlbCwgICAgICAweDFjLCAgNCwgMiksCisJLyogMHgyMDogQWx3YXlzIDAgKi8KKwlbWlhf
Q0xLX1FTUElfTVVYXSAgICAgICAgID0gTVVYKCJxc3BpLW11eCIsICAgICAgIHFzcGlfbHNwX3Nl
bCwgICAgIDB4MjQsICA0LCAzKSwKKwlbWlhfQ0xLX1VBUlQxX01VWF0gICAgICAgID0gTVVYKCJ1
YXJ0MS1tdXgiLCAgICAgIHVhcnRfbHNwX3NlbCwgICAgIDB4MjgsICA0LCAxKSwKKwlbWlhfQ0xL
X0kyQzFfTVVYXSAgICAgICAgID0gTVVYKCJpMmMxLW11eCIsICAgICAgIHVhcnRfbHNwX3NlbCwg
ICAgIDB4MmMsICA0LCAxKSwKKwlbWlhfQ0xLX1NQSTBfTVVYXSAgICAgICAgID0gTVVYKCJzcGkw
LW11eCIsICAgICAgIHNwaV9sc3Bfc2VsLCAgICAgIDB4MzAsICA0LCAyKSwKKwlbWlhfQ0xLX1RJ
TUVSX0xCX01VWF0gICAgID0gTVVYKCJ0aW1lci1sYi1tdXgiLCAgIHRpbWVyX2xzcF9zZWwsICAg
IDB4MzQsICA0LCAxKSwKKwlbWlhfQ0xLX1RJTUVSX0xDX01VWF0gICAgID0gTVVYKCJ0aW1lci1s
Yy1tdXgiLCAgIHRpbWVyX2xzcF9zZWwsICAgIDB4MzgsICA0LCAxKSwKKwlbWlhfQ0xLX1VBUlQy
X01VWF0gICAgICAgID0gTVVYKCJ1YXJ0Mi1tdXgiLCAgICAgIHVhcnRfbHNwX3NlbCwgICAgIDB4
M2MsICA0LCAxKSwKKwlbWlhfQ0xLX1dEVF9MRV9NVVhdICAgICAgID0gTVVYKCJ3ZHQtbGUtbXV4
IiwgICAgIHRpbWVyX2xzcF9zZWwsICAgIDB4NDAsICA0LCAxKSwKKwlbWlhfQ0xLX1RJTUVSX0xG
X01VWF0gICAgID0gTVVYKCJ0aW1lci1sZi1tdXgiLCAgIHRpbWVyX2xzcF9zZWwsICAgIDB4NDQs
ICA0LCAxKSwKKwlbWlhfQ0xLX1NQSTFfTVVYXSAgICAgICAgID0gTVVYKCJzcGkxLW11eCIsICAg
ICAgIHNwaV9sc3Bfc2VsLCAgICAgIDB4NDgsICA0LCAyKSwKKwlbWlhfQ0xLX1RJTUVSX0wxMV9N
VVhdICAgID0gTVVYKCJ0aW1lci1sMTEtbXV4IiwgIHRpbWVyX2xzcF9zZWwsICAgIDB4NGMsICA0
LCAxKSwKKwkvKiBURE06IE5vIG11eCBpbiBMU1AuIEluc3RlYWQsIGl0IGlzIGluIG1hdHJpeCB3
aXRoIGEgc2VwYXJhdGUgY2xrIGxpbmUgdG8gTFNQICovCisKKwlbWlhfQ0xLX1RJTUVSX0wxX0RJ
Vl0gICAgID0gRElWKCJ0aW1lci1sMS1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX0wxX01V
WCksCisJCQkJCTB4MDQsIDEyLCA0KSwKKwlbWlhfQ0xLX1dEVF9MMl9ESVZdICAgICAgID0gRElW
KCJ3ZHQtbDItZGl2IiwgUEFSRU5UX0lEKFpYX0NMS19XRFRfTDJfTVVYKSwgMHgwOCwgMTIsIDQp
LAorCVtaWF9DTEtfV0RUX0wzX0RJVl0gICAgICAgPSBESVYoIndkdC1sMy1kaXYiLCBQQVJFTlRf
SUQoWlhfQ0xLX1dEVF9MM19NVVgpLCAweDBjLCAxMiwgNCksCisJLyogUFdNOiBObyBkaXYgKi8K
KwlbWlhfQ0xLX0kyUzBfRElWXSAgICAgICAgID0gRElWKCJpMnMwLWRpdiIsIFBBUkVOVF9JRCha
WF9DTEtfSTJTMF9NVVgpLCAweDE0LCAxNiwgNCksCisJLyogMHgxODogQWx3YXlzIDAgKi8KKwlb
WlhfQ0xLX0kyUzFfRElWXSAgICAgICAgID0gRElWKCJpMnMxLWRpdiIsIFBBUkVOVF9JRChaWF9D
TEtfSTJTMV9NVVgpLCAweDFjLCAxNiwgNCksCisJLyogMHgyMDogQWx3YXlzIDAgKi8KKwkvKiBx
c3BpLCB1YXJ0MSwgaTJjMTogTm8gZGl2ICovCisJW1pYX0NMS19TUEkwX0RJVl0gICAgICAgICA9
IERJVigic3BpMC1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1NQSTBfTVVYKSwgMHgzMCwgMTIsIDQp
LAorCVtaWF9DTEtfVElNRVJfTEJfRElWXSAgICAgPSBESVYoInRpbWVyLWxiLWRpdiIsIFBBUkVO
VF9JRChaWF9DTEtfVElNRVJfTEJfTVVYKSwKKwkJCQkJMHgzNCwgMTIsIDQpLAorCVtaWF9DTEtf
VElNRVJfTENfRElWXSAgICAgPSBESVYoInRpbWVyLWxjLWRpdiIsIFBBUkVOVF9JRChaWF9DTEtf
VElNRVJfTENfTVVYKSwKKwkJCQkJMHgzOCwgMTIsIDQpLAorCS8qIHVhcnQyOiBObyBkaXYgKi8K
KwlbWlhfQ0xLX1dEVF9MRV9ESVZdICAgICAgID0gRElWKCJ3ZHQtbGUtZGl2IiwgUEFSRU5UX0lE
KFpYX0NMS19XRFRfTEVfTVVYKSwgMHg0MCwgMTIsIDQpLAorCVtaWF9DTEtfVElNRVJfTEZfRElW
XSAgICAgPSBESVYoInRpbWVyLWxmLWRpdiIsIFBBUkVOVF9JRChaWF9DTEtfVElNRVJfTEZfTVVY
KSwKKwkJCQkJMHg0NCwgMTIsIDQpLAorCVtaWF9DTEtfU1BJMV9ESVZdICAgICAgICAgPSBESVYo
InNwaTEtZGl2IiwgUEFSRU5UX0lEKFpYX0NMS19TUEkxX01VWCksIDB4NDgsIDEyLCA0KSwKKwlb
WlhfQ0xLX1RJTUVSX0wxMV9ESVZdICAgID0gRElWKCJ0aW1lci1sMTEtZGl2IiwgUEFSRU5UX0lE
KFpYX0NMS19USU1FUl9MMTFfTVVYKSwKKwkJCQkJMHg0YywgMTIsIDQpLAorCVtaWF9DTEtfVERN
X0RJVl0gICAgICAgID0gRElWKCJ0ZG0tZGl2IiwgUEFSRU5UX0ZXKCJ0ZG0td2NsayIpLCAweDUw
LCAxNiwgNCksCisKKwlbWlhfQ0xLX1RJTUVSX0wxX1BDTEtdICA9IEdBVEUoInRpbWVyLWwxLXBj
bGsiLCBQQVJFTlRfRlcoInBjbGsiKSwgMHgwNCwgMCwgMCksCisJW1pYX0NMS19USU1FUl9MMV9X
Q0xLXSAgPSBHQVRFKCJ0aW1lci1sMS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19USU1FUl9MMV9E
SVYpLCAweDA0LCAxLCAwKSwKKwlbWlhfQ0xLX1dEVF9MMl9QQ0xLXSAgICA9IEdBVEUoIndkdC1s
Mi1wY2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4MDgsIDAsIDApLAorCVtaWF9DTEtfV0RUX0wy
X1dDTEtdICAgID0gR0FURSgid2R0LWwyLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1dEVF9MMl9E
SVYpLCAweDA4LCAxLCAwKSwKKwlbWlhfQ0xLX1dEVF9MM19QQ0xLXSAgICA9IEdBVEUoIndkdC1s
My1wY2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4MGMsIDAsIDApLAorCVtaWF9DTEtfV0RUX0wz
X1dDTEtdICAgID0gR0FURSgid2R0LWwzLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1dEVF9MM19E
SVYpLCAweDBjLCAxLCAwKSwKKwlbWlhfQ0xLX1BXTV9QQ0xLXSAgICAgICA9IEdBVEUoInB3bS1w
Y2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4MTAsIDAsIDApLAorCVtaWF9DTEtfUFdNX1dDTEtd
ICAgICAgID0gR0FURSgicHdtLXdjbGsiLCBQQVJFTlRfRlcoIm1wbGwtZDYiKSwgMHgxMCwgMSwg
MCksCisJW1pYX0NMS19JMlMwX1BDTEtdICAgICAgPSBHQVRFKCJpMnMwLXBjbGsiLCBQQVJFTlRf
RlcoInBjbGsiKSwgMHgxNCwgMCwgMCksCisJW1pYX0NMS19JMlMwX1dDTEtdICAgICAgPSBHQVRF
KCJpMnMwLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX0kyUzBfRElWKSwgMHgxNCwgMSwgMCksCisJ
LyogMHgxODogQWx3YXlzIDAgKi8KKwlbWlhfQ0xLX0kyUzFfUENMS10gICAgICA9IEdBVEUoImky
czEtcGNsayIsIFBBUkVOVF9GVygicGNsayIpLCAweDFjLCAwLCAwKSwKKwlbWlhfQ0xLX0kyUzFf
V0NMS10gICAgICA9IEdBVEUoImkyczEtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfSTJTMV9ESVYp
LCAweDFjLCAxLCAwKSwKKwkvKiAweDIwOiBBbHdheXMgMCAqLworCVtaWF9DTEtfUVNQSV9QQ0xL
XSAgICAgID0gR0FURSgicXNwaS1wY2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4MjQsIDAsIDAp
LAorCVtaWF9DTEtfUVNQSV9XQ0xLXSAgICAgID0gR0FURSgicXNwaS13Y2xrIiwgUEFSRU5UX0lE
KFpYX0NMS19RU1BJX01VWCksIDB4MjQsIDEsIDApLAorCVtaWF9DTEtfVUFSVDFfUENMS10gICAg
ID0gR0FURSgidWFydDEtcGNsayIsIFBBUkVOVF9GVygicGNsayIpLCAweDI4LCAwLCAwKSwKKwlb
WlhfQ0xLX1VBUlQxX1dDTEtdICAgICA9IEdBVEUoInVhcnQxLXdjbGsiLCBQQVJFTlRfSUQoWlhf
Q0xLX1VBUlQxX01VWCksIDB4MjgsIDEsIDApLAorCVtaWF9DTEtfSTJDMV9QQ0xLXSAgICAgID0g
R0FURSgiaTJjMS1wY2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4MmMsIDAsIDApLAorCVtaWF9D
TEtfSTJDMV9XQ0xLXSAgICAgID0gR0FURSgiaTJjMS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19J
MkMxX01VWCksIDB4MmMsIDEsIDApLAorCVtaWF9DTEtfU1BJMF9QQ0xLXSAgICAgID0gR0FURSgi
c3BpMC1wY2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4MzAsIDAsIDApLAorCVtaWF9DTEtfU1BJ
MF9XQ0xLXSAgICAgID0gR0FURSgic3BpMC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19TUEkwX0RJ
ViksIDB4MzAsIDEsIDApLAorCVtaWF9DTEtfVElNRVJfTEJfUENMS10gID0gR0FURSgidGltZXIt
bGItcGNsayIsIFBBUkVOVF9GVygicGNsayIpLCAweDM0LCAwLCAwKSwKKwlbWlhfQ0xLX1RJTUVS
X0xCX1dDTEtdICA9IEdBVEUoInRpbWVyLWxiLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVS
X0xCX0RJViksIDB4MzQsIDEsIDApLAorCVtaWF9DTEtfVElNRVJfTENfUENMS10gID0gR0FURSgi
dGltZXItbGMtcGNsayIsIFBBUkVOVF9GVygicGNsayIpLCAweDM4LCAwLCAwKSwKKwlbWlhfQ0xL
X1RJTUVSX0xDX1dDTEtdICA9IEdBVEUoInRpbWVyLWxjLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xL
X1RJTUVSX0xDX0RJViksIDB4MzgsIDEsIDApLAorCVtaWF9DTEtfVUFSVDJfUENMS10gICAgID0g
R0FURSgidWFydDItcGNsayIsIFBBUkVOVF9GVygicGNsayIpLCAweDNjLCAwLCAwKSwKKwlbWlhf
Q0xLX1VBUlQyX1dDTEtdICAgICA9IEdBVEUoInVhcnQyLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xL
X1VBUlQyX01VWCksIDB4M2MsIDEsIDApLAorCVtaWF9DTEtfV0RUX0xFX1BDTEtdICAgID0gR0FU
RSgid2R0LWxlLXBjbGsiLCBQQVJFTlRfRlcoInBjbGsiKSwgMHg0MCwgMCwgMCksCisJW1pYX0NM
S19XRFRfTEVfV0NMS10gICAgPSBHQVRFKCJ3ZHQtbGUtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtf
V0RUX0xFX0RJViksIDB4NDAsIDEsIDApLAorCVtaWF9DTEtfVElNRVJfTEZfUENMS10gID0gR0FU
RSgidGltZXItbGYtcGNsayIsIFBBUkVOVF9GVygicGNsayIpLCAweDQ0LCAwLCAwKSwKKwlbWlhf
Q0xLX1RJTUVSX0xGX1dDTEtdICA9IEdBVEUoInRpbWVyLWxmLXdjbGsiLCBQQVJFTlRfSUQoWlhf
Q0xLX1RJTUVSX0xGX0RJViksIDB4NDQsIDEsIDApLAorCVtaWF9DTEtfU1BJMV9QQ0xLXSAgICAg
ID0gR0FURSgic3BpMS1wY2xrIiwgUEFSRU5UX0ZXKCJwY2xrIiksIDB4NDgsIDAsIDApLAorCVta
WF9DTEtfU1BJMV9XQ0xLXSAgICAgID0gR0FURSgic3BpMS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NM
S19TUEkxX0RJViksIDB4NDgsIDEsIDApLAorCVtaWF9DTEtfVElNRVJfTDExX1BDTEtdID0gR0FU
RSgidGltZXItbDExLXBjbGsiLCBQQVJFTlRfRlcoInBjbGsiKSwgMHg0YywgMCwgMCksCisJW1pY
X0NMS19USU1FUl9MMTFfV0NMS10gPSBHQVRFKCJ0aW1lci1sMTEtd2NsayIsIFBBUkVOVF9JRCha
WF9DTEtfVElNRVJfTDExX0RJViksCisJCQkJICAgICAgIDB4NGMsIDEsIDApLAorCVtaWF9DTEtf
VERNX1BDTEtdICAgICAgID0gR0FURSgidGRtLXBjbGsiLCBQQVJFTlRfRlcoInBjbGsiKSwgMHg1
MCwgMCwgMCksCisJW1pYX0NMS19URE1fV0NMS10gICAgICAgPSBHQVRFKCJ0ZG0td2NsayIsIFBB
UkVOVF9JRChaWF9DTEtfVERNX0RJViksIDB4NTAsIDEsIDApLAorfTsKKworc3RhdGljIHVuc2ln
bmVkIGludCB6eDI5NzUyMHYzX2xzcF9leHBvcnRzW10gPSB7CisJW1pYMjk3NTIwVjNfVElNRVJf
TDFfV0NMS10gPQlaWF9DTEtfVElNRVJfTDFfV0NMSywKKwlbWlgyOTc1MjBWM19USU1FUl9MMV9Q
Q0xLXSA9CVpYX0NMS19USU1FUl9MMV9QQ0xLLAorCVtaWDI5NzUyMFYzX1dEVF9MMl9XQ0xLXSA9
CVpYX0NMS19XRFRfTDJfV0NMSywKKwlbWlgyOTc1MjBWM19XRFRfTDJfUENMS10gPQlaWF9DTEtf
V0RUX0wyX1BDTEssCisJW1pYMjk3NTIwVjNfV0RUX0wzX1dDTEtdID0JWlhfQ0xLX1dEVF9MM19X
Q0xLLAorCVtaWDI5NzUyMFYzX1dEVF9MM19QQ0xLXSA9CVpYX0NMS19XRFRfTDNfUENMSywKKwlb
WlgyOTc1MjBWM19QV01fV0NMS10gPQkJWlhfQ0xLX1BXTV9XQ0xLLAorCVtaWDI5NzUyMFYzX1BX
TV9QQ0xLXSA9CQlaWF9DTEtfUFdNX1BDTEssCisJW1pYMjk3NTIwVjNfSTJTMF9XQ0xLXSA9CVpY
X0NMS19JMlMwX1dDTEssCisJW1pYMjk3NTIwVjNfSTJTMF9QQ0xLXSA9CVpYX0NMS19JMlMwX1BD
TEssCisJW1pYMjk3NTIwVjNfSTJTMV9XQ0xLXSA9CVpYX0NMS19JMlMxX1dDTEssCisJW1pYMjk3
NTIwVjNfSTJTMV9QQ0xLXSA9CVpYX0NMS19JMlMxX1BDTEssCisJW1pYMjk3NTIwVjNfUVNQSV9X
Q0xLXSA9CVpYX0NMS19RU1BJX1dDTEssCisJW1pYMjk3NTIwVjNfUVNQSV9QQ0xLXSA9CVpYX0NM
S19RU1BJX1BDTEssCisJW1pYMjk3NTIwVjNfVUFSVDFfV0NMS10gPQlaWF9DTEtfVUFSVDFfV0NM
SywKKwlbWlgyOTc1MjBWM19VQVJUMV9QQ0xLXSA9CVpYX0NMS19VQVJUMV9QQ0xLLAorCVtaWDI5
NzUyMFYzX0kyQzFfV0NMS10gPQlaWF9DTEtfSTJDMV9XQ0xLLAorCVtaWDI5NzUyMFYzX0kyQzFf
UENMS10gPQlaWF9DTEtfSTJDMV9QQ0xLLAorCVtaWDI5NzUyMFYzX1NQSTBfV0NMS10gPQlaWF9D
TEtfU1BJMF9XQ0xLLAorCVtaWDI5NzUyMFYzX1NQSTBfUENMS10gPQlaWF9DTEtfU1BJMF9QQ0xL
LAorCVtaWDI5NzUyMFYzX1RJTUVSX0xCX1dDTEtdID0JWlhfQ0xLX1RJTUVSX0xCX1dDTEssCisJ
W1pYMjk3NTIwVjNfVElNRVJfTEJfUENMS10gPQlaWF9DTEtfVElNRVJfTEJfUENMSywKKwlbWlgy
OTc1MjBWM19USU1FUl9MQ19XQ0xLXSA9CVpYX0NMS19USU1FUl9MQ19XQ0xLLAorCVtaWDI5NzUy
MFYzX1RJTUVSX0xDX1BDTEtdID0JWlhfQ0xLX1RJTUVSX0xDX1BDTEssCisJW1pYMjk3NTIwVjNf
VUFSVDJfV0NMS10gPQlaWF9DTEtfVUFSVDJfV0NMSywKKwlbWlgyOTc1MjBWM19VQVJUMl9QQ0xL
XSA9CVpYX0NMS19VQVJUMl9QQ0xLLAorCVtaWDI5NzUyMFYzX1dEVF9MRV9XQ0xLXSA9CVpYX0NM
S19XRFRfTEVfV0NMSywKKwlbWlgyOTc1MjBWM19XRFRfTEVfUENMS10gPQlaWF9DTEtfV0RUX0xF
X1BDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfTEZfV0NMS10gPQlaWF9DTEtfVElNRVJfTEZfV0NM
SywKKwlbWlgyOTc1MjBWM19USU1FUl9MRl9QQ0xLXSA9CVpYX0NMS19USU1FUl9MRl9QQ0xLLAor
CVtaWDI5NzUyMFYzX1NQSTFfV0NMS10gPQlaWF9DTEtfU1BJMV9XQ0xLLAorCVtaWDI5NzUyMFYz
X1NQSTFfUENMS10gPQlaWF9DTEtfU1BJMV9QQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX0wxMV9X
Q0xLXSA9CVpYX0NMS19USU1FUl9MMTFfV0NMSywKKwlbWlgyOTc1MjBWM19USU1FUl9MMTFfUENM
S10gPQlaWF9DTEtfVElNRVJfTDExX1BDTEssCisJW1pYMjk3NTIwVjNfVERNX1dDTEtdID0JCVpY
X0NMS19URE1fV0NMSywKKwlbWlgyOTc1MjBWM19URE1fUENMS10gPQkJWlhfQ0xLX1RETV9QQ0xL
LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9jbGtfZGF0YSB6eDI5NzUyMHYzX2xzcGNs
a19kYXRhID0geworCS5jbG9ja3MgPSB6eDI5NzUyMHYzX2xzcF9jbG9ja3MsCisJLm51bV9jbG9j
a3MgPSBBUlJBWV9TSVpFKHp4Mjk3NTIwdjNfbHNwX2Nsb2NrcyksCisJLmV4cG9ydHMgPSB6eDI5
NzUyMHYzX2xzcF9leHBvcnRzLAorCS5udW1fZXhwb3J0cyA9IEFSUkFZX1NJWkUoengyOTc1MjB2
M19sc3BfZXhwb3J0cyksCit9OworCiBzdGF0aWMgaW50IGNsa196eDI5NzUyMHYzX3Byb2JlKHN0
cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJY29uc3Qgc3RydWN0IHBsYXRmb3JtX2Rl
dmljZV9pZCAqaWQgPSBwbGF0Zm9ybV9nZXRfZGV2aWNlX2lkKHBkZXYpOwpAQCAtMTI2OCw2ICsx
NTQ5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGNsa196eDI5
NzUyMHYzX2lkc1tdID0gewogCQkubmFtZSA9ICJ6eDI5NzUyMHYzLW1hdHJpeGNsayIsCiAJCS5k
cml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmengyOTc1MjB2M19tYXRyaXhjbGtfZGF0YSwK
IAl9LAorCXsKKwkJLm5hbWUgPSAiengyOTc1MjB2My1sc3BjbGsiLAorCQkuZHJpdmVyX2RhdGEg
PSAoa2VybmVsX3Vsb25nX3QpJnp4Mjk3NTIwdjNfbHNwY2xrX2RhdGEsCisJfSwKIAl7IH0KIH07
CiBNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBjbGtfengyOTc1MjB2M19pZHMpOwoKLS0g
CjIuNTQuMAoKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZy
YWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp
bnV4LXBoeQo=