Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
cef9e99e
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
161
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
cef9e99e
编写于
11月 22, 2013
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/ttm: explicitly wait for bo idle before memcpy buffer move
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
35b8141b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
19 deletion
+18
-19
drivers/gpu/drm/nouveau/nouveau_bo.c
drivers/gpu/drm/nouveau/nouveau_bo.c
+18
-19
未找到文件。
drivers/gpu/drm/nouveau/nouveau_bo.c
浏览文件 @
cef9e99e
...
...
@@ -1180,28 +1180,27 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr,
goto
out
;
}
/* CPU copy if we have no accelerated method available */
if
(
!
drm
->
ttm
.
move
)
{
ret
=
ttm_bo_move_memcpy
(
bo
,
evict
,
no_wait_gpu
,
new_mem
);
goto
out
;
}
/* Hardware assisted copy. */
if
(
new_mem
->
mem_type
==
TTM_PL_SYSTEM
)
ret
=
nouveau_bo_move_flipd
(
bo
,
evict
,
intr
,
no_wait_gpu
,
new_mem
);
else
if
(
old_mem
->
mem_type
==
TTM_PL_SYSTEM
)
ret
=
nouveau_bo_move_flips
(
bo
,
evict
,
intr
,
no_wait_gpu
,
new_mem
);
else
ret
=
nouveau_bo_move_m2mf
(
bo
,
evict
,
intr
,
no_wait_gpu
,
new_mem
);
if
(
!
ret
)
goto
out
;
if
(
drm
->
ttm
.
move
)
{
if
(
new_mem
->
mem_type
==
TTM_PL_SYSTEM
)
ret
=
nouveau_bo_move_flipd
(
bo
,
evict
,
intr
,
no_wait_gpu
,
new_mem
);
else
if
(
old_mem
->
mem_type
==
TTM_PL_SYSTEM
)
ret
=
nouveau_bo_move_flips
(
bo
,
evict
,
intr
,
no_wait_gpu
,
new_mem
);
else
ret
=
nouveau_bo_move_m2mf
(
bo
,
evict
,
intr
,
no_wait_gpu
,
new_mem
);
if
(
!
ret
)
goto
out
;
}
/* Fallback to software copy. */
ret
=
ttm_bo_move_memcpy
(
bo
,
evict
,
no_wait_gpu
,
new_mem
);
spin_lock
(
&
bo
->
bdev
->
fence_lock
);
ret
=
ttm_bo_wait
(
bo
,
true
,
intr
,
no_wait_gpu
);
spin_unlock
(
&
bo
->
bdev
->
fence_lock
);
if
(
ret
==
0
)
ret
=
ttm_bo_move_memcpy
(
bo
,
evict
,
no_wait_gpu
,
new_mem
);
out:
if
(
nv_device
(
drm
->
device
)
->
card_type
<
NV_50
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录