Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
71a77e07
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
71a77e07
编写于
2月 02, 2011
作者:
C
Chris Wilson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/i915: Invalidate TLB caches on SNB BLT/BSD rings
Signed-off-by:
N
Chris Wilson
<
chris@chris-wilson.co.uk
>
Cc: stable@kernel.org
上级
5fe49d86
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
19 addition
and
11 deletion
+19
-11
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_reg.h
+3
-1
drivers/gpu/drm/i915/intel_ringbuffer.c
drivers/gpu/drm/i915/intel_ringbuffer.c
+16
-10
未找到文件。
drivers/gpu/drm/i915/i915_reg.h
浏览文件 @
71a77e07
...
...
@@ -174,7 +174,9 @@
* address/value pairs. Don't overdue it, though, x <= 2^4 must hold!
*/
#define MI_LOAD_REGISTER_IMM(x) MI_INSTR(0x22, 2*x-1)
#define MI_FLUSH_DW MI_INSTR(0x26, 2)
/* for GEN6 */
#define MI_FLUSH_DW MI_INSTR(0x26, 1)
/* for GEN6 */
#define MI_INVALIDATE_TLB (1<<18)
#define MI_INVALIDATE_BSD (1<<7)
#define MI_BATCH_BUFFER MI_INSTR(0x30, 1)
#define MI_BATCH_NON_SECURE (1)
#define MI_BATCH_NON_SECURE_I965 (1<<8)
...
...
drivers/gpu/drm/i915/intel_ringbuffer.c
浏览文件 @
71a77e07
...
...
@@ -1059,22 +1059,25 @@ static void gen6_bsd_ring_write_tail(struct intel_ring_buffer *ring,
}
static
int
gen6_ring_flush
(
struct
intel_ring_buffer
*
ring
,
u32
invalidate_domains
,
u32
flush_domains
)
u32
invalidate
,
u32
flush
)
{
uint32_t
cmd
;
int
ret
;
if
((
flush_domains
&
I915_GEM_DOMAIN_RENDER
)
==
0
)
if
((
(
invalidate
|
flush
)
&
I915_GEM_GPU_DOMAINS
)
==
0
)
return
0
;
ret
=
intel_ring_begin
(
ring
,
4
);
if
(
ret
)
return
ret
;
intel_ring_emit
(
ring
,
MI_FLUSH_DW
);
intel_ring_emit
(
ring
,
0
);
cmd
=
MI_FLUSH_DW
;
if
(
invalidate
&
I915_GEM_GPU_DOMAINS
)
cmd
|=
MI_INVALIDATE_TLB
|
MI_INVALIDATE_BSD
;
intel_ring_emit
(
ring
,
cmd
);
intel_ring_emit
(
ring
,
0
);
intel_ring_emit
(
ring
,
0
);
intel_ring_emit
(
ring
,
MI_NOOP
);
intel_ring_advance
(
ring
);
return
0
;
}
...
...
@@ -1230,22 +1233,25 @@ static int blt_ring_begin(struct intel_ring_buffer *ring,
}
static
int
blt_ring_flush
(
struct
intel_ring_buffer
*
ring
,
u32
invalidate_domains
,
u32
flush_domains
)
u32
invalidate
,
u32
flush
)
{
uint32_t
cmd
;
int
ret
;
if
((
flush_domains
&
I915_GEM_DOMAIN_RENDER
)
==
0
)
if
((
(
invalidate
|
flush
)
&
I915_GEM_DOMAIN_RENDER
)
==
0
)
return
0
;
ret
=
blt_ring_begin
(
ring
,
4
);
if
(
ret
)
return
ret
;
intel_ring_emit
(
ring
,
MI_FLUSH_DW
);
intel_ring_emit
(
ring
,
0
);
cmd
=
MI_FLUSH_DW
;
if
(
invalidate
&
I915_GEM_DOMAIN_RENDER
)
cmd
|=
MI_INVALIDATE_TLB
;
intel_ring_emit
(
ring
,
cmd
);
intel_ring_emit
(
ring
,
0
);
intel_ring_emit
(
ring
,
0
);
intel_ring_emit
(
ring
,
MI_NOOP
);
intel_ring_advance
(
ring
);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录