mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 18:54:09 +08:00
313162d0b8
The <linux/device.h> header includes a lot of stuff, and it in turn gets a lot of use just for the basic "struct device" which appears so often. Clean up the users as follows: 1) For those headers only needing "struct device" as a pointer in fcn args, replace the include with exactly that. 2) For headers not really using anything from device.h, simply delete the include altogether. 3) For headers relying on getting device.h implicitly before being included themselves, now explicitly include device.h 4) For files in which doing #1 or #2 uncovers an implicit dependency on some other header, fix by explicitly adding the required header(s). Any C files that were implicitly relying on device.h to be present have already been dealt with in advance. Total removals from #1 and #2: 51. Total additions coming from #3: 9. Total other implicit dependencies from #4: 7. As of 3.3-rc1, there were 110, so a net removal of 42 gives about a 38% reduction in device.h presence in include/* Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
101 lines
2.3 KiB
C
101 lines
2.3 KiB
C
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM rpm
|
|
|
|
#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_RUNTIME_POWER_H
|
|
|
|
#include <linux/ktime.h>
|
|
#include <linux/tracepoint.h>
|
|
|
|
struct device;
|
|
|
|
/*
|
|
* The rpm_internal events are used for tracing some important
|
|
* runtime pm internal functions.
|
|
*/
|
|
DECLARE_EVENT_CLASS(rpm_internal,
|
|
|
|
TP_PROTO(struct device *dev, int flags),
|
|
|
|
TP_ARGS(dev, flags),
|
|
|
|
TP_STRUCT__entry(
|
|
__string( name, dev_name(dev) )
|
|
__field( int, flags )
|
|
__field( int , usage_count )
|
|
__field( int , disable_depth )
|
|
__field( int , runtime_auto )
|
|
__field( int , request_pending )
|
|
__field( int , irq_safe )
|
|
__field( int , child_count )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(name, dev_name(dev));
|
|
__entry->flags = flags;
|
|
__entry->usage_count = atomic_read(
|
|
&dev->power.usage_count);
|
|
__entry->disable_depth = dev->power.disable_depth;
|
|
__entry->runtime_auto = dev->power.runtime_auto;
|
|
__entry->request_pending = dev->power.request_pending;
|
|
__entry->irq_safe = dev->power.irq_safe;
|
|
__entry->child_count = atomic_read(
|
|
&dev->power.child_count);
|
|
),
|
|
|
|
TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d"
|
|
" irq-%-1d child-%d",
|
|
__get_str(name), __entry->flags,
|
|
__entry->usage_count,
|
|
__entry->disable_depth,
|
|
__entry->runtime_auto,
|
|
__entry->request_pending,
|
|
__entry->irq_safe,
|
|
__entry->child_count
|
|
)
|
|
);
|
|
DEFINE_EVENT(rpm_internal, rpm_suspend,
|
|
|
|
TP_PROTO(struct device *dev, int flags),
|
|
|
|
TP_ARGS(dev, flags)
|
|
);
|
|
DEFINE_EVENT(rpm_internal, rpm_resume,
|
|
|
|
TP_PROTO(struct device *dev, int flags),
|
|
|
|
TP_ARGS(dev, flags)
|
|
);
|
|
DEFINE_EVENT(rpm_internal, rpm_idle,
|
|
|
|
TP_PROTO(struct device *dev, int flags),
|
|
|
|
TP_ARGS(dev, flags)
|
|
);
|
|
|
|
TRACE_EVENT(rpm_return_int,
|
|
TP_PROTO(struct device *dev, unsigned long ip, int ret),
|
|
TP_ARGS(dev, ip, ret),
|
|
|
|
TP_STRUCT__entry(
|
|
__string( name, dev_name(dev))
|
|
__field( unsigned long, ip )
|
|
__field( int, ret )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(name, dev_name(dev));
|
|
__entry->ip = ip;
|
|
__entry->ret = ret;
|
|
),
|
|
|
|
TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name),
|
|
__entry->ret)
|
|
);
|
|
|
|
#endif /* _TRACE_RUNTIME_POWER_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|