blob: 4e9da85690dc7a4c564633d74edfd83ff5c3ddad [file] [log] [blame]
/* Copyright (c) 2012, 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
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM msm_low_power
#if !defined(_TRACE_MSM_LOW_POWER_H_) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_MSM_LOW_POWER_H_
#include <linux/tracepoint.h>
DECLARE_EVENT_CLASS(msm_pm_enter,
TP_PROTO(unsigned int cpu, uint32_t latency,
uint32_t sleep_us, uint32_t wake_up),
TP_ARGS(cpu, latency, sleep_us, wake_up),
TP_STRUCT__entry(
__field(unsigned int, cpu)
__field(uint32_t, latency)
__field(uint32_t, sleep_us)
__field(uint32_t, wake_up)
),
TP_fast_assign(
__entry->cpu = cpu;
__entry->latency = latency;
__entry->sleep_us = sleep_us;
__entry->wake_up = wake_up;
),
TP_printk("cpu: %u latency: %uus sleep: %uus wake_up: %u",
__entry->cpu,
__entry->latency,
__entry->sleep_us,
__entry->wake_up)
);
DEFINE_EVENT(msm_pm_enter, msm_pm_enter_pc,
TP_PROTO(unsigned int cpu, uint32_t latency,
uint32_t sleep_us, uint32_t wake_up),
TP_ARGS(cpu, latency, sleep_us, wake_up)
);
DEFINE_EVENT(msm_pm_enter, msm_pm_enter_ret,
TP_PROTO(unsigned int cpu, uint32_t latency,
uint32_t sleep_us, uint32_t wake_up),
TP_ARGS(cpu, latency, sleep_us, wake_up)
);
DEFINE_EVENT(msm_pm_enter, msm_pm_enter_spc,
TP_PROTO(unsigned int cpu, uint32_t latency,
uint32_t sleep_us, uint32_t wake_up),
TP_ARGS(cpu, latency, sleep_us, wake_up)
);
DEFINE_EVENT(msm_pm_enter, msm_pm_enter_wfi,
TP_PROTO(unsigned int cpu, uint32_t latency,
uint32_t sleep_us, uint32_t wake_up),
TP_ARGS(cpu, latency, sleep_us, wake_up)
);
DECLARE_EVENT_CLASS(msm_pm_exit,
TP_PROTO(unsigned int cpu, bool success),
TP_ARGS(cpu, success),
TP_STRUCT__entry(
__field(unsigned int , cpu)
__field(int, success)
),
TP_fast_assign(
__entry->cpu = cpu;
__entry->success = success;
),
TP_printk("cpu:%u success:%d",
__entry->cpu,
__entry->success)
);
DEFINE_EVENT(msm_pm_exit, msm_pm_exit_pc,
TP_PROTO(unsigned int cpu, bool success),
TP_ARGS(cpu, success)
);
DEFINE_EVENT(msm_pm_exit, msm_pm_exit_ret,
TP_PROTO(unsigned int cpu, bool success),
TP_ARGS(cpu, success)
);
DEFINE_EVENT(msm_pm_exit, msm_pm_exit_spc,
TP_PROTO(unsigned int cpu, bool success),
TP_ARGS(cpu, success)
);
DEFINE_EVENT(msm_pm_exit, msm_pm_exit_wfi,
TP_PROTO(unsigned int cpu, bool success),
TP_ARGS(cpu, success)
);
TRACE_EVENT(lpm_resources,
TP_PROTO(uint32_t sleep_value , char *name),
TP_ARGS(sleep_value, name),
TP_STRUCT__entry(
__field(uint32_t , sleep_value)
__string(name, name)
),
TP_fast_assign(
__entry->sleep_value = sleep_value;
__assign_str(name, name);
),
TP_printk("name:%s sleep_value:%d",
__get_str(name),
__entry->sleep_value)
);
#endif
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#define TRACE_INCLUDE_FILE trace_msm_low_power
#include <trace/define_trace.h>