summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikram Mulukutla <markivx@codeaurora.org>2016-03-17 17:25:34 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:26:00 -0700
commit0a9cabdc2afe9d3fcf3b4ad41573a18f73c2dcc2 (patch)
treec8541e9a7a6a94402d3b42dba3b6bb7442abb038
parent6c98c21f9e7253ba25b831bd13852e295b341cfa (diff)
soc: qcom: core_ctl: Add a tracing function
The core control module requires tracing capability. Export a function that will allow new events to be added in an extensible fashion without a compile-time dependency. Change-Id: I807d1ec4a104d8289441512b61e5e26df291525b Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
-rw-r--r--drivers/soc/qcom/core_ctl_helper.c17
-rw-r--r--include/soc/qcom/core_ctl.h9
2 files changed, 25 insertions, 1 deletions
diff --git a/drivers/soc/qcom/core_ctl_helper.c b/drivers/soc/qcom/core_ctl_helper.c
index 7f674229f1f8..3dde30d29a1c 100644
--- a/drivers/soc/qcom/core_ctl_helper.c
+++ b/drivers/soc/qcom/core_ctl_helper.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2016, The Linux Foundation. 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
@@ -17,8 +17,23 @@
#include <linux/hrtimer.h>
#include <linux/module.h>
#include <linux/init.h>
+#include <trace/events/power.h>
#include <soc/qcom/core_ctl.h>
+void core_ctl_trace(int type, int cpu, int arg1, int arg2, int arg3)
+{
+ switch (type) {
+ case CORE_CTL_EVAL_NEED:
+ trace_core_ctl_eval_need(cpu, arg1, arg2, arg3);
+ break;
+
+ case CORE_CTL_SET_BUSY:
+ trace_core_ctl_set_busy(cpu, arg1, arg2, arg3);
+ break;
+ };
+}
+EXPORT_SYMBOL(core_ctl_trace);
+
void core_ctl_block_hotplug(void)
{
get_online_cpus();
diff --git a/include/soc/qcom/core_ctl.h b/include/soc/qcom/core_ctl.h
index 39bce9fc8fdd..08b43058b37c 100644
--- a/include/soc/qcom/core_ctl.h
+++ b/include/soc/qcom/core_ctl.h
@@ -14,6 +14,12 @@
#ifndef __SOC_QCOM_CORE_CTL_H
#define __SOC_QCOM_CORE_CTL_H
+enum {
+ CORE_CTL_EVAL_NEED,
+ CORE_CTL_SET_BUSY,
+ CORE_CTL_N_TRACE_EVENTS,
+};
+
extern void core_ctl_block_hotplug(void);
extern void core_ctl_unblock_hotplug(void);
extern s64 core_ctl_get_time(void);
@@ -23,4 +29,7 @@ extern struct device *core_ctl_find_cpu_device(unsigned cpu);
extern int core_ctl_online_core(unsigned int cpu);
extern int core_ctl_offline_core(unsigned int cpu);
+#define USE_CORE_CTL_TRACE
+extern void core_ctl_trace(int type, int cpu, int arg1, int arg2, int arg3);
+
#endif