diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 4 | ||||
| -rw-r--r-- | drivers/acpi/thermal.c | 17 | 
2 files changed, 18 insertions, 3 deletions
| diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index ed7d7913af8..52e1c2d26a2 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1823,6 +1823,10 @@ and is between 256 and 4096 characters. It is defined in the file  	thermal.off=	[HW,ACPI]  			1: disable ACPI thermal control +	thermal.psv=	[HW,ACPI] +			-1: disable all passive trip points +			<degrees C>: override all passive trip points to this value +  	thermal.tzp=	[HW,ACPI]  			Specify global default ACPI thermal zone polling rate  			<deci-seconds>: poll all this frequency diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index b6b3bec8454..74e25be8abc 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -82,6 +82,10 @@ static int off;  module_param(off, int, 0);  MODULE_PARM_DESC(off, "Set to disable ACPI thermal support.\n"); +static int psv; +module_param(psv, int, 0644); +MODULE_PARM_DESC(psv, "Disable or override all passive trip points.\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); @@ -343,9 +347,16 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)  	/* Passive: Processors (optional) */ -	status = -	    acpi_evaluate_integer(tz->device->handle, "_PSV", NULL, -				  &tz->trips.passive.temperature); +	if (psv == -1) { +		status = AE_SUPPORT; +	} else if (psv > 0) { +		tz->trips.passive.temperature = CELSIUS_TO_KELVIN(psv); +		status = AE_OK; +	} else { +		status = acpi_evaluate_integer(tz->device->handle, +			"_PSV", NULL, &tz->trips.passive.temperature); +	} +  	if (ACPI_FAILURE(status)) {  		tz->trips.passive.flags.valid = 0;  		ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No passive threshold\n")); | 
