blob: 0176a4d0e4cec9344dde4dc39dd645d38d3655bc [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2019 MediaTek Inc.
4 */
5
6#include <linux/cpufreq.h>
7#include <trace/events/power.h>
8
9#include "power.h"
10#include "met_drv.h"
11#include "met_kernel_symbol.h"
12
13noinline void cpu_frequency(unsigned int frequency, unsigned int cpu_id)
14{
15 if (met_export_api_symbol->met_cpu_frequency)
16 met_export_api_symbol->met_cpu_frequency(frequency, cpu_id);
17}
18
19void force_power_log(int cpu)
20{
21 struct cpufreq_policy *p;
22
23 if (cpu == POWER_LOG_ALL) {
24 for_each_possible_cpu(cpu) {
25 p = cpufreq_cpu_get(cpu);
26 if (p != NULL) {
27 cpu_frequency(p->cur, cpu);
28 cpufreq_cpu_put(p);
29 } else {
30 cpu_frequency(0, cpu);
31 }
32 }
33 } else {
34 p = cpufreq_cpu_get(cpu);
35 if (p != NULL) {
36 cpu_frequency(p->cur, cpu);
37 cpufreq_cpu_put(p);
38 } else {
39 cpu_frequency(0, cpu);
40 }
41 }
42}
43
44void force_power_log_val(unsigned int frequency, int cpu)
45{
46 cpu_frequency(frequency, cpu);
47}