From 6497e33a15fd49d558b484cb7e8991fe0062377f Mon Sep 17 00:00:00 2001 From: Kalpak Kawadkar Date: Mon, 13 Jun 2022 14:18:12 +0530 Subject: [PATCH] clk: qcom: clk-debug: Enable ftrace for clock frequency measurement Enable ftrace support for clocks so that clients can measure frequency of the clock through ftraces. Change-Id: Ie923ac538b670598bb1be009e892a68c4f1e2a38 Signed-off-by: Kalpak Kawadkar --- drivers/clk/qcom/clk-debug.c | 2 ++ drivers/clk/qcom/trace.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/drivers/clk/qcom/clk-debug.c b/drivers/clk/qcom/clk-debug.c index 285d80a083ad..ef744047079f 100644 --- a/drivers/clk/qcom/clk-debug.c +++ b/drivers/clk/qcom/clk-debug.c @@ -480,6 +480,8 @@ static int clk_debug_measure_get(void *data, u64 *val) *val *= get_mux_divs(measure); disable_debug_clks(measure); } + + trace_clk_measure(clk_hw_get_name(hw), *val); exit: mutex_unlock(&clk_debug_lock); clk_runtime_put_debug_mux(meas); diff --git a/drivers/clk/qcom/trace.h b/drivers/clk/qcom/trace.h index a95d8076cd74..9fa5d24f53ff 100644 --- a/drivers/clk/qcom/trace.h +++ b/drivers/clk/qcom/trace.h @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only * * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. */ #undef TRACE_SYSTEM @@ -47,6 +48,33 @@ DEFINE_EVENT(clk_state_dump, clk_state, TP_ARGS(name, prepare_count, enable_count, rate, vdd_level) ); +DECLARE_EVENT_CLASS(clk_measure_support, + + TP_PROTO(const char *name, unsigned long rate), + + TP_ARGS(name, rate), + + TP_STRUCT__entry( + __string(name, name) + __field(unsigned long, rate) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->rate = rate; + ), + + TP_printk("%s rate: %lu", + __get_str(name), (unsigned long)__entry->rate) +); + +DEFINE_EVENT(clk_measure_support, clk_measure, + + TP_PROTO(const char *name, unsigned long rate), + + TP_ARGS(name, rate) +); + #endif /* _TRACE_CLOCK_QCOM */ /* This part must be outside protection */