Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
102e7346
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
102e7346
编写于
7月 07, 2010
作者:
D
Dave Airlie
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'drm-tracepoints' into drm-testing
上级
5c8d7171
e5510fac
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
128 addition
and
1 deletion
+128
-1
drivers/gpu/drm/Makefile
drivers/gpu/drm/Makefile
+4
-1
drivers/gpu/drm/drm_irq.c
drivers/gpu/drm/drm_irq.c
+11
-0
drivers/gpu/drm/drm_trace.h
drivers/gpu/drm/drm_trace.h
+66
-0
drivers/gpu/drm/drm_trace_points.c
drivers/gpu/drm/drm_trace_points.c
+4
-0
drivers/gpu/drm/i915/i915_trace.h
drivers/gpu/drm/i915/i915_trace.h
+36
-0
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_display.c
+5
-0
include/drm/drmP.h
include/drm/drmP.h
+2
-0
未找到文件。
drivers/gpu/drm/Makefile
浏览文件 @
102e7346
...
...
@@ -11,7 +11,8 @@ drm-y := drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o \
drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o
\
drm_platform.o drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o
\
drm_crtc.o drm_modes.o drm_edid.o
\
drm_info.o drm_debugfs.o drm_encoder_slave.o
drm_info.o drm_debugfs.o drm_encoder_slave.o
\
drm_trace_points.o
drm-$(CONFIG_COMPAT)
+=
drm_ioc32.o
...
...
@@ -19,6 +20,8 @@ drm_kms_helper-y := drm_fb_helper.o drm_crtc_helper.o drm_dp_i2c_helper.o
obj-$(CONFIG_DRM_KMS_HELPER)
+=
drm_kms_helper.o
CFLAGS_drm_trace_points.o
:=
-I
$(src)
obj-$(CONFIG_DRM)
+=
drm.o
obj-$(CONFIG_DRM_TTM)
+=
ttm/
obj-$(CONFIG_DRM_TDFX)
+=
tdfx/
...
...
drivers/gpu/drm/drm_irq.c
浏览文件 @
102e7346
...
...
@@ -34,6 +34,7 @@
*/
#include "drmP.h"
#include "drm_trace.h"
#include <linux/interrupt.h>
/* For task queue support */
#include <linux/slab.h>
...
...
@@ -590,6 +591,7 @@ static int drm_queue_vblank_event(struct drm_device *dev, int pipe,
return
-
ENOMEM
;
e
->
pipe
=
pipe
;
e
->
base
.
pid
=
current
->
pid
;
e
->
event
.
base
.
type
=
DRM_EVENT_VBLANK
;
e
->
event
.
base
.
length
=
sizeof
e
->
event
;
e
->
event
.
user_data
=
vblwait
->
request
.
signal
;
...
...
@@ -617,6 +619,9 @@ static int drm_queue_vblank_event(struct drm_device *dev, int pipe,
DRM_DEBUG
(
"event on vblank count %d, current %d, crtc %d
\n
"
,
vblwait
->
request
.
sequence
,
seq
,
pipe
);
trace_drm_vblank_event_queued
(
current
->
pid
,
pipe
,
vblwait
->
request
.
sequence
);
e
->
event
.
sequence
=
vblwait
->
request
.
sequence
;
if
((
seq
-
vblwait
->
request
.
sequence
)
<=
(
1
<<
23
))
{
e
->
event
.
tv_sec
=
now
.
tv_sec
;
...
...
@@ -624,6 +629,8 @@ static int drm_queue_vblank_event(struct drm_device *dev, int pipe,
drm_vblank_put
(
dev
,
e
->
pipe
);
list_add_tail
(
&
e
->
base
.
link
,
&
e
->
base
.
file_priv
->
event_list
);
wake_up_interruptible
(
&
e
->
base
.
file_priv
->
event_wait
);
trace_drm_vblank_event_delivered
(
current
->
pid
,
pipe
,
vblwait
->
request
.
sequence
);
}
else
{
list_add_tail
(
&
e
->
base
.
link
,
&
dev
->
vblank_event_list
);
}
...
...
@@ -754,9 +761,13 @@ void drm_handle_vblank_events(struct drm_device *dev, int crtc)
drm_vblank_put
(
dev
,
e
->
pipe
);
list_move_tail
(
&
e
->
base
.
link
,
&
e
->
base
.
file_priv
->
event_list
);
wake_up_interruptible
(
&
e
->
base
.
file_priv
->
event_wait
);
trace_drm_vblank_event_delivered
(
e
->
base
.
pid
,
e
->
pipe
,
e
->
event
.
sequence
);
}
spin_unlock_irqrestore
(
&
dev
->
event_lock
,
flags
);
trace_drm_vblank_event
(
crtc
,
seq
);
}
/**
...
...
drivers/gpu/drm/drm_trace.h
0 → 100644
浏览文件 @
102e7346
#if !defined(_DRM_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
#define _DRM_TRACE_H_
#include <linux/stringify.h>
#include <linux/types.h>
#include <linux/tracepoint.h>
#undef TRACE_SYSTEM
#define TRACE_SYSTEM drm
#define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
#define TRACE_INCLUDE_FILE drm_trace
TRACE_EVENT
(
drm_vblank_event
,
TP_PROTO
(
int
crtc
,
unsigned
int
seq
),
TP_ARGS
(
crtc
,
seq
),
TP_STRUCT__entry
(
__field
(
int
,
crtc
)
__field
(
unsigned
int
,
seq
)
),
TP_fast_assign
(
__entry
->
crtc
=
crtc
;
__entry
->
seq
=
seq
;
),
TP_printk
(
"crtc=%d, seq=%d"
,
__entry
->
crtc
,
__entry
->
seq
)
);
TRACE_EVENT
(
drm_vblank_event_queued
,
TP_PROTO
(
pid_t
pid
,
int
crtc
,
unsigned
int
seq
),
TP_ARGS
(
pid
,
crtc
,
seq
),
TP_STRUCT__entry
(
__field
(
pid_t
,
pid
)
__field
(
int
,
crtc
)
__field
(
unsigned
int
,
seq
)
),
TP_fast_assign
(
__entry
->
pid
=
pid
;
__entry
->
crtc
=
crtc
;
__entry
->
seq
=
seq
;
),
TP_printk
(
"pid=%d, crtc=%d, seq=%d"
,
__entry
->
pid
,
__entry
->
crtc
,
\
__entry
->
seq
)
);
TRACE_EVENT
(
drm_vblank_event_delivered
,
TP_PROTO
(
pid_t
pid
,
int
crtc
,
unsigned
int
seq
),
TP_ARGS
(
pid
,
crtc
,
seq
),
TP_STRUCT__entry
(
__field
(
pid_t
,
pid
)
__field
(
int
,
crtc
)
__field
(
unsigned
int
,
seq
)
),
TP_fast_assign
(
__entry
->
pid
=
pid
;
__entry
->
crtc
=
crtc
;
__entry
->
seq
=
seq
;
),
TP_printk
(
"pid=%d, crtc=%d, seq=%d"
,
__entry
->
pid
,
__entry
->
crtc
,
\
__entry
->
seq
)
);
#endif
/* _DRM_TRACE_H_ */
/* This part must be outside protection */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#include <trace/define_trace.h>
drivers/gpu/drm/drm_trace_points.c
0 → 100644
浏览文件 @
102e7346
#include "drmP.h"
#define CREATE_TRACE_POINTS
#include "drm_trace.h"
drivers/gpu/drm/i915/i915_trace.h
浏览文件 @
102e7346
...
...
@@ -262,6 +262,42 @@ DEFINE_EVENT(i915_ring, i915_ring_wait_end,
TP_ARGS
(
dev
)
);
TRACE_EVENT
(
i915_flip_request
,
TP_PROTO
(
int
plane
,
struct
drm_gem_object
*
obj
),
TP_ARGS
(
plane
,
obj
),
TP_STRUCT__entry
(
__field
(
int
,
plane
)
__field
(
struct
drm_gem_object
*
,
obj
)
),
TP_fast_assign
(
__entry
->
plane
=
plane
;
__entry
->
obj
=
obj
;
),
TP_printk
(
"plane=%d, obj=%p"
,
__entry
->
plane
,
__entry
->
obj
)
);
TRACE_EVENT
(
i915_flip_complete
,
TP_PROTO
(
int
plane
,
struct
drm_gem_object
*
obj
),
TP_ARGS
(
plane
,
obj
),
TP_STRUCT__entry
(
__field
(
int
,
plane
)
__field
(
struct
drm_gem_object
*
,
obj
)
),
TP_fast_assign
(
__entry
->
plane
=
plane
;
__entry
->
obj
=
obj
;
),
TP_printk
(
"plane=%d, obj=%p"
,
__entry
->
plane
,
__entry
->
obj
)
);
#endif
/* _I915_TRACE_H_ */
/* This part must be outside protection */
...
...
drivers/gpu/drm/i915/intel_display.c
浏览文件 @
102e7346
...
...
@@ -33,6 +33,7 @@
#include "intel_drv.h"
#include "i915_drm.h"
#include "i915_drv.h"
#include "i915_trace.h"
#include "drm_dp_helper.h"
#include "drm_crtc_helper.h"
...
...
@@ -4650,6 +4651,8 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
atomic_dec_and_test
(
&
obj_priv
->
pending_flip
))
DRM_WAKEUP
(
&
dev_priv
->
pending_flip_queue
);
schedule_work
(
&
work
->
work
);
trace_i915_flip_complete
(
intel_crtc
->
plane
,
work
->
pending_flip_obj
);
}
void
intel_finish_page_flip
(
struct
drm_device
*
dev
,
int
pipe
)
...
...
@@ -4781,6 +4784,8 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
mutex_unlock
(
&
dev
->
struct_mutex
);
trace_i915_flip_request
(
intel_crtc
->
plane
,
obj
);
return
0
;
}
...
...
include/drm/drmP.h
浏览文件 @
102e7346
...
...
@@ -406,6 +406,8 @@ struct drm_pending_event {
struct
drm_event
*
event
;
struct
list_head
link
;
struct
drm_file
*
file_priv
;
pid_t
pid
;
/* pid of requester, no guarantee it's valid by the time
we deliver the event, for tracing only */
void
(
*
destroy
)(
struct
drm_pending_event
*
event
);
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录