2009-09-17 16:11:28 +02:00
# undef TRACE_SYSTEM
# define TRACE_SYSTEM power
# if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
# define _TRACE_POWER_H
# include <linux/ktime.h>
# include <linux/tracepoint.h>
2011-01-03 17:50:44 +01:00
DECLARE_EVENT_CLASS ( cpu ,
TP_PROTO ( unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( state , cpu_id ) ,
TP_STRUCT__entry (
__field ( u32 , state )
__field ( u32 , cpu_id )
) ,
TP_fast_assign (
__entry - > state = state ;
__entry - > cpu_id = cpu_id ;
) ,
TP_printk ( " state=%lu cpu_id=%lu " , ( unsigned long ) __entry - > state ,
( unsigned long ) __entry - > cpu_id )
) ;
DEFINE_EVENT ( cpu , cpu_idle ,
TP_PROTO ( unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( state , cpu_id )
) ;
/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
# ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
# define _PWR_EVENT_AVOID_DOUBLE_DEFINING
# define PWR_EVENT_EXIT -1
2009-09-17 16:11:28 +02:00
# endif
2011-01-03 17:50:44 +01:00
DEFINE_EVENT ( cpu , cpu_frequency ,
TP_PROTO ( unsigned int frequency , unsigned int cpu_id ) ,
TP_ARGS ( frequency , cpu_id )
) ;
TRACE_EVENT ( machine_suspend ,
TP_PROTO ( unsigned int state ) ,
TP_ARGS ( state ) ,
TP_STRUCT__entry (
__field ( u32 , state )
) ,
TP_fast_assign (
__entry - > state = state ;
) ,
TP_printk ( " state=%lu " , ( unsigned long ) __entry - > state )
) ;
2012-04-29 22:53:02 +02:00
DECLARE_EVENT_CLASS ( wakeup_source ,
TP_PROTO ( const char * name , unsigned int state ) ,
TP_ARGS ( name , state ) ,
TP_STRUCT__entry (
__string ( name , name )
__field ( u64 , state )
) ,
TP_fast_assign (
__assign_str ( name , name ) ;
__entry - > state = state ;
) ,
TP_printk ( " %s state=0x%lx " , __get_str ( name ) ,
( unsigned long ) __entry - > state )
) ;
DEFINE_EVENT ( wakeup_source , wakeup_source_activate ,
TP_PROTO ( const char * name , unsigned int state ) ,
TP_ARGS ( name , state )
) ;
DEFINE_EVENT ( wakeup_source , wakeup_source_deactivate ,
TP_PROTO ( const char * name , unsigned int state ) ,
TP_ARGS ( name , state )
) ;
2011-01-03 17:50:44 +01:00
# ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED
2010-09-07 09:21:32 +02:00
/*
* The power events are used for cpuidle & suspend ( power_start , power_end )
* and for cpufreq ( power_frequency )
*/
2009-11-26 15:05:38 +08:00
DECLARE_EVENT_CLASS ( power ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_PROTO ( unsigned int type , unsigned int state , unsigned int cpu_id ) ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_ARGS ( type , state , cpu_id ) ,
2009-09-17 16:11:28 +02:00
TP_STRUCT__entry (
__field ( u64 , type )
__field ( u64 , state )
2010-07-20 16:59:34 -07:00
__field ( u64 , cpu_id )
2009-09-17 16:11:28 +02:00
) ,
TP_fast_assign (
__entry - > type = type ;
__entry - > state = state ;
2010-07-20 16:59:34 -07:00
__entry - > cpu_id = cpu_id ;
2009-09-17 16:11:28 +02:00
) ,
2010-07-20 16:59:34 -07:00
TP_printk ( " type=%lu state=%lu cpu_id=%lu " , ( unsigned long ) __entry - > type ,
( unsigned long ) __entry - > state , ( unsigned long ) __entry - > cpu_id )
2009-09-17 16:11:28 +02:00
) ;
2009-11-26 15:05:38 +08:00
DEFINE_EVENT ( power , power_start ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_PROTO ( unsigned int type , unsigned int state , unsigned int cpu_id ) ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_ARGS ( type , state , cpu_id )
2009-11-26 15:05:38 +08:00
) ;
2009-09-17 16:11:28 +02:00
2009-11-26 15:05:38 +08:00
DEFINE_EVENT ( power , power_frequency ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_PROTO ( unsigned int type , unsigned int state , unsigned int cpu_id ) ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_ARGS ( type , state , cpu_id )
2009-09-17 16:11:28 +02:00
) ;
2009-11-26 15:05:38 +08:00
TRACE_EVENT ( power_end ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_PROTO ( unsigned int cpu_id ) ,
2009-09-17 16:11:28 +02:00
2010-07-20 16:59:34 -07:00
TP_ARGS ( cpu_id ) ,
2009-09-17 16:11:28 +02:00
TP_STRUCT__entry (
2010-07-20 16:59:34 -07:00
__field ( u64 , cpu_id )
2009-09-17 16:11:28 +02:00
) ,
TP_fast_assign (
2010-07-20 16:59:34 -07:00
__entry - > cpu_id = cpu_id ;
2009-09-17 16:11:28 +02:00
) ,
2010-07-20 16:59:34 -07:00
TP_printk ( " cpu_id=%lu " , ( unsigned long ) __entry - > cpu_id )
2009-11-26 15:05:38 +08:00
2009-09-17 16:11:28 +02:00
) ;
2011-01-03 17:50:44 +01:00
/* Deprecated dummy functions must be protected against multi-declartion */
# ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
# define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
enum {
POWER_NONE = 0 ,
POWER_CSTATE = 1 ,
POWER_PSTATE = 2 ,
} ;
# endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
# else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
# ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
# define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
enum {
POWER_NONE = 0 ,
POWER_CSTATE = 1 ,
POWER_PSTATE = 2 ,
} ;
/* These dummy declaration have to be ripped out when the deprecated
events get removed */
static inline void trace_power_start ( u64 type , u64 state , u64 cpuid ) { } ;
static inline void trace_power_end ( u64 cpuid ) { } ;
2012-02-07 09:40:30 -05:00
static inline void trace_power_start_rcuidle ( u64 type , u64 state , u64 cpuid ) { } ;
static inline void trace_power_end_rcuidle ( u64 cpuid ) { } ;
2011-01-03 17:50:44 +01:00
static inline void trace_power_frequency ( u64 type , u64 state , u64 cpuid ) { } ;
# endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
# endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
2010-09-07 09:21:32 +02:00
/*
* The clock events are used for clock enable / disable and for
* clock rate change
*/
DECLARE_EVENT_CLASS ( clock ,
TP_PROTO ( const char * name , unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( name , state , cpu_id ) ,
TP_STRUCT__entry (
__string ( name , name )
__field ( u64 , state )
__field ( u64 , cpu_id )
) ,
TP_fast_assign (
__assign_str ( name , name ) ;
__entry - > state = state ;
__entry - > cpu_id = cpu_id ;
) ,
TP_printk ( " %s state=%lu cpu_id=%lu " , __get_str ( name ) ,
( unsigned long ) __entry - > state , ( unsigned long ) __entry - > cpu_id )
) ;
DEFINE_EVENT ( clock , clock_enable ,
TP_PROTO ( const char * name , unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( name , state , cpu_id )
) ;
DEFINE_EVENT ( clock , clock_disable ,
TP_PROTO ( const char * name , unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( name , state , cpu_id )
) ;
DEFINE_EVENT ( clock , clock_set_rate ,
TP_PROTO ( const char * name , unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( name , state , cpu_id )
) ;
/*
* The power domain events are used for power domains transitions
*/
DECLARE_EVENT_CLASS ( power_domain ,
TP_PROTO ( const char * name , unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( name , state , cpu_id ) ,
TP_STRUCT__entry (
__string ( name , name )
__field ( u64 , state )
__field ( u64 , cpu_id )
) ,
TP_fast_assign (
__assign_str ( name , name ) ;
__entry - > state = state ;
__entry - > cpu_id = cpu_id ;
) ,
TP_printk ( " %s state=%lu cpu_id=%lu " , __get_str ( name ) ,
( unsigned long ) __entry - > state , ( unsigned long ) __entry - > cpu_id )
) ;
DEFINE_EVENT ( power_domain , power_domain_target ,
TP_PROTO ( const char * name , unsigned int state , unsigned int cpu_id ) ,
TP_ARGS ( name , state , cpu_id )
) ;
2009-09-17 16:11:28 +02:00
# endif /* _TRACE_POWER_H */
/* This part must be outside protection */
# include <trace/define_trace.h>