Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
f7b2ece3
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看板
提交
f7b2ece3
编写于
5月 08, 2018
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/disp/nv50-: fetch mask of available heads during oneinit
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
3b9ba66a
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
56 addition
and
45 deletion
+56
-45
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
+2
-10
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.h
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.h
+4
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/headgf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/headgf119.c
+8
-3
drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv50.c
+7
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c
+2
-2
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
+8
-5
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
+3
-3
未找到文件。
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c
浏览文件 @
f7b2ece3
...
...
@@ -32,7 +32,7 @@ g84_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
g84_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
2
,
.
new
=
g84_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -41,5 +41,5 @@ g84_disp = {
int
g84_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
g84_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
g84_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
浏览文件 @
f7b2ece3
...
...
@@ -32,7 +32,7 @@ g94_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
g94_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
g94_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -41,5 +41,5 @@ g94_disp = {
int
g94_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
g94_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
g94_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
浏览文件 @
f7b2ece3
...
...
@@ -164,14 +164,6 @@ gf119_disp_intr(struct nv50_disp *disp)
}
}
int
gf119_disp_new_
(
const
struct
nv50_disp_func
*
func
,
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
u32
heads
=
nvkm_rd32
(
device
,
0x022448
);
return
nv50_disp_new_
(
func
,
device
,
index
,
heads
,
pdisp
);
}
static
const
struct
nv50_disp_func
gf119_disp
=
{
.
intr
=
gf119_disp_intr
,
...
...
@@ -179,7 +171,7 @@ gf119_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gf119_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gf119_sor_new
},
};
...
...
@@ -187,5 +179,5 @@ gf119_disp = {
int
gf119_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gf119_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gf119_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c
浏览文件 @
f7b2ece3
...
...
@@ -33,7 +33,7 @@ gk104_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gk104_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gk104_sor_new
},
};
...
...
@@ -41,5 +41,5 @@ gk104_disp = {
int
gk104_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gk104_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gk104_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c
浏览文件 @
f7b2ece3
...
...
@@ -33,7 +33,7 @@ gk110_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gk110_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gk104_sor_new
},
};
...
...
@@ -41,5 +41,5 @@ gk110_disp = {
int
gk110_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gk110_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gk110_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
浏览文件 @
f7b2ece3
...
...
@@ -33,7 +33,7 @@ gm107_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gm107_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gm107_sor_new
},
};
...
...
@@ -41,5 +41,5 @@ gm107_disp = {
int
gm107_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gm107_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gm107_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
浏览文件 @
f7b2ece3
...
...
@@ -33,7 +33,7 @@ gm200_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gm200_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gm200_sor_new
},
};
...
...
@@ -41,5 +41,5 @@ gm200_disp = {
int
gm200_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gm200_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gm200_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c
浏览文件 @
f7b2ece3
...
...
@@ -33,12 +33,12 @@ gp100_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gp100_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
sor
=
{
.
nr
=
4
,
.
new
=
gm200_sor_new
},
};
int
gp100_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gp100_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gp100_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
浏览文件 @
f7b2ece3
...
...
@@ -59,12 +59,12 @@ gp102_disp = {
.
uevent
=
&
gf119_disp_chan_uevent
,
.
super
=
gf119_disp_super
,
.
root
=
&
gp102_disp_root_oclass
,
.
head
.
new
=
gf119_head_new
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
}
,
.
sor
=
{
.
nr
=
4
,
.
new
=
gm200_sor_new
},
};
int
gp102_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
gf119
_disp_new_
(
&
gp102_disp
,
device
,
index
,
pdisp
);
return
nv50
_disp_new_
(
&
gp102_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
浏览文件 @
f7b2ece3
...
...
@@ -32,7 +32,7 @@ gt200_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
gt200_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
2
,
.
new
=
g84_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -41,5 +41,5 @@ gt200_disp = {
int
gt200_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
gt200_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
gt200_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c
浏览文件 @
f7b2ece3
...
...
@@ -32,7 +32,7 @@ gt215_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
gt215_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gt215_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -41,5 +41,5 @@ gt215_disp = {
int
gt215_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
gt215_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
gt215_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.h
浏览文件 @
f7b2ece3
...
...
@@ -52,6 +52,10 @@ void nv50_head_rgpos(struct nvkm_head *, u16 *, u16 *);
#define HEAD_DBG(h,f,a...) HEAD_MSG((h), debug, f, ##a)
int
nv04_head_new
(
struct
nvkm_disp
*
,
int
id
);
int
nv50_head_cnt
(
struct
nvkm_disp
*
,
unsigned
long
*
);
int
nv50_head_new
(
struct
nvkm_disp
*
,
int
id
);
int
gf119_head_cnt
(
struct
nvkm_disp
*
,
unsigned
long
*
);
int
gf119_head_new
(
struct
nvkm_disp
*
,
int
id
);
#endif
drivers/gpu/drm/nouveau/nvkm/engine/disp/headgf119.c
浏览文件 @
f7b2ece3
...
...
@@ -92,8 +92,13 @@ gf119_head = {
int
gf119_head_new
(
struct
nvkm_disp
*
disp
,
int
id
)
{
struct
nvkm_device
*
device
=
disp
->
engine
.
subdev
.
device
;
if
(
!
(
nvkm_rd32
(
device
,
0x612004
)
&
(
0x00000001
<<
id
)))
return
0
;
return
nvkm_head_new_
(
&
gf119_head
,
disp
,
id
);
}
int
gf119_head_cnt
(
struct
nvkm_disp
*
disp
,
unsigned
long
*
pmask
)
{
struct
nvkm_device
*
device
=
disp
->
engine
.
subdev
.
device
;
*
pmask
=
nvkm_rd32
(
device
,
0x612004
)
&
0x0000000f
;
return
nvkm_rd32
(
device
,
0x022448
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv50.c
浏览文件 @
f7b2ece3
...
...
@@ -90,3 +90,10 @@ nv50_head_new(struct nvkm_disp *disp, int id)
{
return
nvkm_head_new_
(
&
nv50_head
,
disp
,
id
);
}
int
nv50_head_cnt
(
struct
nvkm_disp
*
disp
,
unsigned
long
*
pmask
)
{
*
pmask
=
3
;
return
2
;
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c
浏览文件 @
f7b2ece3
...
...
@@ -30,7 +30,7 @@ mcp77_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
g94_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
mcp77_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -39,5 +39,5 @@ mcp77_disp = {
int
mcp77_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
mcp77_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
mcp77_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c
浏览文件 @
f7b2ece3
...
...
@@ -30,7 +30,7 @@ mcp89_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
gt215_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
mcp89_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -39,5 +39,5 @@ mcp89_disp = {
int
mcp89_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
mcp89_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
mcp89_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
浏览文件 @
f7b2ece3
...
...
@@ -64,9 +64,13 @@ nv50_disp_oneinit_(struct nvkm_disp *base)
{
struct
nv50_disp
*
disp
=
nv50_disp
(
base
);
const
struct
nv50_disp_func
*
func
=
disp
->
func
;
struct
nvkm_subdev
*
subdev
=
&
disp
->
base
.
engine
.
subdev
;
int
ret
,
i
;
for
(
i
=
0
;
func
->
head
.
new
&&
i
<
disp
->
head
.
nr
;
i
++
)
{
disp
->
head
.
nr
=
func
->
head
.
cnt
(
&
disp
->
base
,
&
disp
->
head
.
mask
);
nvkm_debug
(
subdev
,
" Head(s): %d (%02lx)
\n
"
,
disp
->
head
.
nr
,
disp
->
head
.
mask
);
for_each_set_bit
(
i
,
&
disp
->
head
.
mask
,
disp
->
head
.
nr
)
{
ret
=
func
->
head
.
new
(
&
disp
->
base
,
i
);
if
(
ret
)
return
ret
;
...
...
@@ -103,7 +107,7 @@ nv50_disp_ = {
int
nv50_disp_new_
(
const
struct
nv50_disp_func
*
func
,
struct
nvkm_device
*
device
,
int
index
,
int
heads
,
struct
nvkm_disp
**
pdisp
)
int
index
,
struct
nvkm_disp
**
pdisp
)
{
struct
nv50_disp
*
disp
;
int
ret
;
...
...
@@ -122,7 +126,6 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device,
return
-
ENOMEM
;
INIT_WORK
(
&
disp
->
supervisor
,
func
->
super
);
disp
->
head
.
nr
=
heads
;
return
nvkm_event_init
(
func
->
uevent
,
1
,
ARRAY_SIZE
(
disp
->
chan
),
&
disp
->
uevent
);
...
...
@@ -633,7 +636,7 @@ nv50_disp = {
.
uevent
=
&
nv50_disp_chan_uevent
,
.
super
=
nv50_disp_super
,
.
root
=
&
nv50_disp_root_oclass
,
.
head
.
new
=
nv50_head_new
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
}
,
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
2
,
.
new
=
nv50_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
...
...
@@ -642,5 +645,5 @@ nv50_disp = {
int
nv50_disp_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_disp
**
pdisp
)
{
return
nv50_disp_new_
(
&
nv50_disp
,
device
,
index
,
2
,
pdisp
);
return
nv50_disp_new_
(
&
nv50_disp
,
device
,
index
,
pdisp
);
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
浏览文件 @
f7b2ece3
...
...
@@ -16,6 +16,7 @@ struct nv50_disp {
struct
nvkm_event
uevent
;
struct
{
unsigned
long
mask
;
int
nr
;
}
head
;
...
...
@@ -38,9 +39,7 @@ void nv50_disp_super_2_2(struct nv50_disp *, struct nvkm_head *);
void
nv50_disp_super_3_0
(
struct
nv50_disp
*
,
struct
nvkm_head
*
);
int
nv50_disp_new_
(
const
struct
nv50_disp_func
*
,
struct
nvkm_device
*
,
int
index
,
int
heads
,
struct
nvkm_disp
**
);
int
gf119_disp_new_
(
const
struct
nv50_disp_func
*
,
struct
nvkm_device
*
,
int
index
,
struct
nvkm_disp
**
);
int
index
,
struct
nvkm_disp
**
);
struct
nv50_disp_func
{
void
(
*
intr
)(
struct
nv50_disp
*
);
...
...
@@ -52,6 +51,7 @@ struct nv50_disp_func {
const
struct
nvkm_disp_oclass
*
root
;
struct
{
int
(
*
cnt
)(
struct
nvkm_disp
*
,
unsigned
long
*
mask
);
int
(
*
new
)(
struct
nvkm_disp
*
,
int
id
);
}
head
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录