From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goede, J.W.R. de" Date: Sun, 24 Jun 2007 18:16:50 +0000 Subject: Re: [lm-sensors] Fintek F71882FG Super IO Sensors Message-Id: MIME-Version: 1 Content-Type: multipart/mixed; boundary="_===69662037====hhs.nl===_" List-Id: References: <467eb21b.08b7660a.2790.ffffd4cf@mx.google.com> In-Reply-To: <467eb21b.08b7660a.2790.ffffd4cf@mx.google.com> To: lm-sensors@vger.kernel.org This is a multi-part MIME message --_===69662037====hhs.nl===_ Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit On Sun, 24 Jun 2007 21:04:06 +0300 "Ivo Sabev" wrote: > Hello all, > > > > I just want to express my wish to volantaire for testing > of the driver for > Fintek F71882FG Super IO Sensors. I have Foxconn 975xAA > motherboard and > sensors-detect script reported this chipset to be in my > motherboard > > Well, I just send a version to the list for testing about a week ago, below is a copy of the mail I send: I'm looking forward to the results. Regards, Hans --- Hi all, Here is my first work on a fintek f71882fg driver (also epox 1308). Still todo: in1 max, beep and alarm read and write tempX fault read tempX beep and alarm read and write tempX max / crit / hyst writing fanX fault read pwm support This version should work on non Epox motherboards like MSI too (Thanks Mathias Grimmberger) To test drop fintek71882 and the Makefile in a dir, type make and then insmod fintek71882.ko The easiest way to then read the settings is by using the 3.0 sensors branch, which comes with dyn chipsupport: remove your current lm-sensors userspace package (for example on Fedora do rpm -e lm_sensors --nodeps) svn checkout http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0 cd lm-sensors-3.0.0 make sudo make install sudo ldconfig I've also attached a sensors.conf for the Epox M1697 motherboard I'm using for testing, modify as needed. Thanks for testing & Regards, Hans --_===69662037====hhs.nl===_ Content-Type: application/octet-stream Content-Disposition: attachment; filename="fintek71882.c" Content-Transfer-Encoding: base64 LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgogKiAgIENvcHlyaWdodCAoQykgMjAwNiBieSBIYW5z IEVkZ2luZ3RvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqICAgaGFu c0BlZGdpbmd0b24ubmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICoKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5ICAqCiAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgICoKICogICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAgICAgKgog KiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICogICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgICAgICAgKgogKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgICAgICAqCiAqICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAgICAg ICAgICoKICogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LiAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAq ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgICAgICoKICogICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAgIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCiAqICAgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24s IE1BICAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KCiNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KI2luY2x1ZGUgPGxpbnV4L2luaXQu aD4KI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4K I2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgojaW5jbHVkZSA8bGludXgvaHdt b24uaD4KI2luY2x1ZGUgPGxpbnV4L2h3bW9uLXN5c2ZzLmg+CiNpbmNsdWRlIDxsaW51eC9l cnIuaD4KI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiNpbmNsdWRlIDxhc20vaW8uaD4KCiNk ZWZpbmUgRFJWTkFNRSAiZjcxODgyZmciCgojZGVmaW5lIFNJT19GNzE4ODJGR19MRF9IV00J MHgwNAkvKiBIYXJkd2FyZSBtb25pdG9yIGxvZ2ljYWwgZGV2aWNlKi8KI2RlZmluZSBTSU9f VU5MT0NLX0tFWQkJMHg4NwkvKiBLZXkgdG8gZW5hYmxlIFN1cGVyLUkvTyAqLwojZGVmaW5l IFNJT19MT0NLX0tFWQkJMHhBQQkvKiBLZXkgdG8gZGlhc2JsZSBTdXBlci1JL08gKi8KCiNk ZWZpbmUgU0lPX1JFR19MRFNFTAkJMHgwNwkvKiBMb2dpY2FsIGRldmljZSBzZWxlY3QgKi8K I2RlZmluZSBTSU9fUkVHX0RFVklECQkweDIwCS8qIERldmljZSBJRCAoMiBieXRlcykgKi8K I2RlZmluZSBTSU9fUkVHX0RFVlJFVgkJMHgyMgkvKiBEZXZpY2UgcmV2aXNpb24gKi8KI2Rl ZmluZSBTSU9fUkVHX01BTklECQkweDIzCS8qIEZpbnRlayBJRCAoMiBieXRlcykgKi8KI2Rl ZmluZSBTSU9fUkVHX0VOQUJMRQkJMHgzMAkvKiBMb2dpY2FsIGRldmljZSBlbmFibGUgKi8K I2RlZmluZSBTSU9fUkVHX0FERFIJCTB4NjAJLyogTG9naWNhbCBkZXZpY2UgYWRkcmVzcyAo MiBieXRlcykgKi8KCiNkZWZpbmUgU0lPX0ZJTlRFS19JRAkweDE5MzQgLyogTWFudWZhY3R1 cmVycyBJRCAqLwojZGVmaW5lIFNJT19GNzE4ODJfSUQJMHgwNTQxIC8qIENoaXBzZXQgSUQg Ki8KCiNkZWZpbmUgUkVHSU9OX0xFTkdUSAk4CiNkZWZpbmUgQUREUl9SRUdfT0ZGU0VUCTUK I2RlZmluZSBEQVRBX1JFR19PRkZTRVQJNgoKI2RlZmluZSBGNzE4ODJGR19SRUdfUEVDSQkJ MHgwQQojZGVmaW5lIEY3MTg4MkZHX1JFR19JTihucikJCSgweDIwICArIChucikpCiNkZWZp bmUgRjcxODgyRkdfUkVHX0ZBTihucikJCSgweEEwICsgKDE2ICogKG5yKSkpCiNkZWZpbmUg RjcxODgyRkdfUkVHX1RFTVAobnIpCQkoMHg3MiArIDIgKiAobnIpKQojZGVmaW5lIEY3MTg4 MkZHX1JFR19URU1QX09WVChucikJKDB4ODIgKyAyICogKG5yKSkKI2RlZmluZSBGNzE4ODJG R19SRUdfVEVNUF9ISUdIKG5yKQkoMHg4MyArIDIgKiAobnIpKQojZGVmaW5lIEY3MTg4MkZH X1JFR19URU1QX0hZU1QxCQkweDZDCiNkZWZpbmUgRjcxODgyRkdfUkVHX1RFTVBfSFlTVDIz CTB4NkQKI2RlZmluZSBGNzE4ODJGR19SRUdfVEVNUF9UWVBFCQkweDZCCgojZGVmaW5lCUY3 MTg4MkZHX1JFR19TVEFSVAkJMHgwMQoKI2RlZmluZSBGQU5fTUlOX0RFVEVDVAkzNjYgLyog TG93ZXN0IGRldGVjdGFibGUgZmFuc3BlZWQgKi8KCnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpmNzE4ODJmZ19wZGV2ID0gTlVMTDsKCi8qIFN1cGVyLUkvTyBGdW5jdGlvbiBw cm90b3R5cGVzICovCnN0YXRpYyBpbmxpbmUgaW50IHN1cGVyaW9faW5iKGludCBiYXNlLCBp bnQgcmVnKTsKc3RhdGljIGlubGluZSBpbnQgc3VwZXJpb19pbncoaW50IGJhc2UsIGludCBy ZWcpOwpzdGF0aWMgaW5saW5lIHZvaWQgc3VwZXJpb19lbnRlcihpbnQgYmFzZSk7CnN0YXRp YyBpbmxpbmUgdm9pZCBzdXBlcmlvX3NlbGVjdChpbnQgYmFzZSwgaW50IGxkKTsKc3RhdGlj IGlubGluZSB2b2lkIHN1cGVyaW9fZXhpdChpbnQgYmFzZSk7CgpzdGF0aWMgaW5saW5lIHUx NiBmYW5fZnJvbV9yZWcgKCB1MTYgcmVnICk7CgpzdHJ1Y3QgZjcxODgyZmdfZGF0YSB7Cgl1 bnNpZ25lZCBzaG9ydCBhZGRyOwoJc3RydWN0IGNsYXNzX2RldmljZSAqY2xhc3NfZGV2OwoK CXN0cnVjdCBtdXRleCB1cGRhdGVfbG9jazsKCWNoYXIgdmFsaWQ7CQkJLyogIT0wIGlmIGZv bGxvd2luZyBmaWVsZHMgYXJlIHZhbGlkICovCgl1bnNpZ25lZCBsb25nIGxhc3RfdXBkYXRl ZDsJLyogSW4gamlmZmllcyAqLwoJdW5zaWduZWQgbG9uZyBsYXN0X2xpbWl0czsJLyogSW4g amlmZmllcyAqLwoKCS8qIFJlZ2lzdGVyIFZhbHVlcyAqLwoJdTgJaW5bOV07Cgl1MTYJZmFu WzRdOwoJdTgJdGVtcFszXTsKCXU4CXRlbXBfb3Z0WzNdOwoJdTgJdGVtcF9oaWdoWzNdOwoJ dTgJdGVtcF9oeXN0WzNdOwoJdTgJdGVtcF90eXBlWzNdOwp9OwoKc3RhdGljIHU4IGY3MTg4 MmZnX3JlYWQ4KHN0cnVjdCBmNzE4ODJmZ19kYXRhICpkYXRhLCB1OCByZWcpOwpzdGF0aWMg dTE2IGY3MTg4MmZnX3JlYWQxNihzdHJ1Y3QgZjcxODgyZmdfZGF0YSAqZGF0YSwgdTggcmVn KTsKc3RhdGljIHZvaWQgZjcxODgyZmdfd3JpdGU4KHN0cnVjdCBmNzE4ODJmZ19kYXRhICpk YXRhLCB1OCByZWcsIHU4IHZhbCk7CgovKiBTeXNmcyBpbiovCnN0YXRpYyBzc2l6ZV90IHNo b3dfaW4gKCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpk ZXZhdHRyLCBjaGFyICpidWYgKTsKLyogU3lzZnMgRmFuICovCnN0YXRpYyBzc2l6ZV90IHNo b3dfZmFuICggc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq ZGV2YXR0ciwgY2hhciAqYnVmICk7Ci8qIFN5c2ZzIFRlbXAgKi8Kc3RhdGljIHNzaXplX3Qg c2hvd190ZW1wICggc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqZGV2YXR0ciwgY2hhciAqYnVmICk7CnN0YXRpYyBzc2l6ZV90IHNob3dfdGVtcF9tYXgg KCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRy LCBjaGFyICpidWYgKTsKc3RhdGljIHNzaXplX3Qgc2hvd190ZW1wX2NyaXQgKCBzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLCBjaGFyICpi dWYgKTsKc3RhdGljIHNzaXplX3Qgc2hvd190ZW1wX2h5c3QgKCBzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLCBjaGFyICpidWYgKTsKc3Rh dGljIHNzaXplX3Qgc2hvd190ZW1wX3R5cGUgKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsIGNoYXIgKmJ1ZiApOwoKc3RhdGljIHNzaXpl X3Qgc2hvd19uYW1lKCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICpkZXZhdHRyLCBjaGFyICpidWYgKTsKCnN0YXRpYyBpbnQgX19kZXZpbml0IGY3MTg4 MmZnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKiBwZGV2KTsKc3RhdGljIGludCBf X2RldmV4aXQgZjcxODgyZmdfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp OwpzdGF0aWMgaW50IF9faW5pdCBmNzE4ODJmZ19pbml0KHZvaWQpOwpzdGF0aWMgaW50IF9f aW5pdCBmNzE4ODJmZ19maW5kKGludCBzaW9hZGRyLCB1bnNpZ25lZCBzaG9ydCAqYWRkcmVz cyk7CnN0YXRpYyBpbnQgX19pbml0IGY3MTg4MmZnX2RldmljZV9hZGQodW5zaWduZWQgc2hv cnQgYWRkcmVzcyk7CnN0YXRpYyB2b2lkIF9fZXhpdCBmNzE4ODJmZ19leGl0KHZvaWQpOwoK c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZjcxODgyZmdfZHJpdmVyID0gewoJLmRy aXZlciA9IHsKCQkub3duZXIJPSBUSElTX01PRFVMRSwKCQkubmFtZQk9IERSVk5BTUUsCgl9 LAoJLnByb2JlCQk9IGY3MTg4MmZnX3Byb2JlLAoJLnJlbW92ZQkJPSBfX2RldmV4aXRfcChm NzE4ODJmZ19yZW1vdmUpLAp9OwoKc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGY3 MTg4MmZnX2Rldl9hdHRyW10gPQp7CglfX0FUVFIoIG5hbWUsIFNfSVJVR08sIHNob3dfbmFt ZSwgTlVMTCApLAp9OwoKc3RhdGljIHN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSBm NzE4ODJmZ19pbl90ZW1wX2F0dHJbXSA9CnsKCVNFTlNPUl9BVFRSKGluMF9pbnB1dCwgU19J UlVHTywgc2hvd19pbiwgTlVMTCwgMCksCglTRU5TT1JfQVRUUihpbjFfaW5wdXQsIFNfSVJV R08sIHNob3dfaW4sIE5VTEwsIDEpLAoJU0VOU09SX0FUVFIoaW4yX2lucHV0LCBTX0lSVUdP LCBzaG93X2luLCBOVUxMLCAyKSwKCVNFTlNPUl9BVFRSKGluM19pbnB1dCwgU19JUlVHTywg c2hvd19pbiwgTlVMTCwgMyksCglTRU5TT1JfQVRUUihpbjRfaW5wdXQsIFNfSVJVR08sIHNo b3dfaW4sIE5VTEwsIDQpLAoJU0VOU09SX0FUVFIoaW41X2lucHV0LCBTX0lSVUdPLCBzaG93 X2luLCBOVUxMLCA1KSwKCVNFTlNPUl9BVFRSKGluNl9pbnB1dCwgU19JUlVHTywgc2hvd19p biwgTlVMTCwgNiksCglTRU5TT1JfQVRUUihpbjdfaW5wdXQsIFNfSVJVR08sIHNob3dfaW4s IE5VTEwsIDcpLAoJU0VOU09SX0FUVFIoaW44X2lucHV0LCBTX0lSVUdPLCBzaG93X2luLCBO VUxMLCA4KSwKCVNFTlNPUl9BVFRSKHRlbXAxX2lucHV0LCBTX0lSVUdPLCBzaG93X3RlbXAs IE5VTEwsIDApLAoJU0VOU09SX0FUVFIodGVtcDFfbWF4LCBTX0lSVUdPLCBzaG93X3RlbXBf bWF4LCBOVUxMLCAwKSwKCVNFTlNPUl9BVFRSKHRlbXAxX21heF9oeXN0LCBTX0lSVUdPLCBz aG93X3RlbXBfaHlzdCwgTlVMTCwgMCksCglTRU5TT1JfQVRUUih0ZW1wMV9jcml0LCBTX0lS VUdPLCBzaG93X3RlbXBfY3JpdCwgTlVMTCwgMCksCglTRU5TT1JfQVRUUih0ZW1wMV9jcml0 X2h5c3QsIFNfSVJVR08sIHNob3dfdGVtcF9oeXN0LCBOVUxMLCAwKSwKCVNFTlNPUl9BVFRS KHRlbXAxX3R5cGUsIFNfSVJVR08sIHNob3dfdGVtcF90eXBlLCBOVUxMLCAwKSwKCVNFTlNP Ul9BVFRSKHRlbXAyX2lucHV0LCBTX0lSVUdPLCBzaG93X3RlbXAsIE5VTEwsIDEpLAoJU0VO U09SX0FUVFIodGVtcDJfbWF4LCBTX0lSVUdPLCBzaG93X3RlbXBfbWF4LCBOVUxMLCAxKSwK CVNFTlNPUl9BVFRSKHRlbXAyX21heF9oeXN0LCBTX0lSVUdPLCBzaG93X3RlbXBfaHlzdCwg TlVMTCwgMSksCglTRU5TT1JfQVRUUih0ZW1wMl9jcml0LCBTX0lSVUdPLCBzaG93X3RlbXBf Y3JpdCwgTlVMTCwgMSksCglTRU5TT1JfQVRUUih0ZW1wMl9jcml0X2h5c3QsIFNfSVJVR08s IHNob3dfdGVtcF9oeXN0LCBOVUxMLCAxKSwKCVNFTlNPUl9BVFRSKHRlbXAyX3R5cGUsIFNf SVJVR08sIHNob3dfdGVtcF90eXBlLCBOVUxMLCAxKSwKCVNFTlNPUl9BVFRSKHRlbXAzX2lu cHV0LCBTX0lSVUdPLCBzaG93X3RlbXAsIE5VTEwsIDIpLAoJU0VOU09SX0FUVFIodGVtcDNf bWF4LCBTX0lSVUdPLCBzaG93X3RlbXBfbWF4LCBOVUxMLCAyKSwKCVNFTlNPUl9BVFRSKHRl bXAzX21heF9oeXN0LCBTX0lSVUdPLCBzaG93X3RlbXBfaHlzdCwgTlVMTCwgMiksCglTRU5T T1JfQVRUUih0ZW1wM19jcml0LCBTX0lSVUdPLCBzaG93X3RlbXBfY3JpdCwgTlVMTCwgMiks CglTRU5TT1JfQVRUUih0ZW1wM19jcml0X2h5c3QsIFNfSVJVR08sIHNob3dfdGVtcF9oeXN0 LCBOVUxMLCAyKSwKCVNFTlNPUl9BVFRSKHRlbXAzX3R5cGUsIFNfSVJVR08sIHNob3dfdGVt cF90eXBlLCBOVUxMLCAyKQp9OwoKc3RhdGljIHN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJp YnV0ZSBmNzE4ODJmZ19mYW5fYXR0cltdID0KewoJU0VOU09SX0FUVFIoZmFuMV9pbnB1dCwg U19JUlVHTywgc2hvd19mYW4sIE5VTEwsIDAgKSwKCVNFTlNPUl9BVFRSKGZhbjJfaW5wdXQs IFNfSVJVR08sIHNob3dfZmFuLCBOVUxMLCAxICksCglTRU5TT1JfQVRUUihmYW4zX2lucHV0 LCBTX0lSVUdPLCBzaG93X2ZhbiwgTlVMTCwgMiApLAoJU0VOU09SX0FUVFIoZmFuNF9pbnB1 dCwgU19JUlVHTywgc2hvd19mYW4sIE5VTEwsIDMgKQp9OwoKCi8qIFN1cGVyIEkvTyBmdW5j dGlvbnMgKi8Kc3RhdGljIGlubGluZSBpbnQgc3VwZXJpb19pbmIoaW50IGJhc2UsIGludCBy ZWcpCnsKCW91dGIocmVnLCBiYXNlKTsKCXJldHVybiBpbmIoYmFzZSArIDEpOwp9CgpzdGF0 aWMgaW50IHN1cGVyaW9faW53KGludCBiYXNlLCBpbnQgcmVnKQp7CglpbnQgdmFsOwoJb3V0 YihyZWcrKywgYmFzZSk7Cgl2YWwgPSBpbmIoYmFzZSArIDEpIDw8IDg7CglvdXRiKHJlZywg YmFzZSk7Cgl2YWwgfD0gaW5iKGJhc2UgKyAxKTsKCXJldHVybiB2YWw7Cn0KCnN0YXRpYyBp bmxpbmUgdm9pZCBzdXBlcmlvX2VudGVyKGludCBiYXNlKQp7CglvdXRiKCBTSU9fVU5MT0NL X0tFWSwgYmFzZSk7CglvdXRiKCBTSU9fVU5MT0NLX0tFWSwgYmFzZSk7Cn0KCnN0YXRpYyBp bmxpbmUgdm9pZCBzdXBlcmlvX3NlbGVjdCggaW50IGJhc2UsIGludCBsZCkKewoJb3V0YihT SU9fUkVHX0xEU0VMLCBiYXNlKTsKCW91dGIobGQsIGJhc2UgKyAxKTsKfQoKc3RhdGljIGlu bGluZSB2b2lkIHN1cGVyaW9fZXhpdChpbnQgYmFzZSkKewoJb3V0YihTSU9fTE9DS19LRVks IGJhc2UpOwp9CgpzdGF0aWMgaW5saW5lIHUxNiBmYW5fZnJvbV9yZWcgKCB1MTYgcmVnICkK ewoJcmV0dXJuICggMTUwMDAwMCAvIHJlZyApOwp9CgpzdGF0aWMgdTggZjcxODgyZmdfcmVh ZDgoc3RydWN0IGY3MTg4MmZnX2RhdGEgKmRhdGEsIHU4IHJlZykKewoJdTggdmFsOwoKCW91 dGIocmVnLCBkYXRhLT5hZGRyICsgQUREUl9SRUdfT0ZGU0VUKTsKCXZhbCA9IGluYihkYXRh LT5hZGRyICsgREFUQV9SRUdfT0ZGU0VUKTsKCglyZXR1cm4gdmFsOwp9CgpzdGF0aWMgdTE2 IGY3MTg4MmZnX3JlYWQxNihzdHJ1Y3QgZjcxODgyZmdfZGF0YSAqZGF0YSwgdTggcmVnKQp7 Cgl1MTYgdmFsOwoKCW91dGIocmVnLCBkYXRhLT5hZGRyICsgQUREUl9SRUdfT0ZGU0VUKTsK CXZhbCA9IGluYihkYXRhLT5hZGRyICsgREFUQV9SRUdfT0ZGU0VUKSA8PCA4OwoJb3V0Yigr K3JlZywgZGF0YS0+YWRkciArIEFERFJfUkVHX09GRlNFVCk7Cgl2YWwgfD0gaW5iKGRhdGEt PmFkZHIgKyBEQVRBX1JFR19PRkZTRVQpOwoKCXJldHVybiB2YWw7Cn0KCnN0YXRpYyB2b2lk IGY3MTg4MmZnX3dyaXRlOChzdHJ1Y3QgZjcxODgyZmdfZGF0YSAqZGF0YSwgdTggcmVnLCB1 OCB2YWwpCnsKCW91dGIocmVnLCBkYXRhLT5hZGRyICsgQUREUl9SRUdfT0ZGU0VUICk7Cglv dXRiKHZhbCwgZGF0YS0+YWRkciArIERBVEFfUkVHX09GRlNFVCApOwkKfQoKc3RhdGljIHN0 cnVjdCBmNzE4ODJmZ19kYXRhICpmNzE4ODJmZ191cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZp Y2UgKiBkZXYpCnsKCXN0cnVjdCBmNzE4ODJmZ19kYXRhICpkYXRhID0gZGV2X2dldF9kcnZk YXRhKGRldik7CglpbnQgbnIsIHJlZywgcmVnMjsKCgltdXRleF9sb2NrKCZkYXRhLT51cGRh dGVfbG9jayk7CgkKCS8qIFVwZGF0ZSBvbmNlIGV2ZXJ5IDYwIHNlY29uZHMgKi8KCWlmICgg dGltZV9hZnRlcihqaWZmaWVzLCBkYXRhLT5sYXN0X3VwZGF0ZWQgKyA2MCAqIEhaICkgfHwK CQkJIWRhdGEtPnZhbGlkKSB7CgkJLyogR2V0IEhpZ2ggJiBib3VuZGFyeSB0ZW1wcyovCgkJ Zm9yIChuciA9IDA7IG5yIDwgMzsgbnIrKykgewoJCQlkYXRhLT50ZW1wX292dFtucl0gPSBm NzE4ODJmZ19yZWFkOChkYXRhLAoJCQkJCQlGNzE4ODJGR19SRUdfVEVNUF9PVlQobnIpKTsK CQkJZGF0YS0+dGVtcF9oaWdoW25yXSA9IGY3MTg4MmZnX3JlYWQ4KGRhdGEsCgkJCQkJCUY3 MTg4MkZHX1JFR19URU1QX0hJR0gobnIpKTsKCQl9CgoJCS8qIEhhdmUgdG8gaGFyZGNvZGUg aHlzdCovCgkJZGF0YS0+dGVtcF9oeXN0WzBdID0gZjcxODgyZmdfcmVhZDgoZGF0YSwKCQkJ CQkJRjcxODgyRkdfUkVHX1RFTVBfSFlTVDEpID4+IDQ7CgkJLyogSHlzdCB0ZW1wcyAyICYg MyBzdG9yZWQgaW4gc2FtZSByZWdpc3RlciAqLwoJCXJlZyA9IGY3MTg4MmZnX3JlYWQ4KGRh dGEsIEY3MTg4MkZHX1JFR19URU1QX0hZU1QyMyk7CgkJZGF0YS0+dGVtcF9oeXN0WzFdID0g cmVnICYgMHgwRjsKCQlkYXRhLT50ZW1wX2h5c3RbMl0gPSByZWcgPj4gNDsKCgkJLyogSGF2 ZSB0byBoYXJkY29kZSB0eXBlLCBiZWNhdXNlIHRlbXAxIGlzIHNwZWNpYWwgKi8KCQlyZWcg ID0gZjcxODgyZmdfcmVhZDgoZGF0YSwgRjcxODgyRkdfUkVHX1RFTVBfVFlQRSk7CgkJcmVn MiA9IGY3MTg4MmZnX3JlYWQ4KGRhdGEsIEY3MTg4MkZHX1JFR19QRUNJKTsKCQlpZiAoKHJl ZzIgJiAweDAzKSA9PSAweDAxKSAKCQkJZGF0YS0+dGVtcF90eXBlWzBdID0gNiAvKiBQRUNJ ICovOwoJCWVsc2UgaWYgKChyZWcyICYgMHgwMykgPT0gMHgwMikKCQkJZGF0YS0+dGVtcF90 eXBlWzBdID0gNSAvKiBBTURTSSAqLzsKCQllbHNlCgkJCWRhdGEtPnRlbXBfdHlwZVswXSA9 IChyZWcgJiAweDAyKSA/IDIgOiA0OwoJCQoJCWRhdGEtPnRlbXBfdHlwZVsxXSA9IChyZWcg JiAweDA0KSA/IDIgOiA0OwoJCWRhdGEtPnRlbXBfdHlwZVsyXSA9IChyZWcgJiAweDA4KSA/ IDIgOiA0OwoKCQlkYXRhLT5sYXN0X2xpbWl0cyA9IGppZmZpZXM7Cgl9CgkKCS8qIFVwZGF0 ZSBldmVyeSBzZWNvbmQgKi8KCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGRhdGEtPmxhc3Rf dXBkYXRlZCArIEhaKSB8fCAhZGF0YS0+dmFsaWQpICB7CgkJZm9yIChuciA9IDA7IG5yIDwg MzsgbnIrKykKCQkJZGF0YS0+dGVtcFtucl0gPSBmNzE4ODJmZ19yZWFkOChkYXRhLAoJCQkJ CQlGNzE4ODJGR19SRUdfVEVNUChucikpOwoKCQlmb3IgKG5yID0gMDsgbnIgPCA0OyBucisr KQoJCQlkYXRhLT5mYW5bbnJdID0gZjcxODgyZmdfcmVhZDE2KGRhdGEsCgkJCQkJCUY3MTg4 MkZHX1JFR19GQU4obnIpKTsKCgkJZm9yIChuciA9IDA7IG5yIDwgOTsgbnIrKykKCQkJZGF0 YS0+aW5bbnJdID0gZjcxODgyZmdfcmVhZDgoZGF0YSwKCQkJCQkJRjcxODgyRkdfUkVHX0lO KG5yKSk7CgoJCWRhdGEtPmxhc3RfdXBkYXRlZCA9IGppZmZpZXM7CgkJZGF0YS0+dmFsaWQg PSAxOwoJfQoKCW11dGV4X3VubG9jaygmZGF0YS0+dXBkYXRlX2xvY2spOwoKCXJldHVybiBk YXRhOwp9CgovKiBTeXNmcyBJbnRlcmZhY2UgKi8Kc3RhdGljIHNzaXplX3Qgc2hvd19mYW4g KCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRy LCBjaGFyICpidWYgKQp7CglzdHJ1Y3QgZjcxODgyZmdfZGF0YSAqZGF0YSA9IGY3MTg4MmZn X3VwZGF0ZV9kZXZpY2UoIGRldiApOwoJc3RydWN0IHNlbnNvcl9kZXZpY2VfYXR0cmlidXRl ICogYXR0ciA9IHRvX3NlbnNvcl9kZXZfYXR0ciggZGV2YXR0ciApOwoJaW50IG5yID0gYXR0 ci0+aW5kZXg7CgoJcmV0dXJuIHNwcmludGYoIGJ1ZiwgIiVkXG4iLCBmYW5fZnJvbV9yZWco IGRhdGEtPmZhbltucl0gKSk7Cn0KCnN0YXRpYyBzc2l6ZV90IHNob3dfaW4gKCBzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLCBjaGFyICpi dWYgKQp7CglzdHJ1Y3QgZjcxODgyZmdfZGF0YSAqZGF0YSA9IGY3MTg4MmZnX3VwZGF0ZV9k ZXZpY2UoIGRldiApOwoJc3RydWN0IHNlbnNvcl9kZXZpY2VfYXR0cmlidXRlICogYXR0ciA9 IHRvX3NlbnNvcl9kZXZfYXR0ciggZGV2YXR0ciApOwoJaW50IG5yID0gYXR0ci0+aW5kZXg7 CgoJcmV0dXJuIHNwcmludGYoIGJ1ZiwgIiVkXG4iLCBkYXRhLT5pbltucl0gKiA4KTsKfQoK c3RhdGljIHNzaXplX3Qgc2hvd190ZW1wICggc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqZGV2YXR0ciwgY2hhciAqYnVmICkKewoJc3RydWN0IGY3MTg4 MmZnX2RhdGEgKmRhdGEgPSBmNzE4ODJmZ191cGRhdGVfZGV2aWNlKCBkZXYgKTsKCXN0cnVj dCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAqIGF0dHIgPSB0b19zZW5zb3JfZGV2X2F0dHIo IGRldmF0dHIgKTsKCWludCBuciA9IGF0dHItPmluZGV4OwoKCXJldHVybiBzcHJpbnRmKCBi dWYsICIlZFxuIiwgZGF0YS0+dGVtcFtucl0gKiAxMDAwKTsKfQoKc3RhdGljIHNzaXplX3Qg c2hvd190ZW1wX21heCAoIHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmRldmF0dHIsIGNoYXIgKmJ1ZiApCnsKCXN0cnVjdCBmNzE4ODJmZ19kYXRhICpk YXRhID0gZjcxODgyZmdfdXBkYXRlX2RldmljZSggZGV2ICk7CglzdHJ1Y3Qgc2Vuc29yX2Rl dmljZV9hdHRyaWJ1dGUgKiBhdHRyID0gdG9fc2Vuc29yX2Rldl9hdHRyKCBkZXZhdHRyICk7 CglpbnQgbnIgPSBhdHRyLT5pbmRleDsKCglyZXR1cm4gc3ByaW50ZiggYnVmLCAiJWRcbiIs IGRhdGEtPnRlbXBfaGlnaFtucl0gKiAxMDAwKTsKfQoKc3RhdGljIHNzaXplX3Qgc2hvd190 ZW1wX2NyaXQgKCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICpkZXZhdHRyLCBjaGFyICpidWYgKQp7CglzdHJ1Y3QgZjcxODgyZmdfZGF0YSAqZGF0YSA9 IGY3MTg4MmZnX3VwZGF0ZV9kZXZpY2UoIGRldiApOwoJc3RydWN0IHNlbnNvcl9kZXZpY2Vf YXR0cmlidXRlICogYXR0ciA9IHRvX3NlbnNvcl9kZXZfYXR0ciggZGV2YXR0ciApOwoJaW50 IG5yID0gYXR0ci0+aW5kZXg7CgoJcmV0dXJuIHNwcmludGYoIGJ1ZiwgIiVkXG4iLCBkYXRh LT50ZW1wX292dFtucl0gKiAxMDAwKTsKfQoKc3RhdGljIHNzaXplX3Qgc2hvd190ZW1wX2h5 c3QgKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0 dHIsIGNoYXIgKmJ1ZiApCnsKCXN0cnVjdCBmNzE4ODJmZ19kYXRhICpkYXRhID0gZjcxODgy ZmdfdXBkYXRlX2RldmljZSggZGV2ICk7CglzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1 dGUgKiBhdHRyID0gdG9fc2Vuc29yX2Rldl9hdHRyKCBkZXZhdHRyICk7CglpbnQgbnIgPSBh dHRyLT5pbmRleDsKCglyZXR1cm4gc3ByaW50ZiggYnVmLCAiJWRcbiIsIChkYXRhLT50ZW1w X2h5c3RbbnJdICogMTAwMCkpOwp9CgpzdGF0aWMgc3NpemVfdCBzaG93X3RlbXBfdHlwZSAo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGV2YXR0ciwg Y2hhciAqYnVmICkKewoJc3RydWN0IGY3MTg4MmZnX2RhdGEgKmRhdGEgPSBmNzE4ODJmZ191 cGRhdGVfZGV2aWNlKCBkZXYgKTsKCXN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAq IGF0dHIgPSB0b19zZW5zb3JfZGV2X2F0dHIoIGRldmF0dHIgKTsKCWludCBuciA9IGF0dHIt PmluZGV4OwoKCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBkYXRhLT50ZW1wX3R5cGVb bnJdKTsKfQoKc3RhdGljIHNzaXplX3Qgc2hvd19uYW1lKCBzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLCBjaGFyICpidWYgKQp7CglyZXR1 cm4gc3ByaW50ZiggYnVmLCBEUlZOQU1FICJcbiIpOwp9CgoKc3RhdGljIGludCBfX2Rldmlu aXQgZjcxODgyZmdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqIHBkZXYpCnsKCXN0 cnVjdCBmNzE4ODJmZ19kYXRhICpkYXRhOwoJaW50IGVyciwgaTsKCXU4IHN0YXJ0X3JlZzsK CglpZighKGRhdGEgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZjcxODgyZmdfZGF0YSksIEdG UF9LRVJORUwpKSkKCQlyZXR1cm4gLUVOT01FTTsKCglkYXRhLT5hZGRyID0gcGxhdGZvcm1f Z2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfSU8sIDApLT5zdGFydDsKCW11dGV4X2lu aXQoJmRhdGEtPnVwZGF0ZV9sb2NrKTsKCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRh dGEpOwoKCS8qIFJlZ2lzdGVyIHN5c2ZzIGludGVyZmFjZSBmaWxlcyAqLwoJZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUoZjcxODgyZmdfZGV2X2F0dHIpOyBpKyspIHsKCQllcnIgPSBk ZXZpY2VfY3JlYXRlX2ZpbGUoJnBkZXYtPmRldiwgJmY3MTg4MmZnX2Rldl9hdHRyW2ldKTsK CQlpZiAoZXJyKQoJCQlnb3RvIGV4aXRfdW5yZWdpc3Rlcl9zeXNmczsKCX0KCQoJc3RhcnRf cmVnID0gZjcxODgyZmdfcmVhZDgoZGF0YSwgRjcxODgyRkdfUkVHX1NUQVJUKTsKCWlmIChz dGFydF9yZWcgJiAweDAxKSB7CgkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZjcxODgy ZmdfaW5fdGVtcF9hdHRyKTsgaSsrKSB7CgkJCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZSgm cGRldi0+ZGV2LAoJCQkJCSZmNzE4ODJmZ19pbl90ZW1wX2F0dHJbaV0uZGV2X2F0dHIpOwoJ CQlpZiAoZXJyKQoJCQkJZ290byBleGl0X3VucmVnaXN0ZXJfc3lzZnM7CgkJfQoJfQoKCWlm IChzdGFydF9yZWcgJiAweDAyKSB7CgkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZjcx ODgyZmdfZmFuX2F0dHIpOyBpKyspIHsKCQkJZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZw ZGV2LT5kZXYsCgkJCQkJJmY3MTg4MmZnX2Zhbl9hdHRyW2ldLmRldl9hdHRyKTsKCQkJaWYg KGVycikKCQkJCWdvdG8gZXhpdF91bnJlZ2lzdGVyX3N5c2ZzOwoJCX0KCX0KCQoJZGF0YS0+ Y2xhc3NfZGV2ID0gaHdtb25fZGV2aWNlX3JlZ2lzdGVyKCZwZGV2LT5kZXYpOwoJaWYgKElT X0VSUihkYXRhLT5jbGFzc19kZXYpKSB7CgkJZXJyID0gUFRSX0VSUihkYXRhLT5jbGFzc19k ZXYpOwoJCWdvdG8gZXhpdF91bnJlZ2lzdGVyX3N5c2ZzOwoJfQoKCXJldHVybiAwOwoKZXhp dF91bnJlZ2lzdGVyX3N5c2ZzOgoJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZjcxODgy ZmdfZGV2X2F0dHIpOyBpKyspCgkJZGV2aWNlX3JlbW92ZV9maWxlKCZwZGV2LT5kZXYsICZm NzE4ODJmZ19kZXZfYXR0cltpXSk7CgkKCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGY3 MTg4MmZnX2luX3RlbXBfYXR0cik7IGkrKykKCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoJnBkZXYt PmRldiwKCQkJCQkmZjcxODgyZmdfaW5fdGVtcF9hdHRyW2ldLmRldl9hdHRyKTsKCQoJZm9y IChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZjcxODgyZmdfZmFuX2F0dHIpOyBpKyspCgkJZGV2 aWNlX3JlbW92ZV9maWxlKCZwZGV2LT5kZXYsICZmNzE4ODJmZ19mYW5fYXR0cltpXS5kZXZf YXR0cik7CgoJa2ZyZWUoZGF0YSk7CgoJcmV0dXJuIGVycjsKfQoKc3RhdGljIGludCBfX2Rl dmV4aXQgZjcxODgyZmdfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCnsK CWludCBpOwoJc3RydWN0IGY3MTg4MmZnX2RhdGEgKmRhdGEgPSBwbGF0Zm9ybV9nZXRfZHJ2 ZGF0YShwZGV2KTsKCglwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKCWh3bW9u X2RldmljZV91bnJlZ2lzdGVyKGRhdGEtPmNsYXNzX2Rldik7CgoJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoZjcxODgyZmdfZGV2X2F0dHIpOyBpKyspCgkJZGV2aWNlX3JlbW92ZV9m aWxlKCZwZGV2LT5kZXYsICZmNzE4ODJmZ19kZXZfYXR0cltpXSk7CgkKCWZvciAoaSA9IDA7 IGkgPCBBUlJBWV9TSVpFKGY3MTg4MmZnX2luX3RlbXBfYXR0cik7IGkrKykKCQlkZXZpY2Vf cmVtb3ZlX2ZpbGUoJnBkZXYtPmRldiwKCQkJCQkmZjcxODgyZmdfaW5fdGVtcF9hdHRyW2ld LmRldl9hdHRyKTsKCQoJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZjcxODgyZmdfZmFu X2F0dHIpOyBpKyspCgkJZGV2aWNlX3JlbW92ZV9maWxlKCZwZGV2LT5kZXYsICZmNzE4ODJm Z19mYW5fYXR0cltpXS5kZXZfYXR0cik7CgoJa2ZyZWUoZGF0YSk7CgoJcmV0dXJuIDA7Cn0K CnN0YXRpYyBpbnQgX19pbml0IGY3MTg4MmZnX2ZpbmQoaW50IHNpb2FkZHIsIHVuc2lnbmVk IHNob3J0ICphZGRyZXNzKQp7CglpbnQgZXJyID0gLUVOT0RFVjsKCXUxNiBkZXZpZDsKCXU4 IHN0YXJ0X3JlZzsKCXN0cnVjdCBmNzE4ODJmZ19kYXRhIGRhdGE7CgoJc3VwZXJpb19lbnRl cihzaW9hZGRyKTsKCQoJZGV2aWQgPSBzdXBlcmlvX2ludyhzaW9hZGRyLCBTSU9fUkVHX01B TklEKTsKCWlmIChkZXZpZCAhPSBTSU9fRklOVEVLX0lEKSB7CgkJcHJpbnRrKEtFUk5fSU5G TyBEUlZOQU1FICI6IE5vdCBhIEZpbnRlayBkZXZpY2VcbiIpOwoJCWdvdG8gZXhpdDsKCX0K CglkZXZpZCA9IHN1cGVyaW9faW53KHNpb2FkZHIsIFNJT19SRUdfREVWSUQpOwoJaWYgKGRl dmlkICE9IFNJT19GNzE4ODJfSUQpIHsKCQlwcmludGsoS0VSTl9JTkZPIERSVk5BTUUgIjog VW5zdXBwb3J0ZWQgRmludGVrIGRldmljZVxuIik7CgkJZ290byBleGl0OwoJfQoKCXN1cGVy aW9fc2VsZWN0KHNpb2FkZHIsIFNJT19GNzE4ODJGR19MRF9IV00pOwoJaWYgKCEoc3VwZXJp b19pbmIoc2lvYWRkciwgU0lPX1JFR19FTkFCTEUpICYgMHgwMSkpICB7CgkJcHJpbnRrKEtF Uk5fV0FSTklORyBEUlZOQU1FICI6IERldmljZSBub3QgYWN0aXZhdGVkXG4iKTsKCQlnb3Rv IGV4aXQ7Cgl9CgoJKmFkZHJlc3MgPSBzdXBlcmlvX2ludyhzaW9hZGRyLCBTSU9fUkVHX0FE RFIpOwoJaWYgKCphZGRyZXNzID09IDApIAoJewoJCXByaW50ayhLRVJOX1dBUk5JTkcgRFJW TkFNRSAiOiBCYXNlIGFkZHJlc3Mgbm90IHNldFxuIik7CgkJZ290byBleGl0OwoJfQoJKmFk ZHJlc3MgJj0gfihSRUdJT05fTEVOR1RIIC0gMSk7CS8qIElnbm9yZSAzIExTQiAqLwoJCglk YXRhLmFkZHIgPSAqYWRkcmVzczsKCXN0YXJ0X3JlZyA9IGY3MTg4MmZnX3JlYWQ4KCZkYXRh LCBGNzE4ODJGR19SRUdfU1RBUlQpOwoJaWYgKCEoc3RhcnRfcmVnICYgMHgwMykpIHsKCQlw cmludGsoS0VSTl9XQVJOSU5HIERSVk5BTUUKCQkJIjogSGFyZHdhcmUgbW9uaXRvcmluZyBu b3QgYWN0aXZhdGVkXG4iKTsKCQlnb3RvIGV4aXQ7Cgl9CgoJZXJyID0gMDsKCXByaW50ayhL RVJOX0lORk8gRFJWTkFNRSAiOiBGb3VuZCBGNzE4ODJGRyBjaGlwIGF0ICUjeCwgcmV2aXNp b24gJWRcbiIsCgkJKHVuc2lnbmVkIGludCkqYWRkcmVzcywKCQkoaW50KXN1cGVyaW9faW5i KHNpb2FkZHIsIFNJT19SRUdfREVWUkVWKSk7CmV4aXQ6CglzdXBlcmlvX2V4aXQoc2lvYWRk cik7CglyZXR1cm4gZXJyOwp9CgpzdGF0aWMgaW50IF9faW5pdCBmNzE4ODJmZ19kZXZpY2Vf YWRkKHVuc2lnbmVkIHNob3J0IGFkZHJlc3MpCnsKCXN0cnVjdCByZXNvdXJjZSByZXMgPSB7 CgkJLnN0YXJ0CT0gYWRkcmVzcywKCQkuZW5kCT0gYWRkcmVzcyArIFJFR0lPTl9MRU5HVEgg LSAxLAoJCS5mbGFncwk9IElPUkVTT1VSQ0VfSU8sCgl9OwoJaW50IGVycjsKCglmNzE4ODJm Z19wZGV2ID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKERSVk5BTUUsIGFkZHJlc3MpOwoJaWYo IWY3MTg4MmZnX3BkZXYpCgkJcmV0dXJuIC1FTk9NRU07CgoJcmVzLm5hbWUgPSBmNzE4ODJm Z19wZGV2LT5uYW1lOwoJZXJyID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMoZjcx ODgyZmdfcGRldiwgJnJlcywgMSk7CglpZihlcnIpIHsKCQlwcmludGsoS0VSTl9FUlIgRFJW TkFNRSAiOiBEZXZpY2UgcmVzb3VyY2UgYWRkaXRpb24gZmFpbGVkXG4iKTsKCQlnb3RvIGV4 aXRfZGV2aWNlX3B1dDsKCX0KCgllcnIgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKGY3MTg4MmZn X3BkZXYpOwoJaWYoZXJyKSB7CgkJcHJpbnRrKEtFUk5fRVJSIERSVk5BTUUgIjogRGV2aWNl IGFkZGl0aW9uIGZhaWxlZFxuIik7CgkJZ290byBleGl0X2RldmljZV9wdXQ7Cgl9CgkKCXJl dHVybiAwOwoKZXhpdF9kZXZpY2VfcHV0OgoJcGxhdGZvcm1fZGV2aWNlX3B1dChmNzE4ODJm Z19wZGV2KTsKCglyZXR1cm4gZXJyOwp9CgpzdGF0aWMgaW50IF9faW5pdCBmNzE4ODJmZ19p bml0KHZvaWQpCnsKCWludCBlcnIgPSAtRU5PREVWOwoJdW5zaWduZWQgc2hvcnQgYWRkcmVz czsKCglpZiAoZjcxODgyZmdfZmluZCgweDJlLCAmYWRkcmVzcykgJiYgZjcxODgyZmdfZmlu ZCgweDRlLCAmYWRkcmVzcykpCgkJZ290byBleGl0OwoKCWlmICgoZXJyID0gcGxhdGZvcm1f ZHJpdmVyX3JlZ2lzdGVyKCZmNzE4ODJmZ19kcml2ZXIpKSkKCQlnb3RvIGV4aXQ7CgkKCWlm ICgoZXJyID0gZjcxODgyZmdfZGV2aWNlX2FkZChhZGRyZXNzKSkpCgkJZ290byBleGl0X2Ry aXZlcjsKCglyZXR1cm4gMDsKCmV4aXRfZHJpdmVyOgoJcGxhdGZvcm1fZHJpdmVyX3VucmVn aXN0ZXIoJmY3MTg4MmZnX2RyaXZlcik7CmV4aXQ6CglyZXR1cm4gZXJyOwp9CgpzdGF0aWMg dm9pZCBfX2V4aXQgZjcxODgyZmdfZXhpdCh2b2lkKQp7CglwbGF0Zm9ybV9kZXZpY2VfdW5y ZWdpc3RlcihmNzE4ODJmZ19wZGV2KTsKCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZm NzE4ODJmZ19kcml2ZXIpOwp9CgpNT0RVTEVfREVTQ1JJUFRJT04oIkY3MTg4MkZHIEhhcmR3 YXJlIE1vbml0b3JpbmcgRHJpdmVyIik7Ck1PRFVMRV9BVVRIT1IoIkhhbnMgRWRnaW5ndG9u IChoYW5zQGVkZ2luZ3Rvbi5ubCkiKTsKTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwoKbW9kdWxl X2luaXQoZjcxODgyZmdfaW5pdCk7Cm1vZHVsZV9leGl0KGY3MTg4MmZnX2V4aXQpOwo= --_===69662037====hhs.nl===_ Content-Type: application/octet-stream Content-Disposition: attachment; filename="sensors.conf" Content-Transfer-Encoding: base64 Y2hpcCAiZjcxODgyZmctKiIKIyBGaW50ZWsgZjcxODgyZmcKIyBOb3RpY2UgdGhhdCB0aGlz IGNvbmZpZyBpcyBmb3IgdGhlIEVwb3ggTTE2OTcgYm9hcmQsIHdoaWNoIGhhcyBhIEZpbnRl awojIGY3MTg4MmZnIHJlbGFiZWxlZCBhcyBFcG94IGVwMTMwOC4gWW91ciBtaWxhZ2Ugd2l0 aCB0aG9zIGNvbmZpZyBvbiBvdGhlcgojIGJvYXJkcyB3aWxsIHByb2JhYmx5IHZhcnkKCiMg VGVtcGVyYXR1cmUKICAgIGxhYmVsIHRlbXAxICAgICAgICJDUFUiCiAgICBsYWJlbCB0ZW1w MiAgICAgICAiU3lzdGVtIgogICAgaWdub3JlIHRlbXAzCiAgICBpZ25vcmUgdGVtcDQKCiMg RmFucwogICAgbGFiZWwgZmFuMSAgICAgICAgIkNQVSIKICAgIGlnbm9yZSBmYW4yCiAgICBp Z25vcmUgZmFuMwogICAgaWdub3JlIGZhbjQKCiMgVm9sdGFnZQogICAgbGFiZWwgaW4wICAg ICAgICAgIjMuM1YiCiAgICBsYWJlbCBpbjEgICAgICAgICAiVmNvcmUiCiAgICBsYWJlbCBp bjIgICAgICAgICAiVmRpbW0iCiAgICBsYWJlbCBpbjMgICAgICAgICAiVmNoaXAiCiAgICBs YWJlbCBpbjQgICAgICAgICAiKzVWIgogICAgbGFiZWwgaW41ICAgICAgICAgIjEyViIKICAg IGxhYmVsIGluNiAgICAgICAgICI1VlNCIgogICAgbGFiZWwgaW43ICAgICAgICAgIjNWU0Ii CiAgICBsYWJlbCBpbjggICAgICAgICAiQmF0ZXJ5IgoKIyBuZXZlciBjaGFuZ2UgdGhlIGlu MCwgaW43IGFuZCBpbjggY29tcHV0ZSwgdGhlc2UgYXJlIGhhcmR3aXJlZCBpbiB0aGUgY2hp cCEKICAgIGNvbXB1dGUgaW4wICAgICAgIChAICogMiksIChAIC8gMikgCiAgICBjb21wdXRl IGluMiAgICAgICAoQCAqIDIpLCAoQCAvIDIpCiAgICBjb21wdXRlIGluMyAgICAgICAoQCAq IDIpLCAoQCAvIDIpCiAgICBjb21wdXRlIGluNCAgICAgICAoQCAqIDUuMjUpLCAoQCAvIDUu MjUpCiAgICBjb21wdXRlIGluNSAgICAgICAoQCAqIDEyLjgzKSwgKEAgLyAxMi44MykKICAg IGNvbXB1dGUgaW42ICAgICAgIChAICogNS4yNSksIChAIC8gNS4yNSkKICAgIGNvbXB1dGUg aW43ICAgICAgIChAICogMiksIChAIC8gMikKICAgIGNvbXB1dGUgaW44ICAgICAgIChAICog MiksIChAIC8gMikK --_===69662037====hhs.nl===_ Content-Type: application/octet-stream Content-Disposition: attachment; filename="Makefile" Content-Transfer-Encoding: base64 b2JqLW0gKz0gZmludGVrNzE4ODIubwoKYWxsOgoJbWFrZSAtQyAvbGliL21vZHVsZXMvJChz aGVsbCB1bmFtZSAtcikvYnVpbGQgTT0kKFBXRCkgbW9kdWxlcwoKY2xlYW46CgltYWtlIC1D IC9saWIvbW9kdWxlcy8kKHNoZWxsIHVuYW1lIC1yKS9idWlsZCBNPSQoUFdEKSBjbGVhbgo= --_===69662037====hhs.nl===_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ lm-sensors mailing list lm-sensors@lm-sensors.org http://lists.lm-sensors.org/mailman/listinfo/lm-sensors --_===69662037====hhs.nl===_--