diff options
author | RafaĆ Bilski <rafalbilski@interia.pl> | 2007-07-08 15:51:26 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2007-07-13 01:29:50 -0400 |
commit | 905497c4b2e6715eebde97cbcb313354e14c2489 (patch) | |
tree | 4ae627f4892518009c514a403d19a947d8fd8673 /arch/i386 | |
parent | 773208946a132fb733ba273ee8562814f828cc28 (diff) |
[CPUFREQ] Longhaul - Option to disable ACPI C3 support
On some motherboards ACPI C3 is available, but it isn't
causing frequency transition on VIA Nehemiah. Longhaul
wasn't working at all earlier, but due to
scaling_cur_speed returning true CPU frequency now, it
looks like CPU is getting stuck at highest frequency
since 2.6.21. I didn't find a reason. Halt is causing
frequency transition.
Signed-off-by: Rafal Bilski <rafalbilski@interia.pl>
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/cpu/cpufreq/longhaul.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/i386/kernel/cpu/cpufreq/longhaul.c b/arch/i386/kernel/cpu/cpufreq/longhaul.c index 8eca59d4c8f4..ef8f0bc3fc71 100644 --- a/arch/i386/kernel/cpu/cpufreq/longhaul.c +++ b/arch/i386/kernel/cpu/cpufreq/longhaul.c | |||
@@ -75,6 +75,7 @@ static unsigned int longhaul_index; | |||
75 | 75 | ||
76 | /* Module parameters */ | 76 | /* Module parameters */ |
77 | static int scale_voltage; | 77 | static int scale_voltage; |
78 | static int disable_acpi_c3; | ||
78 | 79 | ||
79 | #define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "longhaul", msg) | 80 | #define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "longhaul", msg) |
80 | 81 | ||
@@ -844,6 +845,9 @@ static int __init longhaul_cpu_init(struct cpufreq_policy *policy) | |||
844 | if (cx->address > 0 && cx->latency <= 1000) | 845 | if (cx->address > 0 && cx->latency <= 1000) |
845 | longhaul_flags |= USE_ACPI_C3; | 846 | longhaul_flags |= USE_ACPI_C3; |
846 | } | 847 | } |
848 | /* Disable if it isn't working */ | ||
849 | if (disable_acpi_c3) | ||
850 | longhaul_flags &= ~USE_ACPI_C3; | ||
847 | /* Check if northbridge is friendly */ | 851 | /* Check if northbridge is friendly */ |
848 | if (enable_arbiter_disable()) | 852 | if (enable_arbiter_disable()) |
849 | longhaul_flags |= USE_NORTHBRIDGE; | 853 | longhaul_flags |= USE_NORTHBRIDGE; |
@@ -952,6 +956,9 @@ static void __exit longhaul_exit(void) | |||
952 | kfree(longhaul_table); | 956 | kfree(longhaul_table); |
953 | } | 957 | } |
954 | 958 | ||
959 | module_param (disable_acpi_c3, int, 0644); | ||
960 | MODULE_PARM_DESC(disable_acpi_c3, "Don't use ACPI C3 support"); | ||
961 | |||
955 | module_param (scale_voltage, int, 0644); | 962 | module_param (scale_voltage, int, 0644); |
956 | MODULE_PARM_DESC(scale_voltage, "Scale voltage of processor"); | 963 | MODULE_PARM_DESC(scale_voltage, "Scale voltage of processor"); |
957 | 964 | ||