diff options
author | Len Brown <len.brown@intel.com> | 2009-01-09 03:37:48 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-01-09 03:37:48 -0500 |
commit | d0302bc62af7983040ea1cd1b5dd2b36e1a6a509 (patch) | |
tree | ef45618ae057e21fff7c82190939fe5f4466cf06 /arch/x86/kernel/acpi | |
parent | 106ad8d6b0a7c1a597fab56ec692c39f553fabbc (diff) | |
parent | 237889bf0a62f1399fb2ba0c2a259e6a96597131 (diff) |
Merge branch 'misc' into release
Conflicts:
include/acpi/acpixf.h
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/x86/kernel/acpi')
-rw-r--r-- | arch/x86/kernel/acpi/boot.c | 6 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/cstate.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index de8ce79dd881..39ae3d0e3a4a 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -47,7 +47,7 @@ | |||
47 | #endif | 47 | #endif |
48 | 48 | ||
49 | static int __initdata acpi_force = 0; | 49 | static int __initdata acpi_force = 0; |
50 | 50 | u32 acpi_rsdt_forced; | |
51 | #ifdef CONFIG_ACPI | 51 | #ifdef CONFIG_ACPI |
52 | int acpi_disabled = 0; | 52 | int acpi_disabled = 0; |
53 | #else | 53 | #else |
@@ -1794,6 +1794,10 @@ static int __init parse_acpi(char *arg) | |||
1794 | disable_acpi(); | 1794 | disable_acpi(); |
1795 | acpi_ht = 1; | 1795 | acpi_ht = 1; |
1796 | } | 1796 | } |
1797 | /* acpi=rsdt use RSDT instead of XSDT */ | ||
1798 | else if (strcmp(arg, "rsdt") == 0) { | ||
1799 | acpi_rsdt_forced = 1; | ||
1800 | } | ||
1797 | /* "acpi=noirq" disables ACPI interrupt routing */ | 1801 | /* "acpi=noirq" disables ACPI interrupt routing */ |
1798 | else if (strcmp(arg, "noirq") == 0) { | 1802 | else if (strcmp(arg, "noirq") == 0) { |
1799 | acpi_noirq_set(); | 1803 | acpi_noirq_set(); |
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c index c2502eb9aa83..a4805b3b4095 100644 --- a/arch/x86/kernel/acpi/cstate.c +++ b/arch/x86/kernel/acpi/cstate.c | |||
@@ -56,6 +56,7 @@ static struct cstate_entry *cpu_cstate_entry; /* per CPU ptr */ | |||
56 | static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; | 56 | static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; |
57 | 57 | ||
58 | #define MWAIT_SUBSTATE_MASK (0xf) | 58 | #define MWAIT_SUBSTATE_MASK (0xf) |
59 | #define MWAIT_CSTATE_MASK (0xf) | ||
59 | #define MWAIT_SUBSTATE_SIZE (4) | 60 | #define MWAIT_SUBSTATE_SIZE (4) |
60 | 61 | ||
61 | #define CPUID_MWAIT_LEAF (5) | 62 | #define CPUID_MWAIT_LEAF (5) |
@@ -98,7 +99,8 @@ int acpi_processor_ffh_cstate_probe(unsigned int cpu, | |||
98 | cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx); | 99 | cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx); |
99 | 100 | ||
100 | /* Check whether this particular cx_type (in CST) is supported or not */ | 101 | /* Check whether this particular cx_type (in CST) is supported or not */ |
101 | cstate_type = (cx->address >> MWAIT_SUBSTATE_SIZE) + 1; | 102 | cstate_type = ((cx->address >> MWAIT_SUBSTATE_SIZE) & |
103 | MWAIT_CSTATE_MASK) + 1; | ||
102 | edx_part = edx >> (cstate_type * MWAIT_SUBSTATE_SIZE); | 104 | edx_part = edx >> (cstate_type * MWAIT_SUBSTATE_SIZE); |
103 | num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK; | 105 | num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK; |
104 | 106 | ||