From: Hartmut Knaack <knaack.h@gmx.de>
To: lm-sensors@vger.kernel.org
Subject: [lm-sensors] [PATCH v4] hwmon: Driver for ADT7410
Date: Sun, 12 Aug 2012 16:15:49 +0000 [thread overview]
Message-ID: <5027D6B5.4020503@gmx.de> (raw)
TmV3IGRyaXZlciBmb3IgQURUNzQxMCB0ZW1wZXJhdHVyZSBzZW5zb3IKClRoaXMgcGF0Y2ggYnJp
bmdzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBBbmFsb2cgRGV2aWNlcyBBRFQ3NDEwIHRlbXBlcmF0
dXJlCnNlbnNvciwgYmFzZWQgb24gdGhlIGxtNzUgaHdtb24gZHJpdmVyIGFuZCB0aGUgYWR0NzQx
MCBpaW8gZHJpdmVyLiBUaGUgZm9sbG93aW5nCmZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gaW1wbGVt
ZW50ZWQ6CgogICogZ2V0IGN1cnJlbnQgdGVtcGVyYXR1cmUKICAqIGdldC9zZXQgbWluaW11bSwg
bWF4aW11bSBhbmQgY3JpdGljYWwgdGVtcGVyYXR1cmUKICAqIGdldC9zZXQgaHlzdGVyZXNpcwog
ICogZ2V0IGFsYXJtIGV2ZW50cyBmb3IgbWluaW11bSwgbWF4aW11bSBhbmQgY3JpdGljYWwgdGVt
cGVyYXR1cmUKCkFsbCBpbXBsZW1lbnRlZCBzeXNmcy1zeW1ib2xzIGhhdmUgYmVlbiBzdWNlc3Nm
dWxseSB0ZXN0ZWQgYXQgdGVtcGVyYXR1cmVzIG9mCjE1wrBDIHRvIDQwwrBDLgoKU2lnbmVkLW9m
Zi1ieTogSGFydG11dCBLbmFhY2sgPGtuYWFjay5oQGdteC5kZT4KLS0tCnY0OgpBcHBsaWVkIGNo
YW5nZXMgZHVlIHRvIEd1ZW50ZXIgUm9lY2tzIHJldmlldzoKLSBjaGFuZ2VkIHNlbnRlbmNlIGlu
IGRvY3VtZW50YXRpb24KLSByZXR1cm4gbW9yZSBhcHByb3ByaWF0ZSBlcnJvciBjb2RlIGluIGFk
dDc0MTBfdGVtcF9yZWFkeQotIGZpeCBlcnJvciBoYW5kbGluZywgZGVidWcgbWVzc2FnZSBhbmQg
YWxpZ25tZW50IGluIGFkdDc0MTBfdXBkYXRlX2RldmljZQotIGZpeCBlcnJvciBoYW5kbGluZyBp
biBhZHQ3NDEwX3NldF90ZW1wCi0gcmVzdHJ1Y3R1cmUgY29kZSBpbiBhZHQ3NDEwX3Nob3dfdF9o
eXN0IGFuZCBhZHQ3NDEwX3NldF90X2h5c3QKLSBjaGFuZ2UgZmlsZSBhdHRyaWJ1dGVzIGZvciB0
ZW1wMV9taW5faHlzdCBhbmQgdGVtcDFfY3JpdF9oeXN0Ci0gZHJvcCBlcnJvciBoYW5kbGluZyBv
biBkZXZpY2UgcmVtb3ZlCi0gc3dpdGNoIHRvIHVzZSBzMTYgaW4gQURUNzQxMF9URU1QX1RPX1JF
RyBhbmQgQURUNzQxMF9SRUdfVE9fVEVNUAoKdjM6ClJld29yayBiYXNlZCBvbiBHdWVudGVyIFJv
ZWNrcyByZXZpZXc6Ci0gZml4ZWQgZm9ybWF0IGlzc3VlcwotIGNoYW5nZWQgc29tZSB2YXJpYWJs
ZSB0eXBlcwotIG9wdGltaXplZCBzbGVlcCBkZWxheSBvZiBhZHQ3NDEwX3RlbXBfcmVhZHkKLSBh
bHdheXMgcmV0dXJuIG9yaWdpbmFsIGVycm9yIGNvZGVzCi0gc2V0IGh5c3RlcmVzaXMgd2l0aCBT
RU5TT1JTX0xJTUlUCi0gZHJvcCBhZHQ3NDEwX2RldGVjdAoKdjI6CkFwcGxpZWQgY2hhbmdlcyBy
ZWNvbW1lbmRlZCBieSBHdWVudGVyIFJvZWNrOgotIHVzZSBkZXZtXyBmdW5jdGlvbiBmb3IgYWxs
b2NhdGlvbgotIHVzZSBpMmNfc21idXMgZnVuY3Rpb25zIGluc3RlYWQgb2Ygd3JhcHBlciBmdW5j
dGlvbnMKLSBjaGFuZ2UgInZhbGlkIiBmcm9tIGNoYXIgdG8gYm9vbAotIG1vdmUgZGVsYXkgY29k
ZSB0byBhZHQ3NDEwX3RlbXBfcmVhZHkgYW5kIHVzZSBzbGVlcAotIGltcHJvdmVkIGRldGVjdCBm
dW5jdGlvbgotIG1lcmdlIHNob3dfeHh4X2FsYXJtIGZ1bmN0aW9ucwotIGltcHJvdmUgZm9ybWF0
LCBkcm9wIHZhcmlhYmxlcwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vYWR0NzQx
MCBiL0RvY3VtZW50YXRpb24vaHdtb24vYWR0NzQxMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45MTRmZWRhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9od21v
bi9hZHQ3NDEwCkBAIC0wLDAgKzEsNTEgQEAKK0tlcm5lbCBkcml2ZXIgYWR0NzQxMAorPT09PT09
PT09PT09PT09PT09PT09CisKK1N1cHBvcnRlZCBjaGlwczoKKyAgKiBBbmFsb2cgRGV2aWNlcyBB
RFQ3NDEwCisgICAgUHJlZml4OiAnYWR0NzQxMCcKKyAgICBBZGRyZXNzZXMgc2Nhbm5lZDogSTJD
IDB4NDggLSAweDRCCisgICAgRGF0YXNoZWV0OiBQdWJsaWNseSBhdmFpbGFibGUgYXQgdGhlIEFu
YWxvZyBEZXZpY2VzIHdlYnNpdGUKKyAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYW5hbG9nLmNv
bS9zdGF0aWMvaW1wb3J0ZWQtZmlsZXMvZGF0YV9zaGVldHMvQURUNzQxMC5wZGYKKworQXV0aG9y
OiBIYXJ0bXV0IEtuYWFjayA8a25hYWNrLmhAZ214LmRlPgorCitEZXNjcmlwdGlvbgorLS0tLS0t
LS0tLS0KKworVGhlIEFEVDc0MTAgaXMgYSB0ZW1wZXJhdHVyZSBzZW5zb3Igd2l0aCByYXRlZCB0
ZW1wZXJhdHVyZSByYW5nZSBvZiAtNTXCsEMgdG8KKysxNTDCsEMuIEl0IGhhcyBhIGhpZ2ggYWNj
dXJhY3kgb2YgKy8tMC41wrBDIGFuZCBjYW4gYmUgb3BlcmF0ZWQgYXQgYSByZXNvbHV0aW9uCitv
ZiAxMyBiaXRzICgwLjA2MjXCsEMpIG9yIDE2IGJpdHMgKDAuMDA3OMKwQykuIFRoZSBzZW5zb3Ig
cHJvdmlkZXMgYW4gSU5UIHBpbiB0bworaW5kaWNhdGUgdGhhdCBtaW5pbXVtIG9yIG1heGltdW0g
dGVtcGVyYXR1cmUgc2V0IHBvaW50IGhhcyBiZWVuIGV4Y2VlZGVkLCBhcword2VsbCBhcyBhIGNy
aXRpY2FsIHRlbXBlcmF0dXJlIChDVCkgcGluIHRvIGluZGljYXRlIHRoYXQgdGhlIGNyaXRpY2Fs
Cit0ZW1wZXJhdHVyZSBzZXQgcG9pbnQgaGFzIGJlZW4gZXhjZWVkZWQuIEJvdGggcGlucyBjYW4g
YmUgc2V0IHVwIHdpdGggYSBjb21tb24KK2h5c3RlcmVzaXMgb2YgMMKwQyAtIDE1wrBDIGFuZCBh
IGZhdWx0IHF1ZXVlLCByYW5naW5nIGZyb20gMSB0byA0IGV2ZW50cy4gQm90aAorcGlucyBjYW4g
aW5kaXZpZHVhbGx5IHNldCB0byBiZSBhY3RpdmUtbG93IG9yIGFjdGl2ZS1oaWdoLCB3aGlsZSB0
aGUgd2hvbGUKK2RldmljZSBjYW4gZWl0aGVyIHJ1biBpbiBjb21wYXJhdG9yIG1vZGUgb3IgaW50
ZXJydXB0IG1vZGUuIFRoZSBBRFQ3NDEwCitzdXBwb3J0cyBjb250aW5vdXMgdGVtcGVyYXR1cmUg
c2FtcGxpbmcsIGFzIHdlbGwgYXMgc2FtcGxpbmcgb25lIHRlbXBlcmF0dXJlCit2YWx1ZSBwZXIg
c2Vjb25kIG9yIGV2ZW4ganVzdGdldCBvbmUgc2FtcGxlIG9uIGRlbWFuZCBmb3IgcG93ZXIgc2F2
aW5nLgorQmVzaWRlcywgaXQgY2FuIGNvbXBsZXRlbHkgcG93ZXIgZG93biBpdHMgQURDLCBpZiBw
b3dlciBtYW5hZ2VtZW50IGlzCityZXF1aXJlZC4KKworQ29uZmlndXJhdGlvbiBOb3RlcworLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitTaW5jZSB0aGUgZGV2aWNlIHVzZXMgb25lIGh5c3RlcmVzaXMg
dmFsdWUsIHdoaWNoIGlzIGFuIG9mZnNldCB0byBtaW5pbXVtLAorbWF4aW11bSBhbmQgY3JpdGlj
YWwgdGVtcGVyYXR1cmUsIGl0IGNhbiBvbmx5IGJlIHNldCBmb3IgdGVtcCNfbWF4X2h5c3QuCitI
b3dldmVyLCB0ZW1wI19taW5faHlzdCBhbmQgdGVtcCNfY3JpdF9oeXN0IHNob3cgdGhlaXIgY29y
cmVzcG9uZGluZworaHlzdGVyZXNpcy4KK1RoZSBkZXZpY2UgaXMgc2V0IHRvIDE2IGJpdCByZXNv
bHV0aW9uIGFuZCBjb21wYXJhdG9yIG1vZGUuCisKK3N5c2ZzLUludGVyZmFjZQorLS0tLS0tLS0t
LS0tLS0tCisKK3RlbXAjX2lucHV0CQktIHRlbXBlcmF0dXJlIGlucHV0Cit0ZW1wI19taW4JCS0g
dGVtcGVyYXR1cmUgbWluaW11bSBzZXRwb2ludAordGVtcCNfbWF4CQktIHRlbXBlcmF0dXJlIG1h
eGltdW0gc2V0cG9pbnQKK3RlbXAjX2NyaXQJCS0gY3JpdGljYWwgdGVtcGVyYXR1cmUgc2V0cG9p
bnQKK3RlbXAjX21pbl9oeXN0CQktIGh5c3RlcmVzaXMgZm9yIHRlbXBlcmF0dXJlIG1pbmltdW0g
KHJlYWQtb25seSkKK3RlbXAjX21heF9oeXN0CQktIGh5c3RlcmVzaXMgZm9yIHRlbXBlcmF0dXJl
IG1heGltdW0gKHJlYWQvd3JpdGUpCit0ZW1wI19jcml0X2h5c3QJCS0gaHlzdGVyZXNpcyBmb3Ig
Y3JpdGljYWwgdGVtcGVyYXR1cmUgKHJlYWQtb25seSkKK3RlbXAjX21pbl9hbGFybQkJLSB0ZW1w
ZXJhdHVyZSBtaW5pbXVtIGFsYXJtIGZsYWcKK3RlbXAjX21heF9hbGFybQkJLSB0ZW1wZXJhdHVy
ZSBtYXhpbXVtIGFsYXJtIGZsYWcKK3RlbXAjX2NyaXRfYWxhcm0JLSBjcml0aWNhbCB0ZW1wZXJh
dHVyZSBhbGFybSBmbGFnCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL0tjb25maWcgYi9kcml2
ZXJzL2h3bW9uL0tjb25maWcKaW5kZXggNmYxZDE2Ny4uN2VkMTk4OSAxMDA2NDQKLS0tIGEvZHJp
dmVycy9od21vbi9LY29uZmlnCisrKyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwpAQCAtMTc5LDYg
KzE3OSwxNiBAQCBjb25maWcgU0VOU09SU19BRE05MjQwCiAJICBUaGlzIGRyaXZlciBjYW4gYWxz
byBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNh
bGxlZCBhZG05MjQwLgogCitjb25maWcgU0VOU09SU19BRFQ3NDEwCisJdHJpc3RhdGUgIkFuYWxv
ZyBEZXZpY2VzIEFEVDc0MTAiCisJZGVwZW5kcyBvbiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJaGVs
cAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBBbmFsb2cg
RGV2aWNlcworCSAgQURUNzQxMCB0ZW1wZXJhdHVyZSBtb25pdG9yaW5nIGNoaXAuCisKKwkgIFRo
aXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1vZHVs
ZQorCSAgd2lsbCBiZSBjYWxsZWQgYWR0NzQxMC4KKwogY29uZmlnIFNFTlNPUlNfQURUNzQxMQog
CXRyaXN0YXRlICJBbmFsb2cgRGV2aWNlcyBBRFQ3NDExIgogCWRlcGVuZHMgb24gSTJDICYmIEVY
UEVSSU1FTlRBTApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMv
aHdtb24vTWFrZWZpbGUKaW5kZXggZTFlZWFjMS4uMTEyY2UzYSAxMDA2NDQKLS0tIGEvZHJpdmVy
cy9od21vbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCkBAIC0zNCw2ICsz
NCw3IEBAIG9iai0kKENPTkZJR19TRU5TT1JTX0FETTkyNDApCSs9IGFkbTkyNDAubwogb2JqLSQo
Q09ORklHX1NFTlNPUlNfQURTMTAxNSkJKz0gYWRzMTAxNS5vCiBvYmotJChDT05GSUdfU0VOU09S
U19BRFM3ODI4KQkrPSBhZHM3ODI4Lm8KIG9iai0kKENPTkZJR19TRU5TT1JTX0FEUzc4NzEpCSs9
IGFkczc4NzEubworb2JqLSQoQ09ORklHX1NFTlNPUlNfQURUNzQxMCkJKz0gYWR0NzQxMC5vCiBv
YmotJChDT05GSUdfU0VOU09SU19BRFQ3NDExKQkrPSBhZHQ3NDExLm8KIG9iai0kKENPTkZJR19T
RU5TT1JTX0FEVDc0NjIpCSs9IGFkdDc0NjIubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfQURUNzQ3
MCkJKz0gYWR0NzQ3MC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FkdDc0MTAuYyBiL2Ry
aXZlcnMvaHdtb24vYWR0NzQxMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJhMGZkOGIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2h3bW9uL2FkdDc0MTAuYwpAQCAt
MCwwICsxLDQ1OSBAQAorLyoKKyAqIGFkdDc0MTAuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgTGlu
dXgga2VybmVsIG1vZHVsZXMgZm9yIGhhcmR3YXJlCisgKgkgbW9uaXRvcmluZworICogVGhpcyBk
cml2ZXIgaGFuZGxlcyB0aGUgQURUNzQxMCBhbmQgY29tcGF0aWJsZSBkaWdpdGFsIHRlbXBlcmF0
dXJlIHNlbnNvcnMuCisgKiBIYXJ0bXV0IEtuYWFjayA8a25hYWNrLmhAZ214LmRlPiAyMDEyLTA3
LTIyCisgKiBiYXNlZCBvbiBsbTc1LmMgYnkgRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5s
PgorICogYW5kIGFkdDc0MTAuYyBmcm9tIGlpby1zdGFnaW5nIGJ5IFNvbmljIFpoYW5nIDxzb25p
Yy56aGFuZ0BhbmFsb2cuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRp
b24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICovCisK
KyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5j
bHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRl
IDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9od21vbi5oPgorI2luY2x1ZGUgPGxpbnV4
L2h3bW9uLXN5c2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgv
bXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorCisvKgorICogQURUNzQxMCByZWdp
c3RlcnMgZGVmaW5pdGlvbgorICovCisKKyNkZWZpbmUgQURUNzQxMF9URU1QRVJBVFVSRQkJMAor
I2RlZmluZSBBRFQ3NDEwX1NUQVRVUwkJCTIKKyNkZWZpbmUgQURUNzQxMF9DT05GSUcJCQkzCisj
ZGVmaW5lIEFEVDc0MTBfVF9BTEFSTV9ISUdICQk0CisjZGVmaW5lIEFEVDc0MTBfVF9BTEFSTV9M
T1cJCTYKKyNkZWZpbmUgQURUNzQxMF9UX0NSSVQJCQk4CisjZGVmaW5lIEFEVDc0MTBfVF9IWVNU
CQkJMHhBCisKKy8qCisgKiBBRFQ3NDEwIHN0YXR1cworICovCisjZGVmaW5lIEFEVDc0MTBfU1RB
VF9UX0xPVwkJKDEgPDwgNCkKKyNkZWZpbmUgQURUNzQxMF9TVEFUX1RfSElHSAkJKDEgPDwgNSkK
KyNkZWZpbmUgQURUNzQxMF9TVEFUX1RfQ1JJVAkJKDEgPDwgNikKKyNkZWZpbmUgQURUNzQxMF9T
VEFUX05PVF9SRFkJCSgxIDw8IDcpCisKKy8qCisgKiBBRFQ3NDEwIGNvbmZpZworICovCisjZGVm
aW5lIEFEVDc0MTBfRkFVTFRfUVVFVUVfTUFTSwkoMSA8PCAwIHwgMSA8PCAxKQorI2RlZmluZSBB
RFQ3NDEwX0NUX1BPTEFSSVRZCQkoMSA8PCAyKQorI2RlZmluZSBBRFQ3NDEwX0lOVF9QT0xBUklU
WQkJKDEgPDwgMykKKyNkZWZpbmUgQURUNzQxMF9FVkVOVF9NT0RFCQkoMSA8PCA0KQorI2RlZmlu
ZSBBRFQ3NDEwX01PREVfTUFTSwkJKDEgPDwgNSB8IDEgPDwgNikKKyNkZWZpbmUgQURUNzQxMF9G
VUxMCQkJKDAgPDwgNSB8IDAgPDwgNikKKyNkZWZpbmUgQURUNzQxMF9QRAkJCSgxIDw8IDUgfCAx
IDw8IDYpCisjZGVmaW5lIEFEVDc0MTBfUkVTT0xVVElPTgkJKDEgPDwgNykKKworLyoKKyAqIEFE
VDc0MTAgbWFza3MKKyAqLworI2RlZmluZSBBRFQ3NDEwX1QxM19WQUxVRV9NQVNLCQkJMHhGRkY4
CisjZGVmaW5lIEFEVDc0MTBfVF9IWVNUX01BU0sJCQkweEYKKworLyogc3RyYWlnaHQgZnJvbSB0
aGUgZGF0YXNoZWV0ICovCisjZGVmaW5lIEFEVDc0MTBfVEVNUF9NSU4gKC01NTAwMCkKKyNkZWZp
bmUgQURUNzQxMF9URU1QX01BWCAxNTAwMDAKKworZW51bSBhZHQ3NDEwX3R5cGUgewkJLyoga2Vl
cCBzb3J0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyICovCisJYWR0NzQxMCwKK307CisKKy8qIEFk
ZHJlc3NlcyBzY2FubmVkICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2ky
Y1tdID0geyAweDQ4LCAweDQ5LCAweDRhLCAweDRiLAorCQkJCQlJMkNfQ0xJRU5UX0VORCB9Owor
CitzdGF0aWMgY29uc3QgdTggQURUNzQxMF9SRUdfVEVNUFs0XSA9IHsKKwlBRFQ3NDEwX1RFTVBF
UkFUVVJFLAkJLyogaW5wdXQgKi8KKwlBRFQ3NDEwX1RfQUxBUk1fSElHSCwJCS8qIGhpZ2ggKi8K
KwlBRFQ3NDEwX1RfQUxBUk1fTE9XLAkJLyogbG93ICovCisJQURUNzQxMF9UX0NSSVQsCQkJLyog
Y3JpdGljYWwgKi8KK307CisKKy8qIEVhY2ggY2xpZW50IGhhcyB0aGlzIGFkZGl0aW9uYWwgZGF0
YSAqLworc3RydWN0IGFkdDc0MTBfZGF0YSB7CisJc3RydWN0IGRldmljZQkJKmh3bW9uX2RldjsK
KwlzdHJ1Y3QgbXV0ZXgJCXVwZGF0ZV9sb2NrOworCXU4CQkJY29uZmlnOworCXU4CQkJb2xkY29u
ZmlnOworCWJvb2wJCQl2YWxpZDsJCS8qIHRydWUgaWYgcmVnaXN0ZXJzIHZhbGlkICovCisJdW5z
aWduZWQgbG9uZwkJbGFzdF91cGRhdGVkOwkvKiBJbiBqaWZmaWVzICovCisJczE2CQkJdGVtcFs0
XTsJLyogUmVnaXN0ZXIgdmFsdWVzLAorCQkJCQkJICAgMCA9IGlucHV0CisJCQkJCQkgICAxID0g
aGlnaAorCQkJCQkJICAgMiA9IGxvdworCQkJCQkJICAgMyA9IGNyaXRpY2FsICovCisJdTgJCQlo
eXN0OwkJLyogaHlzdGVyZXNpcyBvZmZzZXQgKi8KK307CisKKy8qCisgKiBhZHQ3NDEwIHJlZ2lz
dGVyIGFjY2VzcyBieSBJMkMKKyAqLworc3RhdGljIGludCBhZHQ3NDEwX3RlbXBfcmVhZHkoc3Ry
dWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlpbnQgaSwgc3RhdHVzOworCisJZm9yIChpID0g
MDsgaSA8IDY7IGkrKykgeworCQlzdGF0dXMgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xp
ZW50LCBBRFQ3NDEwX1NUQVRVUyk7CisJCWlmIChzdGF0dXMgPCAwKQorCQkJcmV0dXJuIHN0YXR1
czsKKwkJaWYgKCEoc3RhdHVzICYgQURUNzQxMF9TVEFUX05PVF9SRFkpKQorCQkJcmV0dXJuIDA7
CisJCW1zbGVlcCg2MCk7CisJfQorCXJldHVybiAtRVRJTUVET1VUOworfQorCitzdGF0aWMgc3Ry
dWN0IGFkdDc0MTBfZGF0YSAqYWR0NzQxMF91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRl
dikKK3sKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOwor
CXN0cnVjdCBhZHQ3NDEwX2RhdGEgKmRhdGEgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsK
KwlzdHJ1Y3QgYWR0NzQxMF9kYXRhICpyZXQgPSBkYXRhOworCW11dGV4X2xvY2soJmRhdGEtPnVw
ZGF0ZV9sb2NrKTsKKworCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGRhdGEtPmxhc3RfdXBkYXRl
ZCArIEhaICsgSFogLyAyKQorCSAgICB8fCAhZGF0YS0+dmFsaWQpIHsKKwkJaW50IGksIHN0YXR1
czsKKworCQlkZXZfZGJnKCZjbGllbnQtPmRldiwgIlN0YXJ0aW5nIHVwZGF0ZVxuIik7CisKKwkJ
c3RhdHVzID0gYWR0NzQxMF90ZW1wX3JlYWR5KGNsaWVudCk7IC8qIGNoZWNrIGZvciBuZXcgdmFs
dWUgKi8KKwkJaWYgKHVubGlrZWx5KHN0YXR1cykpIHsKKwkJCXJldCA9IEVSUl9QVFIoc3RhdHVz
KTsKKwkJCWdvdG8gYWJvcnQ7CisJCX0KKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGF0
YS0+dGVtcCk7IGkrKykgeworCQkJc3RhdHVzID0gaTJjX3NtYnVzX3JlYWRfd29yZF9zd2FwcGVk
KGNsaWVudCwKKwkJCQkJCQkgQURUNzQxMF9SRUdfVEVNUFtpXSk7CisJCQlpZiAodW5saWtlbHko
c3RhdHVzIDwgMCkpIHsKKwkJCQlkZXZfZGJnKGRldiwKKwkJCQkJIkZhaWxlZCB0byByZWFkIHZh
bHVlOiByZWcgJWQsIGVycm9yICVkXG4iLAorCQkJCQlBRFQ3NDEwX1JFR19URU1QW2ldLCBzdGF0
dXMpOworCQkJCXJldCA9IEVSUl9QVFIoc3RhdHVzKTsKKwkJCQlnb3RvIGFib3J0OworCQkJfQor
CQkJZGF0YS0+dGVtcFtpXSA9IHN0YXR1czsKKwkJfQorCQlzdGF0dXMgPSBpMmNfc21idXNfcmVh
ZF9ieXRlX2RhdGEoY2xpZW50LCBBRFQ3NDEwX1RfSFlTVCk7CisJCWlmICh1bmxpa2VseShzdGF0
dXMgPCAwKSkgeworCQkJZGV2X2RiZyhkZXYsCisJCQkJIkZhaWxlZCB0byByZWFkIHZhbHVlOiBy
ZWcgJWQsIGVycm9yICVkXG4iLAorCQkJCUFEVDc0MTBfVF9IWVNULCBzdGF0dXMpOworCQkJcmV0
ID0gRVJSX1BUUihzdGF0dXMpOworCQkJZ290byBhYm9ydDsKKwkJfQorCQlkYXRhLT5oeXN0ID0g
c3RhdHVzOworCQlkYXRhLT5sYXN0X3VwZGF0ZWQgPSBqaWZmaWVzOworCQlkYXRhLT52YWxpZCA9
IHRydWU7CisJfQorCithYm9ydDoKKwltdXRleF91bmxvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsK
KwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgczE2IEFEVDc0MTBfVEVNUF9UT19SRUcobG9uZyB0
ZW1wKQoreworCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVChTRU5TT1JTX0xJTUlUKHRlbXAsIEFE
VDc0MTBfVEVNUF9NSU4sCisJCQkJICAgIEFEVDc0MTBfVEVNUF9NQVgpICogMTI4LCAxMDAwKTsK
K30KKworc3RhdGljIGludCBBRFQ3NDEwX1JFR19UT19URU1QKHN0cnVjdCBhZHQ3NDEwX2RhdGEg
KmRhdGEsIHMxNiByZWcpCit7CisJLyogaW4gMTMgYml0IG1vZGUsIGJpdHMgMC0yIGFyZSBzdGF0
dXMgZmxhZ3MgLSBtYXNrIHRoZW0gb3V0ICovCisJaWYgKCEoZGF0YS0+Y29uZmlnICYgQURUNzQx
MF9SRVNPTFVUSU9OKSkKKwkJcmVnICY9IEFEVDc0MTBfVDEzX1ZBTFVFX01BU0s7CisJLyoKKwkg
KiB0ZW1wZXJhdHVyZSBpcyBzdG9yZWQgaW4gdHdvcyBjb21wbGVtZW50IGZvcm1hdCwgaW4gc3Rl
cHMgb2YKKwkgKiAxLzEyOMKwQworCSAqLworCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVChyZWcg
KiAxMDAwLCAxMjgpOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogc3lzZnMgYXR0cmli
dXRlcyBmb3IgaHdtb24gKi8KKworc3RhdGljIHNzaXplX3QgYWR0NzQxMF9zaG93X3RlbXAoc3Ry
dWN0IGRldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGEsIGNoYXIg
KmJ1ZikKK3sKKwlzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKmF0dHIgPSB0b19zZW5z
b3JfZGV2X2F0dHIoZGEpOworCXN0cnVjdCBhZHQ3NDEwX2RhdGEgKmRhdGEgPSBhZHQ3NDEwX3Vw
ZGF0ZV9kZXZpY2UoZGV2KTsKKworCWlmIChJU19FUlIoZGF0YSkpCisJCXJldHVybiBQVFJfRVJS
KGRhdGEpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIEFEVDc0MTBfUkVHX1RPX1RF
TVAoZGF0YSwKKwkJICAgICAgIGRhdGEtPnRlbXBbYXR0ci0+aW5kZXhdKSk7Cit9CisKK3N0YXRp
YyBzc2l6ZV90IGFkdDc0MTBfc2V0X3RlbXAoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVj
dCBkZXZpY2VfYXR0cmlidXRlICpkYSwKKwkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3Vu
dCkKK3sKKwlzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKmF0dHIgPSB0b19zZW5zb3Jf
ZGV2X2F0dHIoZGEpOworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50
KGRldik7CisJc3RydWN0IGFkdDc0MTBfZGF0YSAqZGF0YSA9IGkyY19nZXRfY2xpZW50ZGF0YShj
bGllbnQpOworCWludCBuciA9IGF0dHItPmluZGV4OworCWxvbmcgdGVtcDsKKwlpbnQgcmV0Owor
CisJcmV0ID0ga3N0cnRvbChidWYsIDEwLCAmdGVtcCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl
dDsKKworCW11dGV4X2xvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsKKwlkYXRhLT50ZW1wW25yXSA9
IEFEVDc0MTBfVEVNUF9UT19SRUcodGVtcCk7CisJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX3dvcmRf
c3dhcHBlZChjbGllbnQsIEFEVDc0MTBfUkVHX1RFTVBbbnJdLAorCQkJCSAgICAgZGF0YS0+dGVt
cFtucl0pOworCWlmIChyZXQpCisJCWNvdW50ID0gcmV0OworCW11dGV4X3VubG9jaygmZGF0YS0+
dXBkYXRlX2xvY2spOworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QgYWR0NzQx
MF9zaG93X3RfaHlzdChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgc3RydWN0IGRldmljZV9h
dHRyaWJ1dGUgKmRhLAorCQkJCSAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc2Vuc29yX2Rldmlj
ZV9hdHRyaWJ1dGUgKmF0dHIgPSB0b19zZW5zb3JfZGV2X2F0dHIoZGEpOworCXN0cnVjdCBhZHQ3
NDEwX2RhdGEgKmRhdGEgPSBhZHQ3NDEwX3VwZGF0ZV9kZXZpY2UoZGV2KTsKKwlpbnQgbnIgPSBh
dHRyLT5pbmRleDsKKwlpbnQgaHlzdCA9IChkYXRhLT5oeXN0ICYgQURUNzQxMF9UX0hZU1RfTUFT
SykgKiAxMDAwOworCisJLyoKKwkgKiBoeXN0ZXJlc2lzIGlzIHN0b3JlZCBhcyBhIDQgYml0IG9m
ZnNldCBpbiB0aGUgZGV2aWNlLCBjb252ZXJ0IGl0CisJICogdG8gYW4gYWJzb2x1dGUgdmFsdWUK
KwkgKi8KKwlpZiAobnIgPT0gMikJLyogbWluIGhhcyBwb3NpdGl2ZSBvZmZzZXQsIG90aGVycyBo
YXZlIG5lZ2F0aXZlICovCisJCWh5c3QgPSAtaHlzdDsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIl
ZFxuIiwKKwkJICAgICAgIEFEVDc0MTBfUkVHX1RPX1RFTVAoZGF0YSwgZGF0YS0+dGVtcFtucl0p
IC0gaHlzdCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGFkdDc0MTBfc2V0X3RfaHlzdChzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGEsCisJCQkJICBj
b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKK3sKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xp
ZW50ID0gdG9faTJjX2NsaWVudChkZXYpOworCXN0cnVjdCBhZHQ3NDEwX2RhdGEgKmRhdGEgPSBp
MmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlpbnQgbGltaXQsIHJldDsKKwlsb25nIGh5c3Q7
CisKKwlyZXQgPSBrc3RydG9sKGJ1ZiwgMTAsICZoeXN0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4g
cmV0OworCS8qIGNvbnZlcnQgYWJzb2x1dGUgaHlzdGVyZXNpcyB2YWx1ZSB0byBhIDQgYml0IGRl
bHRhIHZhbHVlICovCisJbGltaXQgPSBBRFQ3NDEwX1JFR19UT19URU1QKGRhdGEsIGRhdGEtPnRl
bXBbMV0pOworCWh5c3QgPSBTRU5TT1JTX0xJTUlUKGh5c3QsIEFEVDc0MTBfVEVNUF9NSU4sIEFE
VDc0MTBfVEVNUF9NQVgpOworCWRhdGEtPmh5c3QgPSBTRU5TT1JTX0xJTUlUKERJVl9ST1VORF9D
TE9TRVNUKGxpbWl0IC0gaHlzdCwgMTAwMCksCisJCQkJICAgMCwgQURUNzQxMF9UX0hZU1RfTUFT
Syk7CisJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEFEVDc0MTBfVF9I
WVNULCBkYXRhLT5oeXN0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGNv
dW50OworfQorCitzdGF0aWMgc3NpemVfdCBhZHQ3NDEwX3Nob3dfYWxhcm0oc3RydWN0IGRldmlj
ZSAqZGV2LAorCQkJCSAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRhLAorCQkJCSAgY2hhciAq
YnVmKQoreworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRldik7
CisJc3RydWN0IHNlbnNvcl9kZXZpY2VfYXR0cmlidXRlICphdHRyID0gdG9fc2Vuc29yX2Rldl9h
dHRyKGRhKTsKKwlpbnQgcmV0OworCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNs
aWVudCwgQURUNzQxMF9TVEFUVVMpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJ
cmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsICEhKHJldCAmIGF0dHItPmluZGV4KSk7Cit9CisK
K3N0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFIodGVtcDFfaW5wdXQsIFNfSVJVR08sIGFkdDc0MTBf
c2hvd190ZW1wLCBOVUxMLCAwKTsKK3N0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFIodGVtcDFfbWF4
LCBTX0lXVVNSIHwgU19JUlVHTywKKwkJCSAgYWR0NzQxMF9zaG93X3RlbXAsIGFkdDc0MTBfc2V0
X3RlbXAsIDEpOworc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMV9taW4sIFNfSVdVU1Ig
fCBTX0lSVUdPLAorCQkJICBhZHQ3NDEwX3Nob3dfdGVtcCwgYWR0NzQxMF9zZXRfdGVtcCwgMik7
CitzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX2NyaXQsIFNfSVdVU1IgfCBTX0lSVUdP
LAorCQkJICBhZHQ3NDEwX3Nob3dfdGVtcCwgYWR0NzQxMF9zZXRfdGVtcCwgMyk7CitzdGF0aWMg
U0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX21heF9oeXN0LCBTX0lXVVNSIHwgU19JUlVHTywKKwkJ
CSAgYWR0NzQxMF9zaG93X3RfaHlzdCwgYWR0NzQxMF9zZXRfdF9oeXN0LCAxKTsKK3N0YXRpYyBT
RU5TT1JfREVWSUNFX0FUVFIodGVtcDFfbWluX2h5c3QsIFNfSVJVR08sCisJCQkgIGFkdDc0MTBf
c2hvd190X2h5c3QsIE5VTEwsIDIpOworc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMV9j
cml0X2h5c3QsIFNfSVJVR08sCisJCQkgIGFkdDc0MTBfc2hvd190X2h5c3QsIE5VTEwsIDMpOwor
c3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMV9taW5fYWxhcm0sIFNfSVJVR08sIGFkdDc0
MTBfc2hvd19hbGFybSwKKwkJCSAgICBOVUxMLCBBRFQ3NDEwX1NUQVRfVF9MT1cpOworc3RhdGlj
IFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMV9tYXhfYWxhcm0sIFNfSVJVR08sIGFkdDc0MTBfc2hv
d19hbGFybSwKKwkJCSAgICBOVUxMLCBBRFQ3NDEwX1NUQVRfVF9ISUdIKTsKK3N0YXRpYyBTRU5T
T1JfREVWSUNFX0FUVFIodGVtcDFfY3JpdF9hbGFybSwgU19JUlVHTywgYWR0NzQxMF9zaG93X2Fs
YXJtLAorCQkJICAgIE5VTEwsIEFEVDc0MTBfU1RBVF9UX0NSSVQpOworCitzdGF0aWMgc3RydWN0
IGF0dHJpYnV0ZSAqYWR0NzQxMF9hdHRyaWJ1dGVzW10gPSB7CisJJnNlbnNvcl9kZXZfYXR0cl90
ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLAorCSZzZW5zb3JfZGV2X2F0dHJfdGVtcDFfbWF4LmRl
dl9hdHRyLmF0dHIsCisJJnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9taW4uZGV2X2F0dHIuYXR0ciwK
Kwkmc2Vuc29yX2Rldl9hdHRyX3RlbXAxX2NyaXQuZGV2X2F0dHIuYXR0ciwKKwkmc2Vuc29yX2Rl
dl9hdHRyX3RlbXAxX21heF9oeXN0LmRldl9hdHRyLmF0dHIsCisJJnNlbnNvcl9kZXZfYXR0cl90
ZW1wMV9taW5faHlzdC5kZXZfYXR0ci5hdHRyLAorCSZzZW5zb3JfZGV2X2F0dHJfdGVtcDFfY3Jp
dF9oeXN0LmRldl9hdHRyLmF0dHIsCisJJnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9taW5fYWxhcm0u
ZGV2X2F0dHIuYXR0ciwKKwkmc2Vuc29yX2Rldl9hdHRyX3RlbXAxX21heF9hbGFybS5kZXZfYXR0
ci5hdHRyLAorCSZzZW5zb3JfZGV2X2F0dHJfdGVtcDFfY3JpdF9hbGFybS5kZXZfYXR0ci5hdHRy
LAorCU5VTEwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGFkdDc0
MTBfZ3JvdXAgPSB7CisJLmF0dHJzID0gYWR0NzQxMF9hdHRyaWJ1dGVzLAorfTsKKworLyotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCisKKy8qIGRldmljZSBwcm9iZSBhbmQgcmVtb3ZhbCAqLworCitzdGF0aWMg
aW50IGFkdDc0MTBfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKKwkJCSBjb25zdCBz
dHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCit7CisJc3RydWN0IGFkdDc0MTBfZGF0YSAqZGF0YTsK
KwlpbnQgcmV0OworCisJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGllbnQtPmFkYXB0
ZXIsCisJCQlJMkNfRlVOQ19TTUJVU19CWVRFX0RBVEEgfCBJMkNfRlVOQ19TTUJVU19XT1JEX0RB
VEEpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRhdGEgPSBkZXZtX2t6YWxsb2MoJmNsaWVudC0+
ZGV2LCBzaXplb2Yoc3RydWN0IGFkdDc0MTBfZGF0YSksCisJCQkgICAgR0ZQX0tFUk5FTCk7CisJ
aWYgKCFkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWkyY19zZXRfY2xpZW50ZGF0YShjbGll
bnQsIGRhdGEpOworCW11dGV4X2luaXQoJmRhdGEtPnVwZGF0ZV9sb2NrKTsKKworCS8qIGNvbmZp
Z3VyZSBhcyBzcGVjaWZpZWQgKi8KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xp
ZW50LCBBRFQ3NDEwX0NPTkZJRyk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2RiZygmY2xpZW50
LT5kZXYsICJDYW4ndCByZWFkIGNvbmZpZz8gJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJ
fQorCWRhdGEtPm9sZGNvbmZpZyA9IHJldDsKKwkvKgorCSAqIFNldCB0byAxNiBiaXQgcmVzb2x1
dGlvbiwgY29udGlub3VzIGNvbnZlcnNpb24gYW5kIGNvbXBhcmF0b3IgbW9kZS4KKwkgKi8KKwlk
YXRhLT5jb25maWcgPSByZXQgfCBBRFQ3NDEwX0ZVTEwgfCBBRFQ3NDEwX1JFU09MVVRJT04gfAor
CQkgICAgICAgQURUNzQxMF9FVkVOVF9NT0RFOworCWlmIChkYXRhLT5jb25maWcgIT0gZGF0YS0+
b2xkY29uZmlnKSB7CisJCXJldCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBB
RFQ3NDEwX0NPTkZJRywKKwkJCQkJCWRhdGEtPmNvbmZpZyk7CisJCWlmIChyZXQpCisJCQlyZXR1
cm4gcmV0OworCX0KKwlkZXZfZGJnKCZjbGllbnQtPmRldiwgIkNvbmZpZyAlMDJ4XG4iLCBkYXRh
LT5jb25maWcpOworCisJLyogUmVnaXN0ZXIgc3lzZnMgaG9va3MgKi8KKwlyZXQgPSBzeXNmc19j
cmVhdGVfZ3JvdXAoJmNsaWVudC0+ZGV2LmtvYmosICZhZHQ3NDEwX2dyb3VwKTsKKwlpZiAocmV0
KQorCQlnb3RvIGV4aXRfcmVzdG9yZTsKKworCWRhdGEtPmh3bW9uX2RldiA9IGh3bW9uX2Rldmlj
ZV9yZWdpc3RlcigmY2xpZW50LT5kZXYpOworCWlmIChJU19FUlIoZGF0YS0+aHdtb25fZGV2KSkg
eworCQlyZXQgPSBQVFJfRVJSKGRhdGEtPmh3bW9uX2Rldik7CisJCWdvdG8gZXhpdF9yZW1vdmU7
CisJfQorCisJZGV2X2luZm8oJmNsaWVudC0+ZGV2LCAic2Vuc29yICclcydcbiIsIGNsaWVudC0+
bmFtZSk7CisKKwlyZXR1cm4gMDsKKworZXhpdF9yZW1vdmU6CisJc3lzZnNfcmVtb3ZlX2dyb3Vw
KCZjbGllbnQtPmRldi5rb2JqLCAmYWR0NzQxMF9ncm91cCk7CitleGl0X3Jlc3RvcmU6CisJaTJj
X3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEFEVDc0MTBfQ09ORklHLCBkYXRhLT5vbGRj
b25maWcpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWR0NzQxMF9yZW1vdmUoc3Ry
dWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3QgYWR0NzQxMF9kYXRhICpkYXRhID0g
aTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisKKwlod21vbl9kZXZpY2VfdW5yZWdpc3Rlcihk
YXRhLT5od21vbl9kZXYpOworCXN5c2ZzX3JlbW92ZV9ncm91cCgmY2xpZW50LT5kZXYua29iaiwg
JmFkdDc0MTBfZ3JvdXApOworCWlmIChkYXRhLT5vbGRjb25maWcgIT0gZGF0YS0+Y29uZmlnKQor
CQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgQURUNzQxMF9DT05GSUcsCisJCQkJ
CSAgZGF0YS0+b2xkY29uZmlnKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVj
dCBpMmNfZGV2aWNlX2lkIGFkdDc0MTBfaWRzW10gPSB7CisJeyAiYWR0NzQxMCIsIGFkdDc0MTAs
IH0sCisJeyAvKiBMSVNUIEVORCAqLyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIGFk
dDc0MTBfaWRzKTsKKworI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBhZHQ3NDEwX3N1c3Bl
bmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCWludCByZXQ7CisJc3RydWN0IGkyY19jbGllbnQg
KmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKKwlzdHJ1Y3QgYWR0NzQxMF9kYXRhICpkYXRh
ID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisKKwlyZXQgPSBpMmNfc21idXNfd3JpdGVf
Ynl0ZV9kYXRhKGNsaWVudCwgQURUNzQxMF9DT05GSUcsCisJCQkJCWRhdGEtPmNvbmZpZyB8IEFE
VDc0MTBfUEQpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWR0NzQxMF9yZXN1bWUo
c3RydWN0IGRldmljZSAqZGV2KQoreworCWludCByZXQ7CisJc3RydWN0IGkyY19jbGllbnQgKmNs
aWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKKwlzdHJ1Y3QgYWR0NzQxMF9kYXRhICpkYXRhID0g
aTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisKKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0
ZV9kYXRhKGNsaWVudCwgQURUNzQxMF9DT05GSUcsIGRhdGEtPmNvbmZpZyk7CisJcmV0dXJuIHJl
dDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGFkdDc0MTBfZGV2X3BtX29w
cyA9IHsKKwkuc3VzcGVuZAk9IGFkdDc0MTBfc3VzcGVuZCwKKwkucmVzdW1lCQk9IGFkdDc0MTBf
cmVzdW1lLAorfTsKKyNkZWZpbmUgQURUNzQxMF9ERVZfUE1fT1BTICgmYWR0NzQxMF9kZXZfcG1f
b3BzKQorI2Vsc2UKKyNkZWZpbmUgQURUNzQxMF9ERVZfUE1fT1BTIE5VTEwKKyNlbmRpZiAvKiBD
T05GSUdfUE0gKi8KKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGFkdDc0MTBfZHJpdmVyID0g
eworCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmRyaXZlciA9IHsKKwkJLm5hbWUJPSAi
YWR0NzQxMCIsCisJCS5wbQk9IEFEVDc0MTBfREVWX1BNX09QUywKKwl9LAorCS5wcm9iZQkJPSBh
ZHQ3NDEwX3Byb2JlLAorCS5yZW1vdmUJCT0gYWR0NzQxMF9yZW1vdmUsCisJLmlkX3RhYmxlCT0g
YWR0NzQxMF9pZHMsCisJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9pMmMsCit9OworCittb2R1bGVf
aTJjX2RyaXZlcihhZHQ3NDEwX2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIkhhcnRtdXQgS25h
YWNrIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFEVDc0MTAgZHJpdmVyIik7CitNT0RVTEVfTElD
RU5TRSgiR1BMIik7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpo
dHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz
next reply other threads:[~2012-08-12 16:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-12 16:15 Hartmut Knaack [this message]
2012-08-13 2:30 ` [lm-sensors] [PATCH v4] hwmon: Driver for ADT7410 Guenter Roeck
2012-08-13 21:24 ` Hartmut Knaack
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5027D6B5.4020503@gmx.de \
--to=knaack.h@gmx.de \
--cc=lm-sensors@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.