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)