Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
6fa8e629
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6fa8e629
编写于
8月 06, 2012
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nv84/fifo: mask only the engine we're waiting on for channel unload
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
49981046
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
6 deletion
+10
-6
drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c
drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c
+10
-6
未找到文件。
drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c
浏览文件 @
6fa8e629
...
...
@@ -81,14 +81,15 @@ nv84_fifo_context_detach(struct nouveau_object *parent, bool suspend,
struct
nv50_fifo_priv
*
priv
=
(
void
*
)
parent
->
engine
;
struct
nv50_fifo_base
*
base
=
(
void
*
)
parent
->
parent
;
struct
nv50_fifo_chan
*
chan
=
(
void
*
)
parent
;
u32
addr
;
u32
addr
,
save
,
engn
;
bool
done
;
switch
(
nv_engidx
(
object
->
engine
))
{
case
NVDEV_ENGINE_SW
:
return
0
;
case
NVDEV_ENGINE_GR
:
addr
=
0x0020
;
break
;
case
NVDEV_ENGINE_MPEG
:
addr
=
0x0060
;
break
;
case
NVDEV_ENGINE_CRYPT
:
addr
=
0x00a0
;
break
;
case
NVDEV_ENGINE_COPY0
:
addr
=
0x00c0
;
break
;
case
NVDEV_ENGINE_GR
:
engn
=
0
;
addr
=
0x0020
;
break
;
case
NVDEV_ENGINE_MPEG
:
engn
=
1
;
addr
=
0x0060
;
break
;
case
NVDEV_ENGINE_CRYPT
:
engn
=
4
;
addr
=
0x00a0
;
break
;
case
NVDEV_ENGINE_COPY0
:
engn
=
2
;
addr
=
0x00c0
;
break
;
default:
return
-
EINVAL
;
}
...
...
@@ -101,8 +102,11 @@ nv84_fifo_context_detach(struct nouveau_object *parent, bool suspend,
nv_wo32
(
base
->
eng
,
addr
+
0x14
,
0x00000000
);
bar
->
flush
(
bar
);
save
=
nv_mask
(
priv
,
0x002520
,
0x0000003f
,
1
<<
engn
);
nv_wr32
(
priv
,
0x0032fc
,
nv_gpuobj
(
base
)
->
addr
>>
12
);
if
(
!
nv_wait_ne
(
priv
,
0x0032fc
,
0xffffffff
,
0xffffffff
))
{
done
=
nv_wait_ne
(
priv
,
0x0032fc
,
0xffffffff
,
0xffffffff
);
nv_wr32
(
priv
,
0x002520
,
save
);
if
(
!
done
)
{
nv_error
(
priv
,
"channel %d unload timeout
\n
"
,
chan
->
base
.
chid
);
if
(
suspend
)
return
-
EBUSY
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录