/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2020 MediaTek Inc. */ #ifndef __THERMAL_JATM_H__ #define __THERMAL_JATM_H__ /* jatm parameters (in ms) */ #define THER_INVALID_TEMP -274000 #define DEFAULT_JATM_STOP_DEADLINE 133 // 167 - 16.6 * 2 #define DEFAULT_JATM_INTERVAL 1000 #define DEFAULT_JATM_INFINITE_BUDGET 5000 struct jatm_policy { unsigned int cpu; s32 cpu_limit; struct freq_qos_request qos_req; struct cpufreq_policy *policy; struct list_head jatm_list; }; enum jatm_stop_reason { FRAME_COMPLETE = 0, BUDGET_RUNNING_OUT = 1 }; char *jatm_stop_reason_string[] = { "0: Frame_complete", "1: JATM_budget_running_out" }; struct jatm_record { struct timespec64 end_tv; int usage; struct list_head list; }; enum jatm_mode { BUDGET, STOP_DEADLINE }; enum jatm_not_start_reason { ENABLE = 0, ALREADY_ENABLED, MIN_TTJ, SUSPENDED, NO_BUDGET }; extern void (*jatm_notify_fp)(int enable); #endif