diff options
author | Timo Alho <talho@nvidia.com> | 2013-10-30 11:37:49 +0200 |
---|---|---|
committer | Juha Tukkinen <jtukkinen@nvidia.com> | 2013-11-01 04:54:15 -0700 |
commit | 89c9e2bd6cdb3a08ba4075f28bd1fea3ee02de6e (patch) | |
tree | 53a5fb4cee84e845af73f299e0ba529d4fb5a292 /drivers/edp | |
parent | 3f467422c8b12bc63ef4a6b4af4d59fb11a04906 (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.c | 11 |
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; } |