Files
threeeye bc1d038eac REVVL 6 Pro kernel bring-up: full working tree snapshot (2026-09-12)
Squashed backup commit (no shallow-clone history issues) of
xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream
commit 9eece662e) plus all fixes applied to get everpal_defconfig building
clean against a modern (GCC 15.2.0) toolchain -- see the previous commit
message on the lineage-23.2 branch (also in this repo history is not
available here since this is a squashed snapshot; full incremental history
lives in the local DL380 checkout and the upstream GitHub remote).

Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
2026-09-12 13:36:46 +00:00

65 lines
2.2 KiB
C

/*
* Copyright (C) 2017 MediaTek Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See http://www.gnu.org/licenses/gpl-2.0.html for more details.
*/
extern unsigned long boosted_cpu_util(int cpu, unsigned long other_util);
extern void get_task_util(struct task_struct *p, unsigned long *util,
unsigned long *boost_util);
#define CPU_LOAD_AVG_DEFAULT_MS 20
#define CPU_LOAD_AVG_TOLERANCE 2
struct rq_data {
unsigned int rq_avg;
unsigned long rq_poll_jiffies;
unsigned long def_timer_jiffies;
unsigned long rq_poll_last_jiffy;
unsigned long rq_poll_total_jiffies;
unsigned long def_timer_last_jiffy;
unsigned int def_interval;
unsigned int hotplug_disabled;
int64_t def_start_time;
struct attribute_group *attr_group;
struct kobject *kobj;
struct work_struct def_timer_work;
int init;
};
extern spinlock_t rqavg_lock;
extern struct rq_data rq_info;
extern struct workqueue_struct *rq_wq;
/* For heavy task detection */
extern int sched_get_nr_heavy_running_avg(int cid, int *avg);
extern void sched_update_nr_heavy_prod(int invoker,
struct task_struct *p, int cpu, int heavy_nr_inc, bool ack_cap);
extern int reset_heavy_task_stats(int cpu);
extern int is_ack_curcap(int cpu);
extern int is_heavy_task(struct task_struct *p);
/* need to invoke if any threshold of htasks changed */
extern void heavy_thresh_chg_notify(void);
/* For over-utilized task tracking */
extern void overutil_thresh_chg_notify(void);
extern int get_overutil_stats(char *buf, int buf_size);
extern unsigned long get_cpu_orig_capacity(unsigned int cpu);
#ifdef CONFIG_MTK_CORE_CTL
extern unsigned int get_overutil_threshold(int index);
#else
extern int get_overutil_threshold(void);
#endif
#ifdef CONFIG_MTK_SCHED_EAS_POWER_SUPPORT
extern bool is_game_mode;
#endif
extern int show_btask(char *buf, int buf_size);
extern void cal_cpu_load(int cpu);
extern unsigned int sched_get_cpu_load(int cpu);