else { 
} else { 
int acpi_processor_set_thermal_limit(acpi_handle handle, int type){	int result = 0;	struct acpi_processor *pr = NULL;	struct acpi_device *device = NULL;	int tx = 0;	ACPI_FUNCTION_TRACE("acpi_processor_set_thermal_limit");	if ((type < ACPI_PROCESSOR_LIMIT_NONE)	    || (type > ACPI_PROCESSOR_LIMIT_DECREMENT))		return_VALUE(-EINVAL);	result = acpi_bus_get_device(handle, &device);	if (result)		return_VALUE(result);	pr = (struct acpi_processor *)acpi_driver_data(device);	if (!pr)		return_VALUE(-ENODEV);	/* Thermal limits are always relative to the current Px/Tx state. */	if (pr->flags.throttling)		pr->limit.thermal.tx = pr->throttling.state;	/*	 * Our default policy is to only use throttling at the lowest	 * performance state.	 */	tx = pr->limit.thermal.tx;	switch (type) {	case ACPI_PROCESSOR_LIMIT_NONE:		do {			result = acpi_thermal_cpufreq_decrease(pr->id);		} while (!result);		tx = 0;		break;	case ACPI_PROCESSOR_LIMIT_INCREMENT:		/* if going up: P-states first, T-states later */		result = acpi_thermal_cpufreq_increase(pr->id);		if (!result)			goto end;		else if (result == -ERANGE)			ACPI_DEBUG_PRINT((ACPI_DB_INFO,					  "At maximum performance state\n"));		if (pr->flags.throttling) {			if (tx == (pr->throttling.state_count - 1))				ACPI_DEBUG_PRINT((ACPI_DB_INFO,						  "At maximum throttling state\n"));			else				tx++;		}		break;	case ACPI_PROCESSOR_LIMIT_DECREMENT:		/* if going down: T-states first, P-states later */		if (pr->flags.throttling) {			if (tx == 0)				ACPI_DEBUG_PRINT((ACPI_DB_INFO,						  "At minimum throttling state\n"));			else {				tx--;				goto end;			}		}		result = acpi_thermal_cpufreq_decrease(pr->id);		if (result == -ERANGE)			ACPI_DEBUG_PRINT((ACPI_DB_INFO,					  "At minimum performance state\n"));		break;	}      end:	if (pr->flags.throttling) {		pr->limit.thermal.px = 0;		pr->limit.thermal.tx = tx;		result = acpi_processor_apply_limit(pr);		if (result)			ACPI_DEBUG_PRINT((ACPI_DB_ERROR,					  "Unable to set thermal limit\n"));		ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Thermal limit now (P%d:T%d)\n",				  pr->limit.thermal.px, pr->limit.thermal.tx));	} else		result = 0;	return_VALUE(result);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1cbf4c563c0eaaf11c552a88b374e213181c6ddd/processor_thermal.c/clean/drivers/acpi/processor_thermal.c