Module Name: src Committed By: jruoho Date: Sun Feb 27 17:10:34 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/dev/acpi: acpi.c acpi_cpu.c acpi_cpu_pstate.c files.acpi src/sys/modules/acpicpu: acpicpu.ioconf Log Message: Move acpicpu(4) from "acpinodebus" to "cpufeaturebus". To generate a diff of this commit: cvs rdiff -u -r1.314 -r1.315 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.298 -r1.299 src/sys/arch/i386/conf/ALL cvs rdiff -u -r1.1023 -r1.1024 src/sys/arch/i386/conf/GENERIC cvs rdiff -u -r1.62 -r1.63 src/sys/arch/x86/conf/files.x86 cvs rdiff -u -r1.239 -r1.240 src/sys/dev/acpi/acpi.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/acpi/acpi_cpu.c cvs rdiff -u -r1.40 -r1.41 src/sys/dev/acpi/acpi_cpu_pstate.c cvs rdiff -u -r1.87 -r1.88 src/sys/dev/acpi/files.acpi cvs rdiff -u -r1.1 -r1.2 src/sys/modules/acpicpu/acpicpu.ioconf 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.314 src/sys/arch/amd64/conf/GENERIC:1.315 --- src/sys/arch/amd64/conf/GENERIC:1.314 Thu Feb 24 10:56:00 2011 +++ src/sys/arch/amd64/conf/GENERIC Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -# $NetBSD: GENERIC,v 1.314 2011/02/24 10:56:00 jruoho Exp $ +# $NetBSD: GENERIC,v 1.315 2011/02/27 17:10:33 jruoho Exp $ # # GENERIC machine description file # @@ -22,7 +22,7 @@ options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "GENERIC-$Revision: 1.314 $" +#ident "GENERIC-$Revision: 1.315 $" maxusers 64 # estimated number of users @@ -79,6 +79,7 @@ options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel # CPU features +#acpicpu* at cpu? # ACPI CPU (including frequency scaling) coretemp* at cpu? # Intel on-die thermal sensor est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI) powernow0 at cpu0 # AMD PowerNow! and Cool'n'Quiet (non-ACPI) @@ -279,7 +280,6 @@ acpiacad* at acpi? # ACPI AC Adapter acpibat* at acpi? # ACPI Battery acpibut* at acpi? # ACPI Button -#acpicpu* at acpi? # ACPI CPU acpidalb* at acpi? # Direct Application Launch Button acpiec* at acpi? # ACPI Embedded Controller (late) acpiecdt* at acpi? # ACPI Embedded Controller (early) Index: src/sys/arch/i386/conf/ALL diff -u src/sys/arch/i386/conf/ALL:1.298 src/sys/arch/i386/conf/ALL:1.299 --- src/sys/arch/i386/conf/ALL:1.298 Sat Feb 26 18:07:30 2011 +++ src/sys/arch/i386/conf/ALL Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -# $NetBSD: ALL,v 1.298 2011/02/26 18:07:30 ahoka Exp $ +# $NetBSD: ALL,v 1.299 2011/02/27 17:10:33 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.298 $" +#ident "ALL-$Revision: 1.299 $" maxusers 64 # estimated number of users @@ -30,6 +30,7 @@ options PAE # PAE mode (36 bits physical addressing) # CPU features +acpicpu* at cpu? # ACPI CPU (including frequency scaling) coretemp* at cpu? # Intel on-die thermal sensor est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI) padlock0 at cpu0 # VIA PadLock @@ -356,7 +357,6 @@ acpiacad* at acpi? # ACPI AC Adapter acpibat* at acpi? # ACPI Battery acpibut* at acpi? # ACPI Button -acpicpu* at acpi? # ACPI CPU acpidalb* at acpi? # ACPI Direct Application Launch Button acpiec* at acpi? # ACPI Embedded Controller (late) acpiecdt* at acpi? # ACPI Embedded Controller (early) Index: src/sys/arch/i386/conf/GENERIC diff -u src/sys/arch/i386/conf/GENERIC:1.1023 src/sys/arch/i386/conf/GENERIC:1.1024 --- src/sys/arch/i386/conf/GENERIC:1.1023 Thu Feb 24 13:58:39 2011 +++ src/sys/arch/i386/conf/GENERIC Sun Feb 27 17:10:34 2011 @@ -1,4 +1,4 @@ -# $NetBSD: GENERIC,v 1.1023 2011/02/24 13:58:39 jruoho Exp $ +# $NetBSD: GENERIC,v 1.1024 2011/02/27 17:10:34 jruoho Exp $ # # GENERIC machine description file # @@ -22,7 +22,7 @@ options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "GENERIC-$Revision: 1.1023 $" +#ident "GENERIC-$Revision: 1.1024 $" maxusers 64 # estimated number of users @@ -38,6 +38,7 @@ #options PAE # PAE mode (36 bits physical addressing) # CPU features +#acpicpu* at cpu? # ACPI CPU (including frequency scaling) coretemp* at cpu? # Intel on-die thermal sensor est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI) #padlock0 at cpu0 # VIA PadLock @@ -348,7 +349,6 @@ acpiacad* at acpi? # ACPI AC Adapter acpibat* at acpi? # ACPI Battery acpibut* at acpi? # ACPI Button -#acpicpu* at acpi? # ACPI CPU acpidalb* at acpi? # ACPI Direct Application Launch Button acpiec* at acpi? # ACPI Embedded Controller (late) acpiecdt* at acpi? # ACPI Embedded Controller (early) Index: src/sys/arch/x86/conf/files.x86 diff -u src/sys/arch/x86/conf/files.x86:1.62 src/sys/arch/x86/conf/files.x86:1.63 --- src/sys/arch/x86/conf/files.x86:1.62 Thu Feb 24 13:58:39 2011 +++ src/sys/arch/x86/conf/files.x86 Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -# $NetBSD: files.x86,v 1.62 2011/02/24 13:58:39 jruoho Exp $ +# $NetBSD: files.x86,v 1.63 2011/02/27 17:10:33 jruoho Exp $ # options for MP configuration through the MP spec defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI @@ -31,6 +31,14 @@ attach cpu at cpubus file arch/x86/x86/cpu.c cpu +device acpicpu +attach acpicpu at cpufeaturebus +file dev/acpi/acpi_cpu.c acpi & acpicpu +file dev/acpi/acpi_cpu_cstate.c acpi & acpicpu +file dev/acpi/acpi_cpu_pstate.c acpi & acpicpu +file dev/acpi/acpi_cpu_tstate.c acpi & acpicpu +file arch/x86/acpi/acpi_cpu_md.c acpi & acpicpu + device coretemp: sysmon_envsys attach coretemp at cpufeaturebus file arch/x86/x86/coretemp.c coretemp @@ -96,7 +104,6 @@ file arch/x86/x86/acpi_machdep.c acpi file arch/x86/acpi/acpi_wakeup.c acpi -file arch/x86/acpi/acpi_cpu_md.c acpi & acpicpu file arch/x86/isa/isa_machdep.c isa Index: src/sys/dev/acpi/acpi.c diff -u src/sys/dev/acpi/acpi.c:1.239 src/sys/dev/acpi/acpi.c:1.240 --- src/sys/dev/acpi/acpi.c:1.239 Sun Feb 20 16:24:54 2011 +++ src/sys/dev/acpi/acpi.c Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.239 2011/02/20 16:24:54 jruoho Exp $ */ +/* $NetBSD: acpi.c,v 1.240 2011/02/27 17:10:33 jruoho Exp $ */ /*- * Copyright (c) 2003, 2007 The NetBSD Foundation, Inc. @@ -100,7 +100,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.239 2011/02/20 16:24:54 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.240 2011/02/27 17:10:33 jruoho Exp $"); #include "opt_acpi.h" #include "opt_pcifixup.h" @@ -134,7 +134,6 @@ * Machine-dependent code may wish to skip other steps (such as attaching * subsystems that ACPI supercedes) when ACPI is active. */ -uint32_t acpi_cpus = 0; int acpi_active = 0; int acpi_suspended = 0; int acpi_force_load = 0; @@ -161,6 +160,7 @@ */ static const char * const acpi_ignored_ids[] = { #if defined(i386) || defined(x86_64) + "ACPI0007", /* ACPI CPUs do not attach to acpi(4) */ "PNP0000", /* AT interrupt controller is handled internally */ "PNP0200", /* AT DMA controller is handled internally */ "PNP0A??", /* PCI Busses are handled internally */ @@ -804,7 +804,6 @@ static void acpi_rescan_nodes(struct acpi_softc *sc) { - const uint32_t ncpus = acpi_md_ncpus(); struct acpi_attach_args aa; struct acpi_devnode *ad; ACPI_DEVICE_INFO *di; @@ -841,7 +840,7 @@ if (di->Type == ACPI_TYPE_POWER) continue; - if (di->Type == ACPI_TYPE_PROCESSOR && acpi_cpus >= ncpus) + if (di->Type == ACPI_TYPE_PROCESSOR) continue; if (acpi_match_hid(di, acpi_early_ids) != 0) Index: src/sys/dev/acpi/acpi_cpu.c diff -u src/sys/dev/acpi/acpi_cpu.c:1.29 src/sys/dev/acpi/acpi_cpu.c:1.30 --- src/sys/dev/acpi/acpi_cpu.c:1.29 Fri Feb 25 19:55:06 2011 +++ src/sys/dev/acpi/acpi_cpu.c Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_cpu.c,v 1.29 2011/02/25 19:55:06 jruoho Exp $ */ +/* $NetBSD: acpi_cpu.c,v 1.30 2011/02/27 17:10:33 jruoho Exp $ */ /*- * Copyright (c) 2010, 2011 Jukka Ruohonen <jruoho...@iki.fi> @@ -27,7 +27,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_cpu.c,v 1.29 2011/02/25 19:55:06 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_cpu.c,v 1.30 2011/02/27 17:10:33 jruoho Exp $"); #include <sys/param.h> #include <sys/cpu.h> @@ -35,7 +35,6 @@ #include <sys/kmem.h> #include <sys/module.h> #include <sys/mutex.h> -#include <sys/once.h> #include <sys/sysctl.h> #include <dev/acpi/acpireg.h> @@ -43,6 +42,7 @@ #include <dev/acpi/acpi_cpu.h> #include <machine/acpi_machdep.h> +#include <machine/cpuvar.h> #define _COMPONENT ACPI_BUS_COMPONENT ACPI_MODULE_NAME ("acpi_cpu") @@ -52,14 +52,14 @@ static int acpicpu_detach(device_t, int); static int acpicpu_once_attach(void); static int acpicpu_once_detach(void); -static void acpicpu_prestart(device_t); static void acpicpu_start(device_t); -static void acpicpu_debug_print(struct acpicpu_softc *); +static void acpicpu_debug_print(device_t); static const char *acpicpu_debug_print_dep(uint32_t); static void acpicpu_sysctl(device_t); -static int acpicpu_object(ACPI_HANDLE, struct acpicpu_object *); -static struct cpu_info *acpicpu_ci(uint32_t); +static ACPI_STATUS acpicpu_object(ACPI_HANDLE, struct acpicpu_object *); +static int acpicpu_find(struct cpu_info *, + struct acpi_devnode **); static uint32_t acpicpu_cap(struct acpicpu_softc *); static ACPI_STATUS acpicpu_cap_pdc(struct acpicpu_softc *, uint32_t); static ACPI_STATUS acpicpu_cap_osc(struct acpicpu_softc *, @@ -68,7 +68,7 @@ static bool acpicpu_suspend(device_t, const pmf_qual_t *); static bool acpicpu_resume(device_t, const pmf_qual_t *); -extern uint32_t acpi_cpus; +static uint32_t acpicpu_count = 0; struct acpicpu_softc **acpicpu_sc = NULL; static struct sysctllog *acpicpu_log = NULL; static bool acpicpu_dynamic = true; @@ -85,89 +85,90 @@ static int acpicpu_match(device_t parent, cfdata_t match, void *aux) { - struct acpi_attach_args *aa = aux; - struct acpicpu_object ao; - int rv; + struct cpufeature_attach_args *cfaa = aux; - if (aa->aa_node->ad_type != ACPI_TYPE_PROCESSOR) + if (acpi_softc == NULL) return 0; - if (acpi_match_hid(aa->aa_node->ad_devinfo, acpicpu_hid) != 0) - return 1; - - rv = acpicpu_object(aa->aa_node->ad_handle, &ao); - - if (rv != 0 || acpicpu_ci(ao.ao_procid) == NULL) + if (strcmp(cfaa->name, "frequency") != 0) return 0; - return 1; + return acpicpu_find(cfaa->ci, NULL); } static void acpicpu_attach(device_t parent, device_t self, void *aux) { struct acpicpu_softc *sc = device_private(self); - struct acpi_attach_args *aa = aux; - static ONCE_DECL(once_attach); + struct cpufeature_attach_args *cfaa = aux; + struct cpu_info *ci = cfaa->ci; cpuid_t id; int rv; - rv = acpicpu_object(aa->aa_node->ad_handle, &sc->sc_object); - - if (rv != 0) - return; - - rv = RUN_ONCE(&once_attach, acpicpu_once_attach); - - if (rv != 0) - return; - + sc->sc_ci = ci; sc->sc_dev = self; sc->sc_cold = true; - sc->sc_node = aa->aa_node; + sc->sc_node = NULL; + + rv = acpicpu_find(ci, &sc->sc_node); - sc->sc_ci = acpicpu_ci(sc->sc_object.ao_procid); + if (rv == 0) { + aprint_normal(": failed to match processor\n"); + return; + } - if (sc->sc_ci == NULL) { - aprint_error(": invalid CPU\n"); + if (acpicpu_once_attach() != 0) { + aprint_normal(": failed to initialize\n"); return; } + KASSERT(acpi_softc != NULL); + KASSERT(acpicpu_sc != NULL); + KASSERT(sc->sc_node != NULL); + id = sc->sc_ci->ci_acpiid; if (acpicpu_sc[id] != NULL) { - aprint_error(": already attached\n"); + aprint_normal(": already attached\n"); return; } aprint_naive("\n"); aprint_normal(": ACPI CPU\n"); - acpi_cpus++; + rv = acpicpu_object(sc->sc_node->ad_handle, &sc->sc_object); + + if (ACPI_FAILURE(rv)) + aprint_verbose_dev(self, "failed to obtain CPU object\n"); + + acpicpu_count++; acpicpu_sc[id] = sc; sc->sc_cap = acpicpu_cap(sc); sc->sc_ncpus = acpi_md_ncpus(); - sc->sc_flags |= acpicpu_md_flags(); + sc->sc_flags = acpicpu_md_flags(); + KASSERT(acpicpu_count <= sc->sc_ncpus); + KASSERT(sc->sc_node->ad_device == NULL); + + sc->sc_node->ad_device = self; mutex_init(&sc->sc_mtx, MUTEX_DEFAULT, IPL_NONE); acpicpu_cstate_attach(self); acpicpu_pstate_attach(self); acpicpu_tstate_attach(self); - (void)config_defer(self, acpicpu_prestart); + acpicpu_debug_print(self); + + (void)config_interrupts(self, acpicpu_start); (void)acpi_register_notify(sc->sc_node, acpicpu_notify); (void)pmf_device_register(self, acpicpu_suspend, acpicpu_resume); - - acpicpu_debug_print(sc); } static int acpicpu_detach(device_t self, int flags) { struct acpicpu_softc *sc = device_private(self); - static ONCE_DECL(once_detach); int rv = 0; sc->sc_cold = true; @@ -191,13 +192,11 @@ if (rv != 0) return rv; - rv = RUN_ONCE(&once_detach, acpicpu_once_detach); - - if (rv != 0) - return rv; - mutex_destroy(&sc->sc_mtx); - acpi_cpus--; + sc->sc_node->ad_device = NULL; + + acpicpu_count--; + acpicpu_once_detach(); return 0; } @@ -208,6 +207,12 @@ struct acpicpu_softc *sc; unsigned int i; + if (acpicpu_count != 0) + return 0; + + KASSERT(acpicpu_sc == NULL); + KASSERT(acpicpu_log == NULL); + acpicpu_sc = kmem_zalloc(maxcpus * sizeof(*sc), KM_SLEEP); if (acpicpu_sc == NULL) @@ -224,45 +229,43 @@ { struct acpicpu_softc *sc; - if (acpicpu_sc != NULL) - kmem_free(acpicpu_sc, maxcpus * sizeof(*sc)); + if (acpicpu_count != 0) + return EDEADLK; if (acpicpu_log != NULL) sysctl_teardown(&acpicpu_log); + if (acpicpu_sc != NULL) + kmem_free(acpicpu_sc, maxcpus * sizeof(*sc)); + return 0; } static void -acpicpu_prestart(device_t self) +acpicpu_start(device_t self) { struct acpicpu_softc *sc = device_private(self); - static bool once = false; + static uint32_t count = 0; - if (once != false) { + /* + * Run the state-specific initialization routines. These + * must run only once, after interrupts have been enabled, + * all CPUs are running, and all ACPI CPUs have attached. + */ + if (++count != acpicpu_count || acpicpu_count != sc->sc_ncpus) { sc->sc_cold = false; return; } - once = true; - - (void)config_interrupts(self, acpicpu_start); -} - -static void -acpicpu_start(device_t self) -{ - struct acpicpu_softc *sc = device_private(self); - /* - * Run the state-specific initialization - * routines. These should be called only - * once, after interrupts are enabled and - * all ACPI CPUs have attached. + * Set the last ACPI CPU as non-cold + * only after C-states are enabled. */ if ((sc->sc_flags & ACPICPU_FLAG_C) != 0) acpicpu_cstate_start(self); + sc->sc_cold = false; + if ((sc->sc_flags & ACPICPU_FLAG_P) != 0) acpicpu_pstate_start(self); @@ -270,11 +273,7 @@ acpicpu_tstate_start(self); acpicpu_sysctl(self); - - aprint_debug_dev(sc->sc_dev, "ACPI CPUs started (cap " - "0x%02x, flags 0x%06x)\n", sc->sc_cap, sc->sc_flags); - - sc->sc_cold = false; + aprint_debug_dev(self, "ACPI CPUs started\n"); } static void @@ -283,6 +282,8 @@ const struct sysctlnode *node; int err; + KASSERT(acpicpu_log == NULL); + err = sysctl_createv(&acpicpu_log, 0, NULL, &node, CTLFLAG_PERMANENT, CTLTYPE_NODE, "hw", NULL, NULL, 0, NULL, 0, CTL_HW, CTL_EOL); @@ -326,7 +327,7 @@ aprint_error_dev(self, "failed to initialize sysctl (err %d)\n", err); } -static int +static ACPI_STATUS acpicpu_object(ACPI_HANDLE hdl, struct acpicpu_object *ao) { ACPI_OBJECT *obj; @@ -336,7 +337,7 @@ rv = acpi_eval_struct(hdl, NULL, &buf); if (ACPI_FAILURE(rv)) - return 1; + goto out; obj = buf.Pointer; @@ -362,22 +363,53 @@ if (buf.Pointer != NULL) ACPI_FREE(buf.Pointer); - return ACPI_FAILURE(rv) ? 1 : 0; + return rv; } -static struct cpu_info * -acpicpu_ci(uint32_t id) +static int +acpicpu_find(struct cpu_info *ci, struct acpi_devnode **ptr) { - CPU_INFO_ITERATOR cii; - struct cpu_info *ci; + struct acpi_softc *sc = acpi_softc; + struct acpicpu_object ao; + struct acpi_devnode *ad; + ACPI_INTEGER val; + ACPI_STATUS rv; + + if (sc == NULL || acpi_active == 0) + return 0; + + /* + * CPUs are declared in the ACPI namespace + * either as a Processor() or as a Device(). + * In both cases the MADT entries are used + * for the match (see ACPI 4.0, section 8.4). + */ + SIMPLEQ_FOREACH(ad, &sc->ad_head, ad_list) { + + if (ad->ad_type == ACPI_TYPE_PROCESSOR) { - for (CPU_INFO_FOREACH(cii, ci)) { + rv = acpicpu_object(ad->ad_handle, &ao); - if (id == ci->ci_acpiid) - return ci; + if (ACPI_SUCCESS(rv) && ci->ci_acpiid == ao.ao_procid) + goto out; + } + + if (acpi_match_hid(ad->ad_devinfo, acpicpu_hid) != 0) { + + rv = acpi_eval_integer(ad->ad_handle, "_UID", &val); + + if (ACPI_SUCCESS(rv) && ci->ci_acpiid == val) + goto out; + } } - return NULL; + return 0; + +out: + if (ptr != NULL) + *ptr = ad; + + return 10; /* Beat est(4) and powernow(4). */ } static uint32_t @@ -638,10 +670,16 @@ } static void -acpicpu_debug_print(struct acpicpu_softc *sc) +acpicpu_debug_print(device_t self) { + struct acpicpu_softc *sc = device_private(self); + struct cpu_info *ci = sc->sc_ci; struct acpicpu_dep *dep; + aprint_debug_dev(sc->sc_dev, "id %u, lapic id %u, " + "cap 0x%04x, flags 0x%08x\n", ci->ci_acpiid, + (uint32_t)ci->ci_cpuid, sc->sc_cap, sc->sc_flags); + if ((sc->sc_flags & ACPICPU_FLAG_C_DEP) != 0) { dep = &sc->sc_cstate_dep; Index: src/sys/dev/acpi/acpi_cpu_pstate.c diff -u src/sys/dev/acpi/acpi_cpu_pstate.c:1.40 src/sys/dev/acpi/acpi_cpu_pstate.c:1.41 --- src/sys/dev/acpi/acpi_cpu_pstate.c:1.40 Fri Feb 25 19:55:06 2011 +++ src/sys/dev/acpi/acpi_cpu_pstate.c Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_cpu_pstate.c,v 1.40 2011/02/25 19:55:06 jruoho Exp $ */ +/* $NetBSD: acpi_cpu_pstate.c,v 1.41 2011/02/27 17:10:33 jruoho Exp $ */ /*- * Copyright (c) 2010, 2011 Jukka Ruohonen <jruoho...@iki.fi> @@ -27,7 +27,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_cpu_pstate.c,v 1.40 2011/02/25 19:55:06 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_cpu_pstate.c,v 1.41 2011/02/27 17:10:33 jruoho Exp $"); #include <sys/param.h> #include <sys/evcnt.h> @@ -271,7 +271,6 @@ ps = &sc->sc_pstate[i]; if (ps->ps_freq != 0) { - sc->sc_cold = false; rv = acpicpu_pstate_set(sc, ps->ps_freq); break; } Index: src/sys/dev/acpi/files.acpi diff -u src/sys/dev/acpi/files.acpi:1.87 src/sys/dev/acpi/files.acpi:1.88 --- src/sys/dev/acpi/files.acpi:1.87 Sun Feb 20 08:31:46 2011 +++ src/sys/dev/acpi/files.acpi Sun Feb 27 17:10:33 2011 @@ -1,4 +1,4 @@ -# $NetBSD: files.acpi,v 1.87 2011/02/20 08:31:46 jruoho Exp $ +# $NetBSD: files.acpi,v 1.88 2011/02/27 17:10:33 jruoho Exp $ include "dev/acpi/acpica/files.acpica" @@ -59,14 +59,6 @@ attach acpibat at acpinodebus file dev/acpi/acpi_bat.c acpibat -# ACPI CPU -device acpicpu -attach acpicpu at acpinodebus -file dev/acpi/acpi_cpu.c acpicpu -file dev/acpi/acpi_cpu_cstate.c acpicpu -file dev/acpi/acpi_cpu_pstate.c acpicpu -file dev/acpi/acpi_cpu_tstate.c acpicpu - # ACPI Display device acpivga {} attach acpivga at acpinodebus Index: src/sys/modules/acpicpu/acpicpu.ioconf diff -u src/sys/modules/acpicpu/acpicpu.ioconf:1.1 src/sys/modules/acpicpu/acpicpu.ioconf:1.2 --- src/sys/modules/acpicpu/acpicpu.ioconf:1.1 Wed Feb 16 08:35:52 2011 +++ src/sys/modules/acpicpu/acpicpu.ioconf Sun Feb 27 17:10:33 2011 @@ -1,10 +1,10 @@ -# $NetBSD: acpicpu.ioconf,v 1.1 2011/02/16 08:35:52 jruoho Exp $ +# $NetBSD: acpicpu.ioconf,v 1.2 2011/02/27 17:10:33 jruoho Exp $ ioconf acpicpu include "conf/files" -include "dev/acpi/files.acpi" +include "arch/x86/conf/files.x86" -pseudo-root acpi* +pseudo-root cpufeaturebus* -acpicpu* at acpi? +acpicpu* at cpufeaturebus?