Module Name: src Committed By: jruoho Date: Sun Feb 20 13:42:46 UTC 2011
Modified Files: src/sys/arch/amd64/conf: GENERIC src/sys/arch/i386/conf: ALL GENERIC src/sys/arch/x86/conf: files.x86 src/sys/arch/x86/include: cpu.h cpuvar.h src/sys/arch/x86/x86: coretemp.c cpu.c identcpu.c Log Message: Modularize coretemp(4). Ok jmcneill@. To generate a diff of this commit: cvs rdiff -u -r1.309 -r1.310 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.289 -r1.290 src/sys/arch/i386/conf/ALL cvs rdiff -u -r1.1018 -r1.1019 src/sys/arch/i386/conf/GENERIC cvs rdiff -u -r1.58 -r1.59 src/sys/arch/x86/conf/files.x86 cvs rdiff -u -r1.28 -r1.29 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.39 -r1.40 src/sys/arch/x86/include/cpuvar.h cvs rdiff -u -r1.16 -r1.17 src/sys/arch/x86/x86/coretemp.c cvs rdiff -u -r1.81 -r1.82 src/sys/arch/x86/x86/cpu.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/x86/x86/identcpu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/conf/GENERIC diff -u src/sys/arch/amd64/conf/GENERIC:1.309 src/sys/arch/amd64/conf/GENERIC:1.310 --- src/sys/arch/amd64/conf/GENERIC:1.309 Sat Feb 19 00:13:55 2011 +++ src/sys/arch/amd64/conf/GENERIC Sun Feb 20 13:42:45 2011 @@ -1,4 +1,4 @@ -# $NetBSD: GENERIC,v 1.309 2011/02/19 00:13:55 jmcneill Exp $ +# $NetBSD: GENERIC,v 1.310 2011/02/20 13:42:45 jruoho Exp $ # # GENERIC machine description file # @@ -22,7 +22,7 @@ options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "GENERIC-$Revision: 1.309 $" +#ident "GENERIC-$Revision: 1.310 $" maxusers 64 # estimated number of users @@ -86,6 +86,9 @@ # AMD PowerNow! and Cool`n'Quiet technology options POWERNOW_K8 +# Intel Core's on-die Thermal sensor +coretemp* at cpu? + # Intel(R) On Demand Clock Modulation (aka ODCM) # options INTEL_ONDEMAND_CLOCKMOD @@ -465,9 +468,6 @@ piixpm* at pci? dev ? function ? # PIIX4 compatible PM controller iic* at piixpm? # SMBus on PIIX4 -# Intel Core's on-die Thermal sensor -options INTEL_CORETEMP - # Intel ICH SMBus controller ichsmb* at pci? dev ? function ? iic* at ichsmb? Index: src/sys/arch/i386/conf/ALL diff -u src/sys/arch/i386/conf/ALL:1.289 src/sys/arch/i386/conf/ALL:1.290 --- src/sys/arch/i386/conf/ALL:1.289 Sat Feb 19 13:52:27 2011 +++ src/sys/arch/i386/conf/ALL Sun Feb 20 13:42:45 2011 @@ -1,4 +1,4 @@ -# $NetBSD: ALL,v 1.289 2011/02/19 13:52:27 jmcneill Exp $ +# $NetBSD: ALL,v 1.290 2011/02/20 13:42:45 jruoho Exp $ # From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp # # ALL machine description file @@ -17,7 +17,7 @@ options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "ALL-$Revision: 1.289 $" +#ident "ALL-$Revision: 1.290 $" maxusers 64 # estimated number of users @@ -42,6 +42,9 @@ # VIA PadLock padlock0 at cpu0 +# Intel Core's on-die Thermal sensor +coretemp* at cpu? + # Intel(R) On Demand Clock Modulation (aka ODCM) options INTEL_ONDEMAND_CLOCKMOD @@ -685,9 +688,6 @@ alipm* at pci? dev ? function ? iic* at alipm? -# Intel Core's on-die Thermal sensor -options INTEL_CORETEMP - # VIA C7 Temperature sensor options VIA_C7TEMP Index: src/sys/arch/i386/conf/GENERIC diff -u src/sys/arch/i386/conf/GENERIC:1.1018 src/sys/arch/i386/conf/GENERIC:1.1019 --- src/sys/arch/i386/conf/GENERIC:1.1018 Sat Feb 19 13:52:27 2011 +++ src/sys/arch/i386/conf/GENERIC Sun Feb 20 13:42:45 2011 @@ -1,4 +1,4 @@ -# $NetBSD: GENERIC,v 1.1018 2011/02/19 13:52:27 jmcneill Exp $ +# $NetBSD: GENERIC,v 1.1019 2011/02/20 13:42:45 jruoho Exp $ # # GENERIC machine description file # @@ -22,7 +22,7 @@ options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "GENERIC-$Revision: 1.1018 $" +#ident "GENERIC-$Revision: 1.1019 $" maxusers 64 # estimated number of users @@ -47,6 +47,9 @@ # AMD PowerNow! and Cool`n'Quiet technology options POWERNOW_K8 +# Intel Core's on-die Thermal sensor +coretemp* at cpu? + # VIA PadLock #padlock0 at cpu0 @@ -643,9 +646,6 @@ alipm* at pci? dev ? function ? iic* at alipm? -# Intel Core's on-die Thermal sensor -options INTEL_CORETEMP - # VIA C7 Temperature sensor options VIA_C7TEMP Index: src/sys/arch/x86/conf/files.x86 diff -u src/sys/arch/x86/conf/files.x86:1.58 src/sys/arch/x86/conf/files.x86:1.59 --- src/sys/arch/x86/conf/files.x86:1.58 Sat Feb 19 13:52:28 2011 +++ src/sys/arch/x86/conf/files.x86 Sun Feb 20 13:42:45 2011 @@ -1,4 +1,4 @@ -# $NetBSD: files.x86,v 1.58 2011/02/19 13:52:28 jmcneill Exp $ +# $NetBSD: files.x86,v 1.59 2011/02/20 13:42:45 jruoho Exp $ # options for MP configuration through the MP spec defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI @@ -17,9 +17,6 @@ defflag ENHANCED_SPEEDSTEP defflag opt_est.h EST_FREQ_USERWRITE -# Intel On Die Temperature sensor -defflag opt_intel_coretemp.h INTEL_CORETEMP: sysmon_envsys - # Pentium 4+ Thermal Monitor ODCM (aka On Demand Clock Modulation) defflag opt_intel_odcm.h INTEL_ONDEMAND_CLOCKMOD @@ -44,6 +41,10 @@ attach cpu at cpubus file arch/x86/x86/cpu.c cpu +device coretemp: sysmon_envsys +attach coretemp at cpufeaturebus +file arch/x86/x86/coretemp.c coretemp + device padlock: opencrypto attach padlock at cpufeaturebus file arch/x86/x86/via_padlock.c padlock @@ -107,9 +108,6 @@ file arch/x86/x86/est.c enhanced_speedstep file arch/x86/x86/intel_busclock.c enhanced_speedstep -# Intel On-Die Temperature sensor -file arch/x86/x86/coretemp.c intel_coretemp - # VIA C7 Temperature sensor file arch/x86/x86/viac7temp.c via_c7temp Index: src/sys/arch/x86/include/cpu.h diff -u src/sys/arch/x86/include/cpu.h:1.28 src/sys/arch/x86/include/cpu.h:1.29 --- src/sys/arch/x86/include/cpu.h:1.28 Sun Feb 20 12:47:21 2011 +++ src/sys/arch/x86/include/cpu.h Sun Feb 20 13:42:45 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.28 2011/02/20 12:47:21 jmcneill Exp $ */ +/* $NetBSD: cpu.h,v 1.29 2011/02/20 13:42:45 jruoho Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -180,6 +180,7 @@ struct evcnt ci_ipi_events[X86_NIPI]; device_t ci_padlock; /* VIA PadLock private storage */ + device_t ci_tempsensor; /* Intel coretemp(4) or equivalent */ struct i386tss ci_tss; /* Per-cpu TSS; shared among LWPs */ char ci_iomap[IOMAPSIZE]; /* I/O Bitmap */ Index: src/sys/arch/x86/include/cpuvar.h diff -u src/sys/arch/x86/include/cpuvar.h:1.39 src/sys/arch/x86/include/cpuvar.h:1.40 --- src/sys/arch/x86/include/cpuvar.h:1.39 Sat Feb 19 13:52:28 2011 +++ src/sys/arch/x86/include/cpuvar.h Sun Feb 20 13:42:45 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: cpuvar.h,v 1.39 2011/02/19 13:52:28 jmcneill Exp $ */ +/* $NetBSD: cpuvar.h,v 1.40 2011/02/20 13:42:45 jruoho Exp $ */ /*- * Copyright (c) 2000, 2007 The NetBSD Foundation, Inc. @@ -96,7 +96,6 @@ #include "opt_multiprocessor.h" #include "opt_enhanced_speedstep.h" #ifndef XEN -#include "opt_intel_coretemp.h" #include "opt_intel_odcm.h" #include "opt_via_c7temp.h" #endif @@ -129,10 +128,6 @@ void viac7temp_register(struct cpu_info *); #endif -#ifdef INTEL_CORETEMP -void coretemp_register(struct cpu_info *); -#endif - #ifdef INTEL_ONDEMAND_CLOCKMOD void clockmod_init(void); #endif Index: src/sys/arch/x86/x86/coretemp.c diff -u src/sys/arch/x86/x86/coretemp.c:1.16 src/sys/arch/x86/x86/coretemp.c:1.17 --- src/sys/arch/x86/x86/coretemp.c:1.16 Wed Aug 25 05:07:43 2010 +++ src/sys/arch/x86/x86/coretemp.c Sun Feb 20 13:42:46 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: coretemp.c,v 1.16 2010/08/25 05:07:43 jruoho Exp $ */ +/* $NetBSD: coretemp.c,v 1.17 2011/02/20 13:42:46 jruoho Exp $ */ /*- * Copyright (c) 2007 Juan Romero Pardines. @@ -36,81 +36,170 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: coretemp.c,v 1.16 2010/08/25 05:07:43 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: coretemp.c,v 1.17 2011/02/20 13:42:46 jruoho Exp $"); #include <sys/param.h> #include <sys/device.h> -#include <sys/kmem.h> -#include <sys/xcall.h> #include <sys/cpu.h> +#include <sys/module.h> +#include <sys/xcall.h> #include <dev/sysmon/sysmonvar.h> #include <machine/cpuvar.h> -#include <machine/specialreg.h> #include <machine/cpufunc.h> +#include <machine/cputypes.h> +#include <machine/specialreg.h> + +static int coretemp_match(device_t, cfdata_t, void *); +static void coretemp_attach(device_t, device_t, void *); +static int coretemp_detach(device_t, int); +static int coretemp_quirks(struct cpu_info *); +static void coretemp_ext_config(device_t); +static void coretemp_refresh(struct sysmon_envsys *, envsys_data_t *); +static void coretemp_refresh_xcall(void *, void *); struct coretemp_softc { + device_t sc_dev; struct cpu_info *sc_ci; - struct sysmon_envsys *sc_sme; - envsys_data_t sc_sensor; - char sc_dvname[32]; - int sc_tjmax; + struct sysmon_envsys *sc_sme; + envsys_data_t sc_sensor; + int sc_tjmax; }; -static void coretemp_refresh(struct sysmon_envsys *, envsys_data_t *); -static void coretemp_refresh_xcall(void *, void *); +CFATTACH_DECL_NEW(coretemp, sizeof(struct coretemp_softc), + coretemp_match, coretemp_attach, coretemp_detach, NULL); -void -coretemp_register(struct cpu_info *ci) +static int +coretemp_match(device_t parent, cfdata_t cf, void *aux) { - struct coretemp_softc *sc; + struct cpufeature_attach_args *cfaa = aux; + struct cpu_info *ci = cfaa->ci; uint32_t regs[4]; - uint64_t msr; - int cpumodel, cpuextmodel, cpumask; - /* - * Don't attach on anything but the first SMT ID. - */ - if (ci->ci_smt_id != 0) - return; + if (strcmp(cfaa->name, "coretemp") != 0) + return 0; + + if (cpu_vendor != CPUVENDOR_INTEL || cpuid_level < 0x06) + return 0; /* - * CPUID 0x06 returns 1 if the processor has on-die thermal - * sensors. EBX[0:3] contains the number of sensors. + * CPUID 0x06 returns 1 if the processor + * has on-die thermal sensors. EBX[0:3] + * contains the number of sensors. */ x86_cpuid(0x06, regs); + if ((regs[0] & CPUID_DSPM_DTS) == 0) - return; + return 0; + + return coretemp_quirks(ci); +} + +static void +coretemp_attach(device_t parent, device_t self, void *aux) +{ + struct coretemp_softc *sc = device_private(self); + struct cpufeature_attach_args *cfaa = aux; + struct cpu_info *ci = cfaa->ci; + + sc->sc_ci = ci; + sc->sc_dev = self; + + aprint_naive("\n"); + aprint_normal(": Intel on-die thermal sensor\n"); + + sc->sc_sensor.units = ENVSYS_STEMP; + sc->sc_sensor.flags = ENVSYS_FMONCRITICAL; + + (void)pmf_device_register(self, NULL, NULL); + (void)snprintf(sc->sc_sensor.desc, sizeof(sc->sc_sensor.desc), + "%s temperature", device_xname(ci->ci_dev)); + + sc->sc_sme = sysmon_envsys_create(); + + if (sysmon_envsys_sensor_attach(sc->sc_sme, &sc->sc_sensor) != 0) + goto fail; + + sc->sc_sme->sme_cookie = sc; + sc->sc_sme->sme_name = device_xname(self); + sc->sc_sme->sme_refresh = coretemp_refresh; + + if (sysmon_envsys_register(sc->sc_sme) != 0) + goto fail; + + coretemp_ext_config(self); + + return; + +fail: + sysmon_envsys_destroy(sc->sc_sme); + sc->sc_sme = NULL; +} + +static int +coretemp_detach(device_t self, int flags) +{ + struct coretemp_softc *sc = device_private(self); + + if (sc->sc_sme != NULL) + sysmon_envsys_unregister(sc->sc_sme); + + return 0; +} + +static int +coretemp_quirks(struct cpu_info *ci) +{ + uint32_t mask, model; + uint64_t msr; + + mask = ci->ci_signature & 0x0F; + model = CPUID2MODEL(ci->ci_signature); + + /* + * Check if the MSR contains thermal + * reading valid bit, this avoid false + * positives on systems that fake up + * a compatible CPU that doesn't have + * access to these MSRs; such as VMWare. + */ + msr = rdmsr(MSR_THERM_STATUS); - sc = kmem_zalloc(sizeof(struct coretemp_softc), KM_NOSLEEP); - if (!sc) - return; - - (void)snprintf(sc->sc_dvname, sizeof(sc->sc_dvname), "coretemp%d", - (int)device_unit(ci->ci_dev)); - cpumodel = CPUID2MODEL(ci->ci_signature); - /* extended model */ - cpuextmodel = CPUID2EXTMODEL(ci->ci_signature); - cpumask = ci->ci_signature & 15; - - /* - * Check for errata AE18. - * "Processor Digital Thermal Sensor (DTS) Readout stops - * updating upon returning from C3/C4 state." + if ((msr & __BIT(31)) == 0) + return 0; + + /* + * Check for errata AE18, "Processor Digital + * Thermal Sensor (DTS) Readout stops updating + * upon returning from C3/C4 state". * * Adapted from the Linux coretemp driver. */ - if (cpumodel == 0xe && cpumask < 0xc) { + if (model == 0x0E && mask < 0x0C) { + msr = rdmsr(MSR_BIOS_SIGN); msr = msr >> 32; - if (msr < 0x39) { - aprint_debug("%s: not supported (Intel errata AE18), " - "try updating your BIOS\n", sc->sc_dvname); - goto bad; - } + + if (msr < 0x39) + return 0; } + return 1; +} + +void +coretemp_ext_config(device_t self) +{ + struct coretemp_softc *sc = device_private(self); + struct cpu_info *ci = sc->sc_ci; + uint32_t emodel, mask, model; + uint64_t msr; + + mask = ci->ci_signature & 0x0F; + model = CPUID2MODEL(ci->ci_signature); + emodel = CPUID2EXTMODEL(ci->ci_signature); + /* * On some Core 2 CPUs, there's an undocumented MSR that * can tell us if Tj(max) is 100 or 85. @@ -121,73 +210,31 @@ * MSR_IA32_EXT_CONFIG is NOT safe on all CPUs */ sc->sc_tjmax = 100; - if ((cpumodel == 0xf && cpumask >= 2) || - (cpumodel == 0xe && cpuextmodel != 1)) { - msr = rdmsr(MSR_IA32_EXT_CONFIG); - if (msr & (1 << 30)) - sc->sc_tjmax = 85; - } - /* - * Check if the MSR contains thermal reading valid bit, this - * avoid false positives on systems that fake up a compatible - * CPU that doesn't have access to these MSRs; such as VMWare. - */ - msr = rdmsr(MSR_THERM_STATUS); - if ((msr & __BIT(31)) == 0) - goto bad; - - sc->sc_ci = ci; + if ((model == 0x0F && mask >= 2) || (model == 0x0E && emodel != 1)) { - /* - * Only a temperature sensor and monitor for a critical state. - */ - sc->sc_sensor.units = ENVSYS_STEMP; - sc->sc_sensor.flags = ENVSYS_FMONCRITICAL; - (void)snprintf(sc->sc_sensor.desc, sizeof(sc->sc_sensor.desc), - "%s temperature", device_xname(ci->ci_dev)); - - sc->sc_sme = sysmon_envsys_create(); - if (sysmon_envsys_sensor_attach(sc->sc_sme, &sc->sc_sensor)) { - sysmon_envsys_destroy(sc->sc_sme); - goto bad; - } - - /* - * Hook into the system monitor. - */ - sc->sc_sme->sme_name = sc->sc_dvname; - sc->sc_sme->sme_cookie = sc; - sc->sc_sme->sme_refresh = coretemp_refresh; + msr = rdmsr(MSR_IA32_EXT_CONFIG); - if (sysmon_envsys_register(sc->sc_sme)) { - aprint_error("%s: unable to register with sysmon\n", - sc->sc_dvname); - sysmon_envsys_destroy(sc->sc_sme); - goto bad; + if (msr & (1 << 30)) + sc->sc_tjmax = 85; } - - return; - -bad: - kmem_free(sc, sizeof(struct coretemp_softc)); } static void coretemp_refresh(struct sysmon_envsys *sme, envsys_data_t *edata) { struct coretemp_softc *sc = sme->sme_cookie; - uint64_t where; + uint64_t xc; - where = xc_unicast(0, coretemp_refresh_xcall, sc, edata, sc->sc_ci); - xc_wait(where); + xc = xc_unicast(0, coretemp_refresh_xcall, sc, edata, sc->sc_ci); + xc_wait(xc); } static void coretemp_refresh_xcall(void *arg0, void *arg1) { - struct coretemp_softc *sc = (struct coretemp_softc *)arg0; - envsys_data_t *edata = (envsys_data_t *)arg1; + struct coretemp_softc *sc = arg0; + envsys_data_t *edata = arg1; uint64_t msr; /* @@ -205,17 +252,17 @@ /* * Check for Thermal Status and Thermal Status Log. */ - if ((msr & 0x3) == 0x3) - aprint_debug("%s: PROCHOT asserted\n", sc->sc_dvname); + if ((msr & 0x03) == 0x03) + aprint_debug_dev(sc->sc_dev, "PROCHOT asserted\n"); /* - * Bit 31 contains "Reading valid" + * Bit 31 contains "Reading valid". */ - if (((msr >> 31) & 0x1) == 1) { + if (((msr >> 31) & 0x01) == 1) { /* * Starting on bit 16 and ending on bit 22. */ - edata->value_cur = sc->sc_tjmax - ((msr >> 16) & 0x7f); + edata->value_cur = sc->sc_tjmax - ((msr >> 16) & 0x7F); /* * Convert to mK. */ @@ -236,6 +283,35 @@ * If we reach a critical level, send a critical event to * powerd(8) (if running). */ - if (((msr >> 4) & 0x3) == 0x3) + if (((msr >> 4) & 0x03) == 0x03) edata->state = ENVSYS_SCRITICAL; } + +MODULE(MODULE_CLASS_DRIVER, coretemp, NULL); + +#ifdef _MODULE +#include "ioconf.c" +#endif + +static int +coretemp_modcmd(modcmd_t cmd, void *aux) +{ + int error = 0; + + switch (cmd) { + case MODULE_CMD_INIT: +#ifdef _MODULE + error = config_init_component(cfdriver_ioconf_coretemp, + cfattach_ioconf_coretemp, cfdata_ioconf_coretemp); +#endif + return error; + case MODULE_CMD_FINI: +#ifdef _MODULE + error = config_fini_component(cfdriver_ioconf_coretemp, + cfattach_ioconf_coretemp, cfdata_ioconf_coretemp); +#endif + return error; + default: + return ENOTTY; + } +} Index: src/sys/arch/x86/x86/cpu.c diff -u src/sys/arch/x86/x86/cpu.c:1.81 src/sys/arch/x86/x86/cpu.c:1.82 --- src/sys/arch/x86/x86/cpu.c:1.81 Sat Feb 19 13:52:28 2011 +++ src/sys/arch/x86/x86/cpu.c Sun Feb 20 13:42:46 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.81 2011/02/19 13:52:28 jmcneill Exp $ */ +/* $NetBSD: cpu.c,v 1.82 2011/02/20 13:42:46 jruoho Exp $ */ /*- * Copyright (c) 2000, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.81 2011/02/19 13:52:28 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.82 2011/02/20 13:42:46 jruoho Exp $"); #include "opt_ddb.h" #include "opt_mpbios.h" /* for MPDEBUG */ @@ -463,11 +463,18 @@ cfaa.ci = ci; if (ifattr_match(ifattr, "cpufeaturebus")) { + if (ci->ci_padlock == NULL) { cfaa.name = "padlock"; ci->ci_padlock = config_found_ia(self, "cpufeaturebus", &cfaa, NULL); } + + if (ci->ci_tempsensor == NULL) { + cfaa.name = "coretemp"; + ci->ci_tempsensor = config_found_ia(self, + "cpufeaturebus", &cfaa, NULL); + } } return 0; @@ -479,6 +486,9 @@ struct cpu_softc *sc = device_private(self); struct cpu_info *ci = sc->sc_info; + if (ci->ci_tempsensor == child) + ci->ci_tempsensor = NULL; + if (ci->ci_padlock == child) ci->ci_padlock = NULL; } Index: src/sys/arch/x86/x86/identcpu.c diff -u src/sys/arch/x86/x86/identcpu.c:1.23 src/sys/arch/x86/x86/identcpu.c:1.24 --- src/sys/arch/x86/x86/identcpu.c:1.23 Sat Feb 19 13:52:28 2011 +++ src/sys/arch/x86/x86/identcpu.c Sun Feb 20 13:42:46 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: identcpu.c,v 1.23 2011/02/19 13:52:28 jmcneill Exp $ */ +/* $NetBSD: identcpu.c,v 1.24 2011/02/20 13:42:46 jruoho Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -30,11 +30,10 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: identcpu.c,v 1.23 2011/02/19 13:52:28 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: identcpu.c,v 1.24 2011/02/20 13:42:46 jruoho Exp $"); #include "opt_enhanced_speedstep.h" #include "opt_intel_odcm.h" -#include "opt_intel_coretemp.h" #include "opt_via_c7temp.h" #include "opt_powernow_k8.h" #include "opt_xen.h" @@ -810,11 +809,6 @@ } #endif /* ENHANCED_SPEEDSTEP */ -#ifdef INTEL_CORETEMP - if (cpu_vendor == CPUVENDOR_INTEL && cpuid_level >= 0x06) - coretemp_register(ci); -#endif - #ifdef VIA_C7TEMP if (cpu_vendor == CPUVENDOR_IDT && CPUID2FAMILY(ci->ci_signature) == 6 &&