Linux Audio

Check our new training course

Loading...
v5.4
  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
 12struct device;
 13
 14/*
 15 * The rpm_internal events are used for tracing some important
 16 * runtime pm internal functions.
 17 */
 18DECLARE_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);
 59DEFINE_EVENT(rpm_internal, rpm_suspend,
 60
 61	TP_PROTO(struct device *dev, int flags),
 62
 63	TP_ARGS(dev, flags)
 64);
 65DEFINE_EVENT(rpm_internal, rpm_resume,
 66
 67	TP_PROTO(struct device *dev, int flags),
 68
 69	TP_ARGS(dev, flags)
 70);
 71DEFINE_EVENT(rpm_internal, rpm_idle,
 72
 73	TP_PROTO(struct device *dev, int flags),
 74
 75	TP_ARGS(dev, flags)
 76);
 77
 78TRACE_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>
v4.17
  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
 12struct device;
 13
 14/*
 15 * The rpm_internal events are used for tracing some important
 16 * runtime pm internal functions.
 17 */
 18DECLARE_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);
 59DEFINE_EVENT(rpm_internal, rpm_suspend,
 60
 61	TP_PROTO(struct device *dev, int flags),
 62
 63	TP_ARGS(dev, flags)
 64);
 65DEFINE_EVENT(rpm_internal, rpm_resume,
 66
 67	TP_PROTO(struct device *dev, int flags),
 68
 69	TP_ARGS(dev, flags)
 70);
 71DEFINE_EVENT(rpm_internal, rpm_idle,
 72
 73	TP_PROTO(struct device *dev, int flags),
 74
 75	TP_ARGS(dev, flags)
 76);
 77
 78TRACE_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>