From d4e63f6db59f165c3581064ae961e2df44f2cbc5 Mon Sep 17 00:00:00 2001 From: Matt Wagantall Date: Mon, 30 Jul 2012 19:19:52 -0700 Subject: [PATCH] msm: acpuclock: Support tracing of CPU frequency changes Utilize the cpu_frequency traces to profile CPU frequency switching. Change-Id: I5f7b5ea9ab0bd70deb3d64c9361c4b56ab63466d Signed-off-by: Matt Wagantall (cherry picked from commit 7c57b5dfc88a77a7d0c1d7820cf0baa3c37210fc) (cherry picked from commit e759493b08da1c1d39e68849b6092b3dac3928aa) --- arch/arm/mach-msm/acpuclock.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-msm/acpuclock.c b/arch/arm/mach-msm/acpuclock.c index be056e693a3..2b33c4cfa60 100644 --- a/arch/arm/mach-msm/acpuclock.c +++ b/arch/arm/mach-msm/acpuclock.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011, Code Aurora Forum. All rights reserved. +/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -13,6 +13,7 @@ #include #include #include "acpuclock.h" +#include static struct acpuclk_data *acpuclk_data; @@ -26,10 +27,19 @@ unsigned long acpuclk_get_rate(int cpu) int acpuclk_set_rate(int cpu, unsigned long rate, enum setrate_reason reason) { + int ret; + if (!acpuclk_data->set_rate) return 0; - return acpuclk_data->set_rate(cpu, rate, reason); + trace_cpu_frequency_switch_start(acpuclk_get_rate(cpu), rate, cpu); + ret = acpuclk_data->set_rate(cpu, rate, reason); + if (!ret) { + trace_cpu_frequency_switch_end(cpu); + trace_cpu_frequency(rate, cpu); + } + + return ret; } uint32_t acpuclk_get_switch_time(void)