From mboxrd@z Thu Jan 1 00:00:00 1970 From: DarkNovaNick@gmail.com Date: Wed, 19 Jan 2011 03:22:14 +0000 Subject: Re: [lm-sensors] Sandy Bridge support? Message-Id: <0022152d64d10506b6049a2a86b0@google.com> MIME-Version: 1 Content-Type: multipart/mixed; boundary="===============3646301244141371315==" List-Id: References: <0022152d6d71d9f528049a109a02@google.com> In-Reply-To: <0022152d6d71d9f528049a109a02@google.com> To: lm-sensors@vger.kernel.org --===============3646301244141371315== Content-Type: multipart/alternative; boundary=0022152d64d1050687049a2a86ad --0022152d64d1050687049a2a86ad Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: base64 T24gSmFuIDE4LCAyMDExIDQ6MzVwbSwgSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+ IHdyb3RlOg0KPiBPbiBUdWUsIDE4IEphbiAyMDExIDE3OjMyOjQ2ICswMTAwLCBKZWFuIERlbHZh cmUgd3JvdGU6DQoNCj4gPiBPbiBUdWUsIDE4IEphbiAyMDExIDEwOjAzOjIzIC0wNjAwLCBOaWNr IEhhbGwgd3JvdGU6DQoNCj4gPiA+IEFuZCByZWdhcmRpbmcgdGhlIHNlbnNvcnMtZGV0ZWN0IHNj cmlwdCwgSSB1bmRlcnN0YW5kIG5vdy4gSWYgYW55b25lICANCj4gaXMNCg0KPiA+ID4gaW50ZXJl c3RlZCwgbXkgU2FuZHkgQnJpZGdlIHByb2Nlc3NvciB3b3VsZCBiZSBtb2RlbCAiMHgyQSIgYWNj b3JkaW5nICANCj4gdG8gaG93DQoNCj4gPiA+IHRoYXQgc2NyaXB0IGRvZXMgdGhpbmdzLg0KDQo+ ID4NCg0KPiA+IFRoaXMgaXMgYW4gb3B0aW9uLCB5ZXMsIGJ1dCBpdCB3b3VsZCBiZSBiZXR0ZXIg aWYgd2UgY291bGQgaW1wbGVtZW50DQoNCj4gPiB0aGUgc2FtZSBkZXRlY3Rpb24gbG9naWMgYXMg dGhlIGNvcmV0ZW1wIGRyaXZlciBoYXMuIEZvciBvbmUgdGhpbmcsIHRoaXMNCg0KPiA+IHdvdWxk IGd1YXJhbnRlZSB0aGF0IHRoZSB0d28gYXJlIGFsd2F5cyBpbiBzeW5jLiBGb3IgYW5vdGhlciwg aXQgd291bGQNCg0KPiA+IGxvd2VyIHRoZSBtYWludGVuYW5jZSBlZmZvcnQgZnJvbSBvdXIgc2lk ZSwgYXMgdGhlIG5ldyBkZXRlY3Rpb24gbG9naWMNCg0KPiA+IGlzIHVuaXZlcnNhbCBhbmQgZG9l c24ndCBuZWVkIHRvIGJlIHVwZGF0ZWQgd2l0aCBldmVyeSBuZXcgQ1BVIG1vZGVsLg0KDQo+ID4g SSdtIGxvb2tpbmcgaW50byBpdCBidXQgdGhpcyBpcyBub24tdHJpdmlhbC4NCg0KDQoNCj4gSSBo YXZlIGNvbWUgdXAgd2l0aCB0aGUgZm9sbG93aW5nIHBhdGNoOg0KDQoNCg0KPiBJbmRleDogcHJv Zy9kZXRlY3Qvc2Vuc29ycy1kZXRlY3QNCg0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCj4gLS0tIHByb2cvZGV0 ZWN0L3NlbnNvcnMtZGV0ZWN0IChy6XZpc2lvbiA1OTA0KQ0KDQo+ICsrKyBwcm9nL2RldGVjdC9z ZW5zb3JzLWRldGVjdCAoY29waWUgZGUgdHJhdmFpbCkNCg0KPiBAQCAtMjMsNyArMjMsNyBAQA0K DQo+IHJlcXVpcmUgNS4wMDQ7DQoNCg0KDQo+IHVzZSBzdHJpY3Q7DQoNCj4gLXVzZSBGY250bDsN Cg0KPiArdXNlIEZjbnRsIHF3KDpERUZBVUxUIDpzZWVrKTsNCg0KPiB1c2UgRmlsZTo6QmFzZW5h bWU7DQoNCg0KDQo+ICMgV2Ugd2lsbCBjYWxsIG1vZHByb2JlLCB3aGljaCB0eXBpY2FsbHkgbGl2 ZXMgaW4gZWl0aGVyIC9zYmluLA0KDQo+IEBAIC0yMDQ2LDE0ICsyMDQ2LDEwIEBADQoNCj4gZHJp dmVyID0+ICJrMTB0ZW1wIiwNCg0KPiBkZXRlY3QgPT4gXCZmYW0xMWhfcGNpX2RldGVjdCwNCg0K PiB9LCB7DQoNCj4gLSBuYW1lID0+ICJJbnRlbCBDb3JlIGZhbWlseSB0aGVybWFsIHNlbnNvciIs DQoNCj4gKyBuYW1lID0+ICJJbnRlbCBkaWdpdGFsIHRoZXJtYWwgc2Vuc29yIiwNCg0KPiBkcml2 ZXIgPT4gImNvcmV0ZW1wIiwNCg0KPiAtIGRldGVjdCA9PiBzdWIgeyBjb3JldGVtcF9kZXRlY3Qo MCk7IH0sDQoNCj4gKyBkZXRlY3QgPT4gXCZjb3JldGVtcF9kZXRlY3QsDQoNCj4gfSwgew0KDQo+ IC0gbmFtZSA9PiAiSW50ZWwgQXRvbSB0aGVybWFsIHNlbnNvciIsDQoNCj4gLSBkcml2ZXIgPT4g ImNvcmV0ZW1wIiwNCg0KPiAtIGRldGVjdCA9PiBzdWIgeyBjb3JldGVtcF9kZXRlY3QoMSk7IH0s DQoNCj4gLSB9LCB7DQoNCj4gbmFtZSA9PiAiSW50ZWwgQU1CIEZCLURJTU0gdGhlcm1hbCBzZW5z b3IiLA0KDQo+IGRyaXZlciA9PiAiaTVrX2FtYiIsDQoNCj4gZGV0ZWN0ID0+IFwmaW50ZWxfYW1i X2RldGVjdCwNCg0KPiBAQCAtMjMxNCwxMCArMjMxMCwxMCBAQA0KDQo+IHdoaWxlICgpIHsNCg0K PiBpZiAobS9ecHJvY2Vzc29yXHMqOlxzKihcZCspLykgew0KDQo+IHB1c2ggQGNwdSwgJGVudHJ5 IGlmIHNjYWxhciBrZXlzKCV7JGVudHJ5fSk7ICMgUHJldmlvdXMgZW50cnkNCg0KPiAtICRlbnRy eSA9IHt9OyAjIE5ldyBlbnRyeQ0KDQo+ICsgJGVudHJ5ID0geyBuciA9PiAkMSB9OyAjIE5ldyBl bnRyeQ0KDQo+IG5leHQ7DQoNCj4gfQ0KDQo+IC0gaWYgKG0vXih2ZW5kb3JfaWR8Y3B1IGZhbWls eXxtb2RlbHxtb2RlbCBuYW1lfHN0ZXBwaW5nKVxzKjpccyooLispJC8pIHsNCg0KPiArIGlmICht L14odmVuZG9yX2lkfGNwdSBmYW1pbHl8bW9kZWx8bW9kZWwgbmFtZXxzdGVwcGluZ3xjcHVpZCAg DQo+IGxldmVsKVxzKjpccyooLispJC8pIHsNCg0KPiBteSAkayA9ICQxOw0KDQo+IG15ICR2ID0g JDI7DQoNCj4gJHYgPX4gcy9ccysvIC9nOyAjIE1lcmdlIG11bHRpcGxlIHNwYWNlcw0KDQo+IEBA IC0yNDg2LDYgKzI0ODIsMTUgQEANCg0KPiAkbW9kdWxlc19saXN0eyRub3JtYWxpemVkfSA9IDE7 DQoNCj4gfQ0KDQoNCg0KPiArIyB1ZGV2IG1heSB0YWtlIHNvbWUgdGltZSB0byBjcmVhdGUgZGV2 aWNlIG5vZGVzIHdoZW4gbG9hZGluZyBtb2R1bGVzDQoNCj4gK3N1YiB1ZGV2X3NldHRsZQ0KDQo+ ICt7DQoNCj4gKyBpZiAoISgteCAiL3NiaW4vdWRldmFkbSIgJiYgc3lzdGVtKCIvc2Jpbi91ZGV2 YWRtIHNldHRsZSIpID09IDApDQoNCj4gKyAmJiAhKC14ICIvc2Jpbi91ZGV2c2V0dGxlIiAmJiBz eXN0ZW0oIi9zYmluL3VkZXZzZXR0bGUiKSA9PSAwKSkgew0KDQo+ICsgc2xlZXAoMSk7DQoNCj4g KyB9DQoNCj4gK30NCg0KPiArDQoNCj4gc3ViIGluaXRpYWxpemVfbW9kdWxlc19zdXBwb3J0ZWQN Cg0KPiB7DQoNCj4gZm9yZWFjaCBteSAkY2hpcCAoQGNoaXBfaWRzKSB7DQoNCj4gQEAgLTU4MzMs MjMgKzU4MzgsMzMgQEANCg0KPiByZXR1cm47DQoNCj4gfQ0KDQoNCg0KPiArc3ViIGNwdWlkDQoN Cj4gK3sNCg0KPiArIG15ICgkY3B1X25yLCAkZWF4KSA9IEBfOw0KDQo+ICsNCg0KPiArIHN5c29w ZW4oQ1BVSUQsICIvZGV2L2NwdS8kY3B1X25yL2NwdWlkIiwgT19SRE9OTFkpIG9yIHJldHVybjsN Cg0KPiArIGJpbm1vZGUgQ1BVSUQ7DQoNCj4gKyBzeXNzZWVrKENQVUlELCAkZWF4LCBTRUVLX1NF VCkNCg0KPiArIG9yIGRpZSAiQ2Fubm90IHNlZWsgL2Rldi9jcHUvJGNwdV9uci9jcHVpZCI7DQoN Cj4gKyBzeXNyZWFkKENQVUlELCBteSAkZGF0YSwgMTYpDQoNCj4gKyBvciBkaWUgIkNhbm5vdCBy ZWFkIC9kZXYvY3B1LyRjcHVfbnIvY3B1aWQiOw0KDQo+ICsgY2xvc2UgQ1BVSUQ7DQoNCj4gKw0K DQo+ICsgcmV0dXJuIHVucGFjaygiTDQiLCAkZGF0YSk7DQoNCj4gK30NCg0KPiArDQoNCj4gc3Vi IGNvcmV0ZW1wX2RldGVjdA0KDQo+IHsNCg0KPiAtIG15ICRjaGlwID0gc2hpZnQ7DQoNCj4gbXkg JHByb2JlY3B1Ow0KDQoNCg0KPiBmb3JlYWNoICRwcm9iZWNwdSAoQGNwdSkgew0KDQo+IG5leHQg dW5sZXNzICRwcm9iZWNwdS0+e3ZlbmRvcl9pZH0gZXEgJ0dlbnVpbmVJbnRlbCcgJiYNCg0KPiAt ICRwcm9iZWNwdS0+eydjcHUgZmFtaWx5J30gPT0gNjsNCg0KPiAtIHJldHVybiA5IGlmICRjaGlw ID09IDAgJiYNCg0KPiAtICgkcHJvYmVjcHUtPnttb2RlbH0gPT0gMTQgfHwgIyBQZW50aXVtIE0g REMNCg0KPiAtICRwcm9iZWNwdS0+e21vZGVsfSA9PSAxNSB8fCAjIENvcmUgMiBEQyA2NW5tDQoN Cj4gLSAkcHJvYmVjcHUtPnttb2RlbH0gPT0gMHgxNiB8fCAjIENvcmUgMiBTQyA2NW5tDQoNCj4g LSAkcHJvYmVjcHUtPnttb2RlbH0gPT0gMHgxNyB8fCAjIFBlbnJ5biA0NW5tDQoNCj4gLSAkcHJv YmVjcHUtPnttb2RlbH0gPT0gMHgxYSB8fCAjIE5laGFsZW0NCg0KPiAtICRwcm9iZWNwdS0+e21v ZGVsfSA9PSAweDFlKTsgIyBMeW5uZmllbGQNCg0KPiAtIHJldHVybiA5IGlmICRjaGlwID09IDEg JiYNCg0KPiAtICgkcHJvYmVjcHUtPnttb2RlbH0gPT0gMHgxYyk7ICMgQXRvbQ0KDQo+ICsgJHBy b2JlY3B1LT57J2NwdWlkIGxldmVsJ30gPj0gNjsNCg0KPiArDQoNCj4gKyAjIE5vdyB3ZSBjaGVj ayBmb3IgdGhlIERUUyBmbGFnDQoNCj4gKyBteSBAcmVncyA9IGNwdWlkKCRwcm9iZWNwdS0+e25y fSwgMHgwNik7DQoNCj4gKyByZXR1cm4gdW5sZXNzIEByZWdzID09IDQ7DQoNCj4gKyByZXR1cm4g OSBpZiAoJHJlZ3NbMF0gJiAoMQ0KPiB9DQoNCj4gcmV0dXJuOw0KDQo+IH0NCg0KPiBAQCAtNjIw Myw2ICs2MjE4LDEyIEBADQoNCj4gcHJpbnQgIlNvbWUgc291dGggYnJpZGdlcywgQ1BVcyBvciBt ZW1vcnkgY29udHJvbGxlcnMgY29udGFpbiBlbWJlZGRlZCAgDQo+IHNlbnNvcnMuXG4iLg0KDQo+ ICJEbyB5b3Ugd2FudCB0byBzY2FuIGZvciB0aGVtPyBUaGlzIGlzIHRvdGFsbHkgc2FmZS4gKFlF Uy9ubyk6ICI7DQoNCj4gdW5sZXNzICggPX4gL15ccypuL2kpIHsNCg0KPiArICMgTG9hZCB0aGUg Y3B1aWQgZHJpdmVyIGlmIG5lZWRlZA0KDQo+ICsgaWYgKEBjcHUgPj0gMSAmJiAhIC1lICIvZGV2 L2NwdS8kY3B1WzBdLT57bnJ9L2NwdWlkIikgew0KDQo+ICsgbG9hZF9tb2R1bGUoImNwdWlkIik7 DQoNCj4gKyB1ZGV2X3NldHRsZSgpOw0KDQo+ICsgfQ0KDQo+ICsNCg0KPiAkfCA9IDE7DQoNCj4g Zm9yZWFjaCBteSAkZW50cnkgKEBjcHVfaWRzKSB7DQoNCj4gc2Nhbl9jcHUoJGVudHJ5KTsNCg0K PiBAQCAtNjI3OCwxMiArNjI5OSw3IEBADQoNCj4gJGJ5X2RlZmF1bHQgPSAxIGlmIGRtaV9tYXRj aCgnYm9hcmRfdmVuZG9yJywgJ2FzdXN0ZWsnLCAndHlhbicsDQoNCj4gJ3N1cGVybWljcm8nKTsN Cg0KDQoNCj4gLSAjIHVkZXYgbWF5IHRha2Ugc29tZSB0aW1lIHRvIGNyZWF0ZSB0aGUgZGV2aWNl IG5vZGUNCg0KPiAtIGlmICghKC14ICIvc2Jpbi91ZGV2YWRtIiAmJiBzeXN0ZW0oIi9zYmluL3Vk ZXZhZG0gc2V0dGxlIikgPT0gMCkNCg0KPiAtICYmICEoLXggIi9zYmluL3VkZXZzZXR0bGUiICYm IHN5c3RlbSgiL3NiaW4vdWRldnNldHRsZSIpID09IDApKSB7DQoNCj4gLSBzbGVlcCgxKTsNCg0K PiAtIH0NCg0KPiAtDQoNCj4gKyB1ZGV2X3NldHRsZSgpOw0KDQo+IGZvciAobXkgJGRldl9uciA9 IDA7ICRkZXZfbnINCj4gbmV4dCB1bmxlc3MgZXhpc3RzICRpMmNfYWRhcHRlcnNbJGRldl9ucl07 DQoNCj4gc2Nhbl9pMmNfYWRhcHRlcigkZGV2X25yLCAkYnlfZGVmYXVsdCk7DQoNCg0KDQo+IFRo aXMgc2VlbXMgdG8gZG8gdGhlIHRyaWNrIGZvciBtZS4gT2J2aW91c2x5IGl0IGFzc3VtZXMgdGhh dCB0aGUgY3B1aWQNCg0KPiBrZXJuZWwgZHJpdmVyIGlzIGF2YWlsYWJsZS4gQWxsIG15IHN5c3Rl bXMgaGF2ZSBpdCBhdmFpbGFibGUgYXMgYQ0KDQo+IG1vZHVsZSwgYnV0IEkgZG9uJ3Qga25vdyBp ZiB3ZSBjYW4gcmVhc29uYWJseSBhc3N1bWUgdGhhdCBpdCB3aWxsIGJlDQoNCj4gYXZhaWxhYmxl IG9uIGFsbCB4ODYgc3lzdGVtcyB3aGVyZSBzZW5zb3JzLWRldGVjdCBpcyB1c2VkLg0KDQoNCg0K PiBJIHdvdWxkIGxpa2UgdGhpcyBjaGFuZ2UgdG8gZ2V0IGFzIHdpZGUgYSB0ZXN0IGNvdmVyYWdl IGFzIHBvc3NpYmxlLg0KDQo+IFRvIG1ha2UgdGVzdGluZyBlYXNpZXIsIEkndmUgbWFkZSB0aGUg ZnVsbCBzY3JpcHQgYXZhaWxhYmxlIGZvcg0KDQo+IGRvd25sb2FkIGF0Og0KDQo+IGh0dHA6Ly9r aGFsaS5saW51eC1mci5vcmcvZGV2ZWwvbWlzYy9zZW5zb3JzLWRldGVjdA0KDQo+IChJdCdzIGV4 YWN0bHkgZXF1aXZhbGVudCB0byBzZW5zb3JzLWRldGVjdCBTVk4gKyB0aGUgcGF0Y2ggYWJvdmUu KSBJbg0KDQo+IHBhcnRpY3VsYXIsIHRoaXMgbmVlZHMgdGVzdGluZyBvbiBJbnRlbCBDUFVzIHdp dGggY3B1aWQgbGV2ZWwgPj0gNiBidXQNCg0KPiB3aXRob3V0IERUUyBzdXBwb3J0Li4uIGlmIHN1 Y2ggc3lzdGVtcyBleGlzdCAoSSBkb24ndCBoYXZlIGFueSBoZXJlLA0KDQo+IGZvciBzdXJlLikN Cg0KDQoNCj4gSWYgdGhpcyBhcHBlYXJzIHRvIHdvcmsgZm9yIGV2ZXJ5b25lIGFuZCBub2JvZHkg Y29tZXMgdXAgd2l0aCBhIG1ham9yDQoNCj4gb2JqZWN0aW9uLCB0aGVuIHdlIGhhdmUgb3VyIGZp eC4NCg0KDQoNCj4gVGhhbmtzLA0KDQo+IC0tDQoNCj4gSmVhbiBEZWx2YXJlDQoNCg0KDQpXb3Jr ZWQgZm9yIG1lIG9uIG15IEludGVsIGk1LTI1MDBrIChTYW5keSBCcmlkZ2UpLiBUaGFua3MhDQoN Ck5pY2sNCg== --0022152d64d1050687049a2a86ad Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Jan 18, 2011 4:35pm, Jean Delvare <khali@linux-fr.org> wrote:
> On Tue, 18 Jan 2011 17:32:46 +0100, Jean Delvare wrote:
> > > On Tue, 18 Jan 2011 10:03:23 -0600, Nick Hall wrote:
>=
> > > And regarding the sensors-detect script, I understand= now. If anyone is
>
> > > interested, my Sandy Brid= ge processor would be model "0x2A" according to how
> > > > that script does things.
>
> >
&= gt;
> > This is an option, yes, but it would be better if we co= uld implement
>
> > the same detection logic as the cor= etemp driver has. For one thing, this
>
> > would guara= ntee that the two are always in sync. For another, it would
>
> > lower the maintenance effort from our side, as the new detection= logic
>
> > is universal and doesn't need to be up= dated with every new CPU model.
>
> > I'm looking i= nto it but this is non-trivial.
>
>
>
> = I have come up with the following patch:
>
>
> > Index: prog/detect/sensors-detect
>
> =3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> --- prog/de= tect/sensors-detect =A0(r=E9vision 5904)
>
> +++ prog/dete= ct/sensors-detect =A0(copie de travail)
>
> @@ -23,7 +23,7= @@
>
> =A0require 5.004;
>
>
> =
> =A0use strict;
>
> -use Fcntl;
>
= > +use Fcntl qw(:DEFAULT :seek);
>
> =A0use File::Basen= ame;
>
>
>
> =A0# We will call modprobe,= which typically lives in either /sbin,
>
> @@ -2046,14 +2= 046,10 @@
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0driver =3D&g= t; "k10temp",
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0detect =3D> \&fam11h_pci_detect,
>
> =A0 =A0 =A0 = =A0}, {
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 name =3D> &qu= ot;Intel Core family thermal sensor",
>
> + =A0 =A0 = =A0 =A0 =A0 =A0 =A0 name =3D> "Intel digital thermal sensor",<= br />>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0driver =3D> "c= oretemp",
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 detect = =3D> sub { coretemp_detect(0); },
>
> + =A0 =A0 =A0 =A0= =A0 =A0 =A0 detect =3D> \&coretemp_detect,
>
> =A0 = =A0 =A0 =A0}, {
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 name =3D= > "Intel Atom thermal sensor",
>
> - =A0 =A0 = =A0 =A0 =A0 =A0 =A0 driver =3D> "coretemp",
>
&g= t; - =A0 =A0 =A0 =A0 =A0 =A0 =A0 detect =3D> sub { coretemp_detect(1); }= ,
>
> - =A0 =A0 =A0 }, {
>
> =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0name =3D> "Intel AMB FB-DIMM thermal sensor&quo= t;,
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0driver =3D> &qu= ot;i5k_amb",
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dete= ct =3D> \&intel_amb_detect,
>
> @@ -2314,10 +2310,10 @@=
>
> =A0 =A0 =A0 =A0while () {
>
> =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0if (m/^processor\s*:\s*(\d+)/) {
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0push @cpu, $entry if = scalar keys(%{$entry}); # Previous entry
>
> - =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 $entry =3D {}; # New entry
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 $entry =3D { nr =3D>= $1 }; # New entry
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0next;
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0}=
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (m/^(vendor_id|cpu f= amily|model|model name|stepping)\s*:\s*(.+)$/) {
>
> + =A0= =A0 =A0 =A0 =A0 =A0 =A0 if (m/^(vendor_id|cpu family|model|model name|step= ping|cpuid level)\s*:\s*(.+)$/) {
>
> =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0my $k =3D $1;
>
> =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0my $v =3D $2;
>
> =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0$v =3D~ s/\s+/ /g; =A0 =A0 =A0 = =A0# Merge multiple spaces
>
> @@ -2486,6 +2482,15 @@
>
> =A0 =A0 =A0 =A0$modules_list{$normalized} =3D 1;
>= ;
> =A0}
>
>
>
> +# udev may ta= ke some time to create device nodes when loading modules
>
&g= t; +sub udev_settle
>
> +{
>
> + =A0 =A0 = =A0 if (!(-x "/sbin/udevadm" && system("/sbin/udevadm settle= ") =3D=3D 0)
>
> + =A0 =A0 =A0 =A0&& !(-x "/sbin= /udevsettle" && system("/sbin/udevsettle") =3D=3D 0)) {
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 sleep(1);
>
&g= t; + =A0 =A0 =A0 }
>
> +}
>
> +
>=
> =A0sub initialize_modules_supported
>
> =A0{>
> =A0 =A0 =A0 =A0foreach my $chip (@chip_ids) {
>= ;
> @@ -5833,23 +5838,33 @@
>
> =A0 =A0 =A0 =A0r= eturn;
>
> =A0}
>
>
>
>= +sub cpuid
>
> +{
>
> + =A0 =A0 =A0 my (= $cpu_nr, $eax) =3D @_;
>
> +
>
> + =A0 = =A0 =A0 sysopen(CPUID, "/dev/cpu/$cpu_nr/cpuid", O_RDONLY) or ret= urn;
>
> + =A0 =A0 =A0 binmode CPUID;
>
>= + =A0 =A0 =A0 sysseek(CPUID, $eax, SEEK_SET)
>
> + =A0 = =A0 =A0 =A0 =A0 =A0 =A0 or die "Cannot seek /dev/cpu/$cpu_nr/cpuid&quo= t;;
>
> + =A0 =A0 =A0 sysread(CPUID, my $data, 16)
&g= t;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 or die "Cannot read /dev/c= pu/$cpu_nr/cpuid";
>
> + =A0 =A0 =A0 close CPUID;
>
> +
>
> + =A0 =A0 =A0 return unpack("= L4", $data);
>
> +}
>
> +
> =
> =A0sub coretemp_detect
>
> =A0{
>
> - =A0 =A0 =A0 my $chip =3D shift;
>
> =A0 =A0 =A0 = =A0my $probecpu;
>
>
>
> =A0 =A0 =A0 = =A0foreach $probecpu (@cpu) {
>
> =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0next unless $probecpu->{vendor_id} eq 'GenuineIntel' &&<= br />>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = $probecpu->{'cpu family'} =3D=3D 6;
>
> - =A0 = =A0 =A0 =A0 =A0 =A0 =A0 return 9 if $chip =3D=3D 0 &&
>
> = - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ($probecpu->{model} =3D=3D= 14 || =A0 =A0# Pentium M DC
>
> - =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0$probecpu->{model} =3D=3D 15 || =A0 =A0# Core 2 = DC 65nm
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0$probecpu->{model} =3D=3D 0x16 || =A0# Core 2 SC 65nm
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0$probecpu->{model= } =3D=3D 0x17 || =A0# Penryn 45nm
>
> - =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0$probecpu->{model} =3D=3D 0x1a || =A0# Ne= halem
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0$probecpu->{model} =3D=3D 0x1e); =A0 # Lynnfield
>
>= - =A0 =A0 =A0 =A0 =A0 =A0 =A0 return 9 if $chip =3D=3D 1 &&
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ($probecpu->{model}= =3D=3D 0x1c); =A0 # Atom
>
> + =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 $probecpu->{'cpuid level'} >=3D 6= ;
>
> +
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0= # Now we check for the DTS flag
>
> + =A0 =A0 =A0 =A0 =A0= =A0 =A0 my @regs =3D cpuid($probecpu->{nr}, 0x06);
>
>= + =A0 =A0 =A0 =A0 =A0 =A0 =A0 return unless @regs =3D=3D 4;
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 return 9 if ($regs[0] & (1
>= =A0 =A0 =A0 =A0}
>
> =A0 =A0 =A0 =A0return;
> <= br />> =A0}
>
> @@ -6203,6 +6218,12 @@
>
= > =A0 =A0 =A0 =A0print "Some south bridges, CPUs or memory control= lers contain embedded sensors.\n".
>
> =A0 =A0 =A0 = =A0 =A0 =A0 =A0"Do you want to scan for them? This is totally safe. (Y= ES/no): ";
>
> =A0 =A0 =A0 =A0unless ( =3D~ /^\s*n/i= ) {
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 # Load the cpuid dri= ver if needed
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (@cpu &= gt;=3D 1 && ! -e "/dev/cpu/$cpu[0]->{nr}/cpuid") {
> <= br />> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 load_module("c= puid");
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 udev_settle();
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 }>
> +
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0$= | =3D 1;
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0foreach my $e= ntry (@cpu_ids) {
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0scan_cpu($entry);
>
> @@ -6278,12 +6299,7 @@>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0$by_default =3D 1 if dm= i_match('board_vendor', 'asustek', 'tyan',
>= ;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 'supermicro');
>
> >
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 # udev may take some time = to create the device node
>
> - =A0 =A0 =A0 =A0 =A0 =A0 = =A0 if (!(-x "/sbin/udevadm" && system("/sbin/udevadm settle= ") =3D=3D 0)
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0&& = !(-x "/sbin/udevsettle" && system("/sbin/udevsettle") = =3D=3D 0)) {
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 sleep(1);
>
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 }
&g= t;
> -
>
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 udev_set= tle();
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0for (my $dev_nr= =3D 0; $dev_nr
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0next unless exists $i2c_adapters[$dev_nr];
>
> =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0scan_i2c_adapter($dev_nr, $by_defau= lt);
>
>
>
> This seems to do the trick = for me. Obviously it assumes that the cpuid
>
> kernel dri= ver is available. All my systems have it available as a
>
>= ; module, but I don't know if we can reasonably assume that it will be<= br />>
> available on all x86 systems where sensors-detect is u= sed.
>
>
>
> I would like this change to= get as wide a test coverage as possible.
>
> To make test= ing easier, I've made the full script available for
>
>= ; download at:
>
> =A0http://khali.linux-fr.org/devel/mis= c/sensors-detect
>
> (It's exactly equivalent to senso= rs-detect SVN + the patch above.) In
>
> particular, this = needs testing on Intel CPUs with cpuid level >=3D 6 but
>
= > without DTS support... if such systems exist (I don't have any her= e,
>
> for sure.)
>
>
>
&g= t; If this appears to work for everyone and nobody comes up with a major>
> objection, then we have our fix.
>
> >
> Thanks,
>
> --
>
> Je= an Delvare
>
>

Worked for me on my Intel i5-25= 00k (Sandy Bridge). Thanks!

Nick --0022152d64d1050687049a2a86ad-- --===============3646301244141371315== 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 --===============3646301244141371315==--