static int omap_cpu_thermal_manager(struct list_head *cooling_list, int temp) { int cpu_temp; omap_gov->sensor_temp = temp; cpu_temp = convert_omap_sensor_temp_to_hotspot_temp(temp); pr_info("%s:sensor %d avg sensor %d pcb %d, delta %d hot spot %d\n", __func__, temp, omap_gov->avg_cpu_sensor_temp, omap_gov->pcb_temp, omap_gov->absolute_delta, cpu_temp); if (cpu_temp >= OMAP_FATAL_TEMP) { omap_fatal_zone(cpu_temp); return FATAL_ZONE; } else if (cpu_temp >= OMAP_PANIC_TEMP) { omap_panic_zone(cooling_list, cpu_temp); return PANIC_ZONE; } else if (cpu_temp < (OMAP_PANIC_TEMP - HYSTERESIS_VALUE)) { if (cpu_temp >= OMAP_ALERT_TEMP) { omap_alert_zone(cooling_list, cpu_temp); return ALERT_ZONE; } else if (cpu_temp < (OMAP_ALERT_TEMP - HYSTERESIS_VALUE)) { if (cpu_temp >= OMAP_MONITOR_TEMP) { omap_monitor_zone(cooling_list, cpu_temp); return MONITOR_ZONE; } else { /* * this includes the case where : * (OMAP_MONITOR_TEMP - HYSTERESIS_VALUE) <= T * && T < OMAP_MONITOR_TEMP */ omap_safe_zone(cooling_list, cpu_temp); return SAFE_ZONE; } } else { /* * this includes the case where : * (OMAP_ALERT_TEMP - HYSTERESIS_VALUE) <= T * && T < OMAP_ALERT_TEMP */ omap_monitor_zone(cooling_list, cpu_temp); return MONITOR_ZONE; } } else { /* * this includes the case where : * (OMAP_PANIC_TEMP - HYSTERESIS_VALUE) <= T < OMAP_PANIC_TEMP */ omap_alert_zone(cooling_list, cpu_temp); return ALERT_ZONE; } return NO_ACTION; }
static int omap_cpu_thermal_manager(struct list_head *cooling_list, int temp) { int cpu_temp; cpu_temp = convert_omap_sensor_temp_to_hotspot_temp(temp); #if 0 pr_info("%s: triggered with these temp: temp %d cpu_temp %d\n", __func__, temp, cpu_temp); #endif if (cpu_temp >= OMAP_FATAL_TEMP) { omap_fatal_zone(cpu_temp); return FATAL_ZONE; } else if (cpu_temp >= OMAP_PANIC_TEMP) { omap_panic_zone(cooling_list, cpu_temp); return PANIC_ZONE; } else if (cpu_temp < (OMAP_PANIC_TEMP - HYSTERESIS_VALUE)) { if (cpu_temp >= OMAP_ALERT_TEMP) { omap_alert_zone(cooling_list, cpu_temp); return ALERT_ZONE; } else if (cpu_temp < (OMAP_ALERT_TEMP - HYSTERESIS_VALUE)) { if (cpu_temp >= OMAP_MONITOR_TEMP) { omap_monitor_zone(cooling_list, cpu_temp); return MONITOR_ZONE; } else { /* * this includes the case where : * (OMAP_MONITOR_TEMP - HYSTERESIS_VALUE) <= T * && T < OMAP_MONITOR_TEMP */ omap_safe_zone(cooling_list, cpu_temp); return SAFE_ZONE; } } else { /* * this includes the case where : * (OMAP_ALERT_TEMP - HYSTERESIS_VALUE) <= T < OMAP_ALERT_TEMP */ omap_monitor_zone(cooling_list, cpu_temp); return MONITOR_ZONE; } } else { /* * this includes the case where : * (OMAP_PANIC_TEMP - HYSTERESIS_VALUE) <= T < OMAP_PANIC_TEMP */ omap_alert_zone(cooling_list, cpu_temp); return ALERT_ZONE; } return NO_ACTION; }