mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
Thermal/step_wise: Fix that hysteresis takes no effect
Test command
nsh> cat /proc/thermal/cpu-thermal
Trips
/* Copy from drivers/thermal/thermal_dummy.c */
{.name = "cpu_crit", .temp = 90, .hyst = 5, .type = THERMAL_CRITICAL},
{.name = "cpu_alert1", .temp = 70, .hyst = 5, .type = THERMAL_HOT},
{.name = "cpu_alert0", .temp = 60, .hyst = 5, .type = THERMAL_NORMAL},
Without this patch
# Error occured when temperature jump to 69.
z:cpu-thermal t:67 t:1 h:16 l:0 c:fan0 s:0|(invalid)
z:cpu-thermal t:72 t:1 h:16 l:0 c:fan0 s:1|1
z:cpu-thermal t:69 t:1 h:16 l:0 c:fan0 s:0|0
z:cpu-thermal t:74 t:1 h:16 l:0 c:fan0 s:1|1
With this patch
z:cpu-thermal t:67 t:1 h:16 l:0 c:fan0 s:0|(invalid)
z:cpu-thermal t:72 t:1 h:16 l:0 c:fan0 s:1|1
z:cpu-thermal t:69 t:1 h:16 l:0 c:fan0 s:1|1
z:cpu-thermal t:74 t:1 h:16 l:0 c:fan0 s:2|2
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This commit is contained in:
parent
5973692a76
commit
b2fc3b2d7f
1 changed files with 6 additions and 0 deletions
|
|
@ -152,8 +152,10 @@ static int step_wise_throttle(FAR struct thermal_zone_device_s *zdev,
|
|||
enum thermal_trend_e trend;
|
||||
unsigned int next_state;
|
||||
bool throttle = false;
|
||||
int hyst_temp;
|
||||
int trip_temp;
|
||||
|
||||
thermal_zone_get_trip_hyst(zdev, trip, &hyst_temp);
|
||||
thermal_zone_get_trip_temp(zdev, trip, &trip_temp);
|
||||
|
||||
trend = thermal_zone_get_trend(zdev);
|
||||
|
|
@ -162,6 +164,10 @@ static int step_wise_throttle(FAR struct thermal_zone_device_s *zdev,
|
|||
{
|
||||
throttle = true;
|
||||
}
|
||||
else if (zdev->temperature > trip_temp - hyst_temp)
|
||||
{
|
||||
return OK;
|
||||
}
|
||||
|
||||
list_for_every_entry(&zdev->instance_list, instance,
|
||||
struct thermal_instance_s, zdev_node)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue