Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
8d23adf7
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8d23adf7
编写于
10月 02, 2009
作者:
E
Eric Anholt
浏览文件
操作
浏览文件
下载
差异文件
Merge commit 'ickle/for-anholt' into drm-intel-next
上级
4781f20f
9d34e5db
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
46 addition
and
26 deletion
+46
-26
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_dma.c
+1
-0
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_drv.h
+2
-0
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem.c
+8
-2
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_irq.c
+10
-0
drivers/gpu/drm/i915/i915_trace.h
drivers/gpu/drm/i915/i915_trace.h
+25
-24
未找到文件。
drivers/gpu/drm/i915/i915_dma.c
浏览文件 @
8d23adf7
...
...
@@ -1468,6 +1468,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
spin_lock_init
(
&
dev_priv
->
user_irq_lock
);
spin_lock_init
(
&
dev_priv
->
error_lock
);
dev_priv
->
user_irq_refcount
=
0
;
dev_priv
->
trace_irq_seqno
=
0
;
ret
=
drm_vblank_init
(
dev
,
I915_NUM_PIPE
);
...
...
drivers/gpu/drm/i915/i915_drv.h
浏览文件 @
8d23adf7
...
...
@@ -202,6 +202,7 @@ typedef struct drm_i915_private {
spinlock_t
user_irq_lock
;
/** Refcount for i915_user_irq_get() versus i915_user_irq_put(). */
int
user_irq_refcount
;
u32
trace_irq_seqno
;
/** Cached value of IMR to avoid reads in updating the bitfield */
u32
irq_mask_reg
;
u32
pipestat
[
2
];
...
...
@@ -665,6 +666,7 @@ extern int i915_irq_emit(struct drm_device *dev, void *data,
extern
int
i915_irq_wait
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
void
i915_user_irq_get
(
struct
drm_device
*
dev
);
void
i915_trace_irq_get
(
struct
drm_device
*
dev
,
u32
seqno
);
void
i915_user_irq_put
(
struct
drm_device
*
dev
);
extern
void
i915_enable_interrupt
(
struct
drm_device
*
dev
);
...
...
drivers/gpu/drm/i915/i915_gem.c
浏览文件 @
8d23adf7
...
...
@@ -1770,7 +1770,7 @@ i915_gem_retire_requests(struct drm_device *dev)
drm_i915_private_t
*
dev_priv
=
dev
->
dev_private
;
uint32_t
seqno
;
if
(
!
dev_priv
->
hw_status_page
)
if
(
!
dev_priv
->
hw_status_page
||
list_empty
(
&
dev_priv
->
mm
.
request_list
)
)
return
;
seqno
=
i915_get_gem_seqno
(
dev
);
...
...
@@ -1794,6 +1794,12 @@ i915_gem_retire_requests(struct drm_device *dev)
}
else
break
;
}
if
(
unlikely
(
dev_priv
->
trace_irq_seqno
&&
i915_seqno_passed
(
dev_priv
->
trace_irq_seqno
,
seqno
)))
{
i915_user_irq_put
(
dev
);
dev_priv
->
trace_irq_seqno
=
0
;
}
}
void
...
...
@@ -3352,7 +3358,7 @@ i915_dispatch_gem_execbuffer(struct drm_device *dev,
exec_start
=
(
uint32_t
)
exec_offset
+
exec
->
batch_start_offset
;
exec_len
=
(
uint32_t
)
exec
->
batch_len
;
trace_i915_gem_request_submit
(
dev
,
dev_priv
->
mm
.
next_gem_seqno
);
trace_i915_gem_request_submit
(
dev
,
dev_priv
->
mm
.
next_gem_seqno
+
1
);
count
=
nbox
?
nbox
:
1
;
...
...
drivers/gpu/drm/i915/i915_irq.c
浏览文件 @
8d23adf7
...
...
@@ -725,6 +725,16 @@ void i915_user_irq_put(struct drm_device *dev)
spin_unlock_irqrestore
(
&
dev_priv
->
user_irq_lock
,
irqflags
);
}
void
i915_trace_irq_get
(
struct
drm_device
*
dev
,
u32
seqno
)
{
drm_i915_private_t
*
dev_priv
=
(
drm_i915_private_t
*
)
dev
->
dev_private
;
if
(
dev_priv
->
trace_irq_seqno
==
0
)
i915_user_irq_get
(
dev
);
dev_priv
->
trace_irq_seqno
=
seqno
;
}
static
int
i915_wait_irq
(
struct
drm_device
*
dev
,
int
irq_nr
)
{
drm_i915_private_t
*
dev_priv
=
(
drm_i915_private_t
*
)
dev
->
dev_private
;
...
...
drivers/gpu/drm/i915/i915_trace.h
浏览文件 @
8d23adf7
...
...
@@ -158,16 +158,17 @@ TRACE_EVENT(i915_gem_request_submit,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
i915_trace_irq_get
(
dev
,
seqno
);
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_flush
,
...
...
@@ -178,20 +179,20 @@ TRACE_EVENT(i915_gem_request_flush,
TP_ARGS
(
dev
,
seqno
,
flush_domains
,
invalidate_domains
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
__field
(
u32
,
flush_domains
)
__field
(
u32
,
invalidate_domains
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
__entry
->
flush_domains
=
flush_domains
;
__entry
->
invalidate_domains
=
invalidate_domains
;
),
TP_printk
(
"dev=%
p
, seqno=%u, flush=%04x, invalidate=%04x"
,
TP_printk
(
"dev=%
u
, seqno=%u, flush=%04x, invalidate=%04x"
,
__entry
->
dev
,
__entry
->
seqno
,
__entry
->
flush_domains
,
__entry
->
invalidate_domains
)
);
...
...
@@ -204,16 +205,16 @@ TRACE_EVENT(i915_gem_request_complete,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_retire
,
...
...
@@ -223,16 +224,16 @@ TRACE_EVENT(i915_gem_request_retire,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_wait_begin
,
...
...
@@ -242,16 +243,16 @@ TRACE_EVENT(i915_gem_request_wait_begin,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_wait_end
,
...
...
@@ -261,16 +262,16 @@ TRACE_EVENT(i915_gem_request_wait_end,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_ring_wait_begin
,
...
...
@@ -280,14 +281,14 @@ TRACE_EVENT(i915_ring_wait_begin,
TP_ARGS
(
dev
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
),
TP_printk
(
"dev=%
p
"
,
__entry
->
dev
)
TP_printk
(
"dev=%
u
"
,
__entry
->
dev
)
);
TRACE_EVENT
(
i915_ring_wait_end
,
...
...
@@ -297,14 +298,14 @@ TRACE_EVENT(i915_ring_wait_end,
TP_ARGS
(
dev
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
),
TP_printk
(
"dev=%
p
"
,
__entry
->
dev
)
TP_printk
(
"dev=%
u
"
,
__entry
->
dev
)
);
#endif
/* _I915_TRACE_H_ */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录