ACPI: thermal: create "thermal.off=1" to disable ACPI thermal support
authorLen Brown <len.brown@intel.com>
Sun, 12 Aug 2007 04:12:17 +0000 (00:12 -0400)
committerLen Brown <len.brown@intel.com>
Sun, 12 Aug 2007 04:12:17 +0000 (00:12 -0400)
"thermal.off=1" disables all ACPI thermal support at boot time.

CONFIG_ACPI_THERMAL=n can do this at build time.
"# rmmod thermal" can do this at run time,
as long as thermal is built as a module.

WARNING: On some systems, disabling ACPI thermal support
will cause the system to run hotter and reduce the
lifetime of the hardware.

Signed-off-by: Len Brown <len.brown@intel.com>
Documentation/kernel-parameters.txt
drivers/acpi/thermal.c

index a326487a3ab52108bc72e74e8b1bd52d14ed9ae8..de3300c9056a54e2a8a9ce4b1e280d32c2d87953 100644 (file)
@@ -1820,6 +1820,9 @@ and is between 256 and 4096 characters. It is defined in the file
        thash_entries=  [KNL,NET]
                        Set number of hash buckets for TCP connection
 
        thash_entries=  [KNL,NET]
                        Set number of hash buckets for TCP connection
 
+       thermal.off=    [HW,ACPI]
+                       1: disable ACPI thermal control
+
        time            Show timing data prefixed to each printk message line
                        [deprecated, see 'printk.time']
 
        time            Show timing data prefixed to each printk message line
                        [deprecated, see 'printk.time']
 
index 5a62de1b7f2a0e040f1d32a537bc8693a37b0584..61337d969d7fb38c7bdcfe718a3bc25292f7609a 100644 (file)
@@ -78,6 +78,10 @@ static int tzp;
 module_param(tzp, int, 0);
 MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds.\n");
 
 module_param(tzp, int, 0);
 MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds.\n");
 
+static int off;
+module_param(off, int, 0);
+MODULE_PARM_DESC(off, "Set to disable ACPI thermal support.\n");
+
 static int acpi_thermal_add(struct acpi_device *device);
 static int acpi_thermal_remove(struct acpi_device *device, int type);
 static int acpi_thermal_resume(struct acpi_device *device);
 static int acpi_thermal_add(struct acpi_device *device);
 static int acpi_thermal_remove(struct acpi_device *device, int type);
 static int acpi_thermal_resume(struct acpi_device *device);
@@ -1285,7 +1289,10 @@ static int __init acpi_thermal_init(void)
 {
        int result = 0;
 
 {
        int result = 0;
 
-
+       if (off) {
+               printk(KERN_NOTICE "ACPI: thermal control disabled\n");
+               return -ENODEV;
+       }
        acpi_thermal_dir = proc_mkdir(ACPI_THERMAL_CLASS, acpi_root_dir);
        if (!acpi_thermal_dir)
                return -ENODEV;
        acpi_thermal_dir = proc_mkdir(ACPI_THERMAL_CLASS, acpi_root_dir);
        if (!acpi_thermal_dir)
                return -ENODEV;