aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386
diff options
context:
space:
mode:
authorRafaƂ Bilski <rafalbilski@interia.pl>2007-07-08 15:51:26 -0400
committerDave Jones <davej@redhat.com>2007-07-13 01:29:50 -0400
commit905497c4b2e6715eebde97cbcb313354e14c2489 (patch)
tree4ae627f4892518009c514a403d19a947d8fd8673 /arch/i386
parent773208946a132fb733ba273ee8562814f828cc28 (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.c7
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 */
77static int scale_voltage; 77static int scale_voltage;
78static 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
959module_param (disable_acpi_c3, int, 0644);
960MODULE_PARM_DESC(disable_acpi_c3, "Don't use ACPI C3 support");
961
955module_param (scale_voltage, int, 0644); 962module_param (scale_voltage, int, 0644);
956MODULE_PARM_DESC(scale_voltage, "Scale voltage of processor"); 963MODULE_PARM_DESC(scale_voltage, "Scale voltage of processor");
957 964