Date: Mon, 14 Sep 2009 12:29:20 -0400 From: Jung-uk Kim <jkim@FreeBSD.org> To: Kris Kennaway <kris@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r197102 - head/sys/dev/amdtemp Message-ID: <200909141229.23229.jkim@FreeBSD.org> In-Reply-To: <4AAD19F2.10005@FreeBSD.org> References: <200909112147.n8BLlind064388@svn.freebsd.org> <4AAD19F2.10005@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Boundary-00=_i9mrKA/ROv5TzfR Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sunday 13 September 2009 12:12 pm, Kris Kennaway wrote: > Jung-uk Kim wrote: > > Author: jkim > > Date: Fri Sep 11 21:47:44 2009 > > New Revision: 197102 > > URL: http://svn.freebsd.org/changeset/base/197102 > > > > Log: > > Improve amdtemp(4) significantly: > > > > - Improve newer AMD processor support (Family 0Fh Revision F > > and later). - Adjust offset if DiodeOffet is set and valid. Note > > it is experimental but it seems to give us more realistic > > temperatures. Newer Linux driver blindly adds 21C for Family 0Fh > > desktop processors, however. - Always populate dev.cpu and > > dev.amdtemp sysctl trees regardless of probe order for > > consistency. Previously, dev.cpu.N.temperature was not populated > > if amdtemp was loaded later than ACPI CPU driver and temperatures > > were not accessible from dev.amdtemp.N.sensor0 tree for Family > > 10h/11h processors. - Read the CPUID from PCI register instead of > > CPUID instruction to prevent possible revision mismatches on > > multi-socket system. > > - Change macros and variables to make them closer to AMD > > documents. - Fix style(9) nits and improve comments. > > It no longer appears to work for me. The old version reported: > > dev.amdtemp.0.%desc: AMD K8 Thermal Sensors > dev.amdtemp.0.%driver: amdtemp > dev.amdtemp.0.%parent: hostb9 > dev.amdtemp.0.sensor0.core0: 38.0C > dev.amdtemp.0.sensor0.core1: 45.0C > dev.amdtemp.0.sensor1.core0: 38.0C > dev.amdtemp.0.sensor1.core1: 45.0C > dev.cpu.0.temperature: 38.0C > dev.cpu.1.temperature: 38.0C > > but none of those sysctl nodes are now present. > > CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ (2400.10-MHz > K8-class CPU) > Origin = "AuthenticAMD" Id = 0x20f32 Stepping = 2 > > Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTR >R,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT> > Features2=0x1<SSE3> > AMD Features=0xe2500800<SYSCALL,NX,MMX+,FFXSR,LM,3DNow!+,3DNow!> > AMD Features2=0x3<LAHF,CMP> > ACPI APIC Table: <A M I OEMAPIC > Arg... This is a Socket 939, Revision E processor and Revision C/D/E seems to have different DiodeOffset encoding. Please try the attached patch until I fix it properly. Sorry for the inconvenience. Jung-uk Kim --Boundary-00=_i9mrKA/ROv5TzfR Content-Type: text/plain; charset="iso-8859-1"; name="amdtemp.c.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="amdtemp.c.diff" --- sys/dev/amdtemp/amdtemp.c +++ sys/dev/amdtemp/amdtemp.c @@ -185,13 +185,6 @@ amdtemp_probe(device_t dev) break; case 0x10: case 0x11: - /* - * DiodeOffset must be non-zero if thermal diode is supported. - */ - temp = pci_read_config(dev, AMDTEMP_THERMTP_STAT, 4); - temp = (temp >> 8) & 0x7f; - if (temp == 0) - return (ENXIO); break; default: return (ENXIO); --Boundary-00=_i9mrKA/ROv5TzfR--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909141229.23229.jkim>