blob: 0176a4d0e4cec9344dde4dc39dd645d38d3655bc [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#include <linux/cpufreq.h>
#include <trace/events/power.h>
#include "power.h"
#include "met_drv.h"
#include "met_kernel_symbol.h"
noinline void cpu_frequency(unsigned int frequency, unsigned int cpu_id)
{
if (met_export_api_symbol->met_cpu_frequency)
met_export_api_symbol->met_cpu_frequency(frequency, cpu_id);
}
void force_power_log(int cpu)
{
struct cpufreq_policy *p;
if (cpu == POWER_LOG_ALL) {
for_each_possible_cpu(cpu) {
p = cpufreq_cpu_get(cpu);
if (p != NULL) {
cpu_frequency(p->cur, cpu);
cpufreq_cpu_put(p);
} else {
cpu_frequency(0, cpu);
}
}
} else {
p = cpufreq_cpu_get(cpu);
if (p != NULL) {
cpu_frequency(p->cur, cpu);
cpufreq_cpu_put(p);
} else {
cpu_frequency(0, cpu);
}
}
}
void force_power_log_val(unsigned int frequency, int cpu)
{
cpu_frequency(frequency, cpu);
}