blob: d34464e5a80b77459056699e86e4d1a8cdcba7d1 [file]
/* 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