Loading drivers/acpi/thermal.c +7 −1 Original line number Diff line number Diff line Loading @@ -168,11 +168,17 @@ static int acpi_thermal_get_polling_frequency(struct acpi_thermal *tz) static int acpi_thermal_temp(struct acpi_thermal *tz, int temp_deci_k) { int temp; if (temp_deci_k == THERMAL_TEMP_INVALID) return THERMAL_TEMP_INVALID; return deci_kelvin_to_millicelsius_with_offset(temp_deci_k, temp = deci_kelvin_to_millicelsius_with_offset(temp_deci_k, tz->kelvin_offset); if (temp <= 0) return THERMAL_TEMP_INVALID; return temp; } static bool acpi_thermal_trip_valid(struct acpi_thermal_trip *acpi_trip) Loading drivers/thermal/gov_step_wise.c +17 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,23 @@ static void thermal_zone_trip_update(struct thermal_zone_device *tz, if (instance->initialized && old_target == instance->target) continue; if (trip->type == THERMAL_TRIP_PASSIVE) { /* * If the target state for this thermal instance * changes from THERMAL_NO_TARGET to something else, * ensure that the zone temperature will be updated * (assuming enabled passive cooling) until it becomes * THERMAL_NO_TARGET again, or the cooling device may * not be reset to its initial state. */ if (old_target == THERMAL_NO_TARGET && instance->target != THERMAL_NO_TARGET) tz->passive++; else if (old_target != THERMAL_NO_TARGET && instance->target == THERMAL_NO_TARGET) tz->passive--; } instance->initialized = true; mutex_lock(&instance->cdev->lock); Loading drivers/thermal/thermal_core.c +11 −2 Original line number Diff line number Diff line Loading @@ -999,9 +999,17 @@ __thermal_cooling_device_register(struct device_node *np, if (ret) goto out_cdev_type; /* * The cooling device's current state is only needed for debug * initialization below, so a failure to get it does not cause * the entire cooling device initialization to fail. However, * the debug will not work for the device if its initial state * cannot be determined and drivers are responsible for ensuring * that this will not happen. */ ret = cdev->ops->get_cur_state(cdev, ¤t_state); if (ret) goto out_cdev_type; current_state = ULONG_MAX; thermal_cooling_device_setup_sysfs(cdev); Loading @@ -1016,6 +1024,7 @@ __thermal_cooling_device_register(struct device_node *np, return ERR_PTR(ret); } if (current_state <= cdev->max_state) thermal_debug_cdev_add(cdev, current_state); /* Add 'this' new cdev to the global cdev list */ Loading Loading
drivers/acpi/thermal.c +7 −1 Original line number Diff line number Diff line Loading @@ -168,11 +168,17 @@ static int acpi_thermal_get_polling_frequency(struct acpi_thermal *tz) static int acpi_thermal_temp(struct acpi_thermal *tz, int temp_deci_k) { int temp; if (temp_deci_k == THERMAL_TEMP_INVALID) return THERMAL_TEMP_INVALID; return deci_kelvin_to_millicelsius_with_offset(temp_deci_k, temp = deci_kelvin_to_millicelsius_with_offset(temp_deci_k, tz->kelvin_offset); if (temp <= 0) return THERMAL_TEMP_INVALID; return temp; } static bool acpi_thermal_trip_valid(struct acpi_thermal_trip *acpi_trip) Loading
drivers/thermal/gov_step_wise.c +17 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,23 @@ static void thermal_zone_trip_update(struct thermal_zone_device *tz, if (instance->initialized && old_target == instance->target) continue; if (trip->type == THERMAL_TRIP_PASSIVE) { /* * If the target state for this thermal instance * changes from THERMAL_NO_TARGET to something else, * ensure that the zone temperature will be updated * (assuming enabled passive cooling) until it becomes * THERMAL_NO_TARGET again, or the cooling device may * not be reset to its initial state. */ if (old_target == THERMAL_NO_TARGET && instance->target != THERMAL_NO_TARGET) tz->passive++; else if (old_target != THERMAL_NO_TARGET && instance->target == THERMAL_NO_TARGET) tz->passive--; } instance->initialized = true; mutex_lock(&instance->cdev->lock); Loading
drivers/thermal/thermal_core.c +11 −2 Original line number Diff line number Diff line Loading @@ -999,9 +999,17 @@ __thermal_cooling_device_register(struct device_node *np, if (ret) goto out_cdev_type; /* * The cooling device's current state is only needed for debug * initialization below, so a failure to get it does not cause * the entire cooling device initialization to fail. However, * the debug will not work for the device if its initial state * cannot be determined and drivers are responsible for ensuring * that this will not happen. */ ret = cdev->ops->get_cur_state(cdev, ¤t_state); if (ret) goto out_cdev_type; current_state = ULONG_MAX; thermal_cooling_device_setup_sysfs(cdev); Loading @@ -1016,6 +1024,7 @@ __thermal_cooling_device_register(struct device_node *np, return ERR_PTR(ret); } if (current_state <= cdev->max_state) thermal_debug_cdev_add(cdev, current_state); /* Add 'this' new cdev to the global cdev list */ Loading