root/include/trace/events/rpm.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 
   3 #undef TRACE_SYSTEM
   4 #define TRACE_SYSTEM rpm
   5 
   6 #if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
   7 #define _TRACE_RUNTIME_POWER_H
   8 
   9 #include <linux/ktime.h>
  10 #include <linux/tracepoint.h>
  11 
  12 struct device;
  13 
  14 /*
  15  * The rpm_internal events are used for tracing some important
  16  * runtime pm internal functions.
  17  */
  18 DECLARE_EVENT_CLASS(rpm_internal,
  19 
  20         TP_PROTO(struct device *dev, int flags),
  21 
  22         TP_ARGS(dev, flags),
  23 
  24         TP_STRUCT__entry(
  25                 __string(       name,           dev_name(dev)   )
  26                 __field(        int,            flags           )
  27                 __field(        int ,           usage_count     )
  28                 __field(        int ,           disable_depth   )
  29                 __field(        int ,           runtime_auto    )
  30                 __field(        int ,           request_pending )
  31                 __field(        int ,           irq_safe        )
  32                 __field(        int ,           child_count     )
  33         ),
  34 
  35         TP_fast_assign(
  36                 __assign_str(name, dev_name(dev));
  37                 __entry->flags = flags;
  38                 __entry->usage_count = atomic_read(
  39                         &dev->power.usage_count);
  40                 __entry->disable_depth = dev->power.disable_depth;
  41                 __entry->runtime_auto = dev->power.runtime_auto;
  42                 __entry->request_pending = dev->power.request_pending;
  43                 __entry->irq_safe = dev->power.irq_safe;
  44                 __entry->child_count = atomic_read(
  45                         &dev->power.child_count);
  46         ),
  47 
  48         TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d"
  49                         " irq-%-1d child-%d",
  50                         __get_str(name), __entry->flags,
  51                         __entry->usage_count,
  52                         __entry->disable_depth,
  53                         __entry->runtime_auto,
  54                         __entry->request_pending,
  55                         __entry->irq_safe,
  56                         __entry->child_count
  57                  )
  58 );
  59 DEFINE_EVENT(rpm_internal, rpm_suspend,
  60 
  61         TP_PROTO(struct device *dev, int flags),
  62 
  63         TP_ARGS(dev, flags)
  64 );
  65 DEFINE_EVENT(rpm_internal, rpm_resume,
  66 
  67         TP_PROTO(struct device *dev, int flags),
  68 
  69         TP_ARGS(dev, flags)
  70 );
  71 DEFINE_EVENT(rpm_internal, rpm_idle,
  72 
  73         TP_PROTO(struct device *dev, int flags),
  74 
  75         TP_ARGS(dev, flags)
  76 );
  77 
  78 TRACE_EVENT(rpm_return_int,
  79         TP_PROTO(struct device *dev, unsigned long ip, int ret),
  80         TP_ARGS(dev, ip, ret),
  81 
  82         TP_STRUCT__entry(
  83                 __string(       name,           dev_name(dev))
  84                 __field(        unsigned long,          ip      )
  85                 __field(        int,                    ret     )
  86         ),
  87 
  88         TP_fast_assign(
  89                 __assign_str(name, dev_name(dev));
  90                 __entry->ip = ip;
  91                 __entry->ret = ret;
  92         ),
  93 
  94         TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name),
  95                 __entry->ret)
  96 );
  97 
  98 #endif /* _TRACE_RUNTIME_POWER_H */
  99 
 100 /* This part must be outside protection */
 101 #include <trace/define_trace.h>

/* [<][>][^][v][top][bottom][index][help] */