summaryrefslogtreecommitdiff
path: root/drivers/edp
diff options
context:
space:
mode:
authorTimo Alho <talho@nvidia.com>2013-10-30 11:37:49 +0200
committerJuha Tukkinen <jtukkinen@nvidia.com>2013-11-01 04:54:15 -0700
commit89c9e2bd6cdb3a08ba4075f28bd1fea3ee02de6e (patch)
tree53a5fb4cee84e845af73f299e0ba529d4fb5a292 /drivers/edp
parent3f467422c8b12bc63ef4a6b4af4d59fb11a04906 (diff)
EDP: add event tracing for dynamic capping
Change-Id: I7f28e373b2f96d84af98ac64d4d36c83ad18d4a6 Signed-off-by: Timo Alho <talho@nvidia.com> Reviewed-on: http://git-master/r/309701 Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
Diffstat (limited to 'drivers/edp')
-rw-r--r--drivers/edp/sysedp_dynamic_capping.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/edp/sysedp_dynamic_capping.c b/drivers/edp/sysedp_dynamic_capping.c
index 0d361c2e1b56..cccc93d5386f 100644
--- a/drivers/edp/sysedp_dynamic_capping.c
+++ b/drivers/edp/sysedp_dynamic_capping.c
@@ -25,6 +25,7 @@
#include <linux/workqueue.h>
#include <linux/platform_data/tegra_edp.h>
#include <linux/debugfs.h>
+#include <trace/events/sysedp.h>
#include "sysedp_internal.h"
@@ -120,6 +121,7 @@ static void apply_caps(struct tegra_sysedp_devcap *devcap)
{
struct freqcap new;
int r;
+ int do_trace = 0;
core_policy.cpu = get_cpufreq_lim(devcap->cpu_power +
cpu_power_balance);
@@ -130,19 +132,26 @@ static void apply_caps(struct tegra_sysedp_devcap *devcap)
new.gpu = forced_caps.gpu ?: core_policy.gpu;
new.emc = forced_caps.emc ?: core_policy.emc;
- if (new.cpu != cur_caps.cpu)
+ if (new.cpu != cur_caps.cpu) {
pm_qos_update_request(&cpufreq_qos, new.cpu);
+ do_trace = 1;
+ }
if (new.emc != cur_caps.emc) {
r = clk_set_rate(emc_cap_clk, new.emc * 1000);
WARN_ON(r);
+ do_trace = 1;
}
if (new.gpu != cur_caps.gpu) {
r = clk_set_rate(gpu_cap_clk, new.gpu * 1000);
WARN_ON(r && (r != -ENOENT));
+ do_trace = 1;
}
+ if (do_trace)
+ trace_sysedp_dynamic_capping(new.cpu, new.gpu,
+ new.emc, gpu_busy);
pr_caps(&cur_caps, &new, devcap->cpu_power);
cur_caps = new;
}