Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
3607bfd3
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
170
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看板
提交
3607bfd3
编写于
5月 19, 2017
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/disp/nv50-: execute supervisor on its own workqueue
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
7d0a01a6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
3 deletion
+10
-3
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
+8
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
+1
-0
未找到文件。
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
浏览文件 @
3607bfd3
...
...
@@ -459,7 +459,7 @@ gf119_disp_intr(struct nv50_disp *disp)
u32
stat
=
nvkm_rd32
(
device
,
0x6100ac
);
if
(
stat
&
0x00000007
)
{
disp
->
super
=
(
stat
&
0x00000007
);
schedule_work
(
&
disp
->
supervisor
);
queue_work
(
disp
->
wq
,
&
disp
->
supervisor
);
nvkm_wr32
(
device
,
0x6100ac
,
disp
->
super
);
stat
&=
~
0x00000007
;
}
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
浏览文件 @
3607bfd3
...
...
@@ -111,6 +111,8 @@ nv50_disp_dtor_(struct nvkm_disp *base)
{
struct
nv50_disp
*
disp
=
nv50_disp
(
base
);
nvkm_event_fini
(
&
disp
->
uevent
);
if
(
disp
->
wq
)
destroy_workqueue
(
disp
->
wq
);
return
disp
;
}
...
...
@@ -136,7 +138,6 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device,
if
(
!
(
disp
=
kzalloc
(
sizeof
(
*
disp
),
GFP_KERNEL
)))
return
-
ENOMEM
;
INIT_WORK
(
&
disp
->
supervisor
,
func
->
super
);
disp
->
func
=
func
;
*
pdisp
=
&
disp
->
base
;
...
...
@@ -144,6 +145,11 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device,
if
(
ret
)
return
ret
;
disp
->
wq
=
create_singlethread_workqueue
(
"nvkm-disp"
);
if
(
!
disp
->
wq
)
return
-
ENOMEM
;
INIT_WORK
(
&
disp
->
supervisor
,
func
->
super
);
for
(
i
=
0
;
func
->
head
.
new
&&
i
<
heads
;
i
++
)
{
ret
=
func
->
head
.
new
(
&
disp
->
base
,
i
);
if
(
ret
)
...
...
@@ -803,7 +809,7 @@ nv50_disp_intr(struct nv50_disp *disp)
if
(
intr1
&
0x00000070
)
{
disp
->
super
=
(
intr1
&
0x00000070
);
schedule_work
(
&
disp
->
supervisor
);
queue_work
(
disp
->
wq
,
&
disp
->
supervisor
);
nvkm_wr32
(
device
,
0x610024
,
disp
->
super
);
}
}
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
浏览文件 @
3607bfd3
...
...
@@ -12,6 +12,7 @@ struct nv50_disp {
const
struct
nv50_disp_func
*
func
;
struct
nvkm_disp
base
;
struct
workqueue_struct
*
wq
;
struct
work_struct
supervisor
;
u32
super
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录