Commit 6595413f authored by Rafa Bilski's avatar Rafa Bilski Committed by Dave Jones

[CPUFREQ] Longhaul - Add ignore_latency option

Some laptops with VIA C3 processor, CLE266 chipset and
AMI BIOS have incorrect latency values in FADT table. These
laptops seems to be C3 capable, but latency values are to
big: 101 for C2 and 1017 for C3. This option will allow
user to skip C3 latency test but not C3 address test. AMI
BIOS is setting C3 address to correct value in DSDT table.
Signed-off-by: default avatarRafa Bilski <rafalbilski@interia.pl>
Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent 179da8e6
...@@ -65,7 +65,7 @@ static int port22_en = 0; ...@@ -65,7 +65,7 @@ static int port22_en = 0;
/* Module parameters */ /* Module parameters */
static int dont_scale_voltage; static int dont_scale_voltage;
static int ignore_latency = 0;
#define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "longhaul", msg) #define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "longhaul", msg)
...@@ -665,8 +665,10 @@ static int __init longhaul_cpu_init(struct cpufreq_policy *policy) ...@@ -665,8 +665,10 @@ static int __init longhaul_cpu_init(struct cpufreq_policy *policy)
if (longhaul_version == TYPE_POWERSAVER) { if (longhaul_version == TYPE_POWERSAVER) {
/* Check ACPI support for C3 state */ /* Check ACPI support for C3 state */
cx = &pr->power.states[ACPI_STATE_C3]; cx = &pr->power.states[ACPI_STATE_C3];
if (cx->address == 0 || cx->latency > 1000) if (cx->address == 0 ||
(cx->latency > 1000 && ignore_latency == 0) )
goto err_acpi; goto err_acpi;
} else { } else {
/* Check ACPI support for bus master arbiter disable */ /* Check ACPI support for bus master arbiter disable */
if (!pr->flags.bm_control) { if (!pr->flags.bm_control) {
...@@ -773,6 +775,8 @@ static void __exit longhaul_exit(void) ...@@ -773,6 +775,8 @@ static void __exit longhaul_exit(void)
module_param (dont_scale_voltage, int, 0644); module_param (dont_scale_voltage, int, 0644);
MODULE_PARM_DESC(dont_scale_voltage, "Don't scale voltage of processor"); MODULE_PARM_DESC(dont_scale_voltage, "Don't scale voltage of processor");
module_param(ignore_latency, int, 0644);
MODULE_PARM_DESC(ignore_latency, "Skip ACPI C3 latency test");
MODULE_AUTHOR ("Dave Jones <davej@codemonkey.org.uk>"); MODULE_AUTHOR ("Dave Jones <davej@codemonkey.org.uk>");
MODULE_DESCRIPTION ("Longhaul driver for VIA Cyrix processors."); MODULE_DESCRIPTION ("Longhaul driver for VIA Cyrix processors.");
...@@ -780,4 +784,3 @@ MODULE_LICENSE ("GPL"); ...@@ -780,4 +784,3 @@ MODULE_LICENSE ("GPL");
late_initcall(longhaul_init); late_initcall(longhaul_init);
module_exit(longhaul_exit); module_exit(longhaul_exit);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment