summaryrefslogtreecommitdiffstats
path: root/sys/x86/include/acpica_machdep.h
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-05-09 12:28:48 +0000
committerkib <kib@FreeBSD.org>2015-05-09 12:28:48 +0000
commit6006bf3a7dfd2f9b0bf0be6700967a1ab993b8a0 (patch)
tree4fbee808b24332d8ef01cb71eaaf6ca38551cfb9 /sys/x86/include/acpica_machdep.h
parent4f7fc385cadf246ec334db975b16c0e1743e87da (diff)
downloadFreeBSD-src-6006bf3a7dfd2f9b0bf0be6700967a1ab993b8a0.zip
FreeBSD-src-6006bf3a7dfd2f9b0bf0be6700967a1ab993b8a0.tar.gz
If x86 CPU implementation of the MWAIT instruction reasonably
interacts with interrupts, query ACPI and use MWAIT for entrance into Cx sleep states. Support C1 "I/O then halt" mode. See Intel' document 302223-007 "Intelб╝ Processor Vendor-Specific ACPI Interface Specification" for description. Move the acpi_cpu_c1() function into x86/cpu_machdep.c and use it instead of inlining "sti; hlt" sequence in several places. In the acpi(4) man page, besides documenting the dev.cpu.N.cx_methods sysctl, correct the names for dev.cpu.N.{cx_usage,cx_lowest,cx_supported} sysctls. Both jkim and avg have some other patches implementing the mwait functionality; this work is unrelated. Linux does not rely on the ACPI to provide correct tables describing Cx modes. Instead, the driver has pre-defined knowledge of the CPU models, it was supplied by Intel. Tested by: pho (previous versions) Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/x86/include/acpica_machdep.h')
-rw-r--r--sys/x86/include/acpica_machdep.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/x86/include/acpica_machdep.h b/sys/x86/include/acpica_machdep.h
index 46080c0..136285c 100644
--- a/sys/x86/include/acpica_machdep.h
+++ b/sys/x86/include/acpica_machdep.h
@@ -74,6 +74,7 @@ enum intr_polarity;
void acpi_SetDefaultIntrModel(int model);
void acpi_cpu_c1(void);
+void acpi_cpu_idle_mwait(uint32_t mwait_hint);
void *acpi_map_table(vm_paddr_t pa, const char *sig);
void acpi_unmap_table(void *table);
vm_paddr_t acpi_find_table(const char *sig);
OpenPOWER on IntegriCloud