Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
bf5d1a6b
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
163
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看板
提交
bf5d1a6b
编写于
5月 08, 2018
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/disp/nv50-: fetch mask of available dacs during oneinit
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
f7b2ece3
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
44 addition
and
31 deletion
+44
-31
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c
+8
-3
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
+8
-3
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
+1
-1
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/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
+3
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
+10
-5
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
+2
-7
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
+1
-1
未找到文件。
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c
浏览文件 @
bf5d1a6b
...
...
@@ -58,8 +58,13 @@ gf119_dac = {
int
gf119_dac_new
(
struct
nvkm_disp
*
disp
,
int
id
)
{
struct
nvkm_device
*
device
=
disp
->
engine
.
subdev
.
device
;
if
(
!
(
nvkm_rd32
(
device
,
0x612004
)
&
(
0x00000010
<<
id
)))
return
0
;
return
nvkm_ior_new_
(
&
gf119_dac
,
disp
,
DAC
,
id
);
}
int
gf119_dac_cnt
(
struct
nvkm_disp
*
disp
,
unsigned
long
*
pmask
)
{
struct
nvkm_device
*
device
=
disp
->
engine
.
subdev
.
device
;
*
pmask
=
(
nvkm_rd32
(
device
,
0x612004
)
&
0x000000f0
)
>>
4
;
return
4
;
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
浏览文件 @
bf5d1a6b
...
...
@@ -109,8 +109,13 @@ nv50_dac = {
int
nv50_dac_new
(
struct
nvkm_disp
*
disp
,
int
id
)
{
struct
nvkm_device
*
device
=
disp
->
engine
.
subdev
.
device
;
if
(
!
(
nvkm_rd32
(
device
,
0x610184
)
&
(
0x00100000
<<
id
)))
return
0
;
return
nvkm_ior_new_
(
&
nv50_dac
,
disp
,
DAC
,
id
);
}
int
nv50_dac_cnt
(
struct
nvkm_disp
*
disp
,
unsigned
long
*
pmask
)
{
struct
nvkm_device
*
device
=
disp
->
engine
.
subdev
.
device
;
*
pmask
=
(
nvkm_rd32
(
device
,
0x610184
)
&
0x00700000
)
>>
20
;
return
3
;
}
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c
浏览文件 @
bf5d1a6b
...
...
@@ -33,7 +33,7 @@ g84_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
g84_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
2
,
.
new
=
g84_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
浏览文件 @
bf5d1a6b
...
...
@@ -33,7 +33,7 @@ g94_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
g94_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
g94_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
浏览文件 @
bf5d1a6b
...
...
@@ -172,7 +172,7 @@ gf119_disp = {
.
super
=
gf119_disp_super
,
.
root
=
&
gf119_disp_root_oclass
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
dac
=
{
.
cnt
=
gf119_dac_cnt
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gf119_sor_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c
浏览文件 @
bf5d1a6b
...
...
@@ -34,7 +34,7 @@ gk104_disp = {
.
super
=
gf119_disp_super
,
.
root
=
&
gk104_disp_root_oclass
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
dac
=
{
.
cnt
=
gf119_dac_cnt
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gk104_sor_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c
浏览文件 @
bf5d1a6b
...
...
@@ -34,7 +34,7 @@ gk110_disp = {
.
super
=
gf119_disp_super
,
.
root
=
&
gk110_disp_root_oclass
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
dac
=
{
.
cnt
=
gf119_dac_cnt
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gk104_sor_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
浏览文件 @
bf5d1a6b
...
...
@@ -34,7 +34,7 @@ gm107_disp = {
.
super
=
gf119_disp_super
,
.
root
=
&
gm107_disp_root_oclass
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
dac
=
{
.
cnt
=
gf119_dac_cnt
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gm107_sor_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
浏览文件 @
bf5d1a6b
...
...
@@ -34,7 +34,7 @@ gm200_disp = {
.
super
=
gf119_disp_super
,
.
root
=
&
gm200_disp_root_oclass
,
.
head
=
{
.
cnt
=
gf119_head_cnt
,
.
new
=
gf119_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
gf119_dac_new
},
.
dac
=
{
.
cnt
=
gf119_dac_cnt
,
.
new
=
gf119_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gm200_sor_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
浏览文件 @
bf5d1a6b
...
...
@@ -33,7 +33,7 @@ gt200_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
gt200_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
2
,
.
new
=
g84_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c
浏览文件 @
bf5d1a6b
...
...
@@ -33,7 +33,7 @@ gt215_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
gt215_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
gt215_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
浏览文件 @
bf5d1a6b
...
...
@@ -153,7 +153,10 @@ void gf119_hda_eld(struct nvkm_ior *, u8 *, u8);
#define IOR_WARN(i,f,a...) IOR_MSG((i), warn, f, ##a)
#define IOR_DBG(i,f,a...) IOR_MSG((i), debug, f, ##a)
int
nv50_dac_cnt
(
struct
nvkm_disp
*
,
unsigned
long
*
);
int
nv50_dac_new
(
struct
nvkm_disp
*
,
int
);
int
gf119_dac_cnt
(
struct
nvkm_disp
*
,
unsigned
long
*
);
int
gf119_dac_new
(
struct
nvkm_disp
*
,
int
);
int
nv50_pior_new
(
struct
nvkm_disp
*
,
int
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c
浏览文件 @
bf5d1a6b
...
...
@@ -31,7 +31,7 @@ mcp77_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
g94_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
mcp77_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c
浏览文件 @
bf5d1a6b
...
...
@@ -31,7 +31,7 @@ mcp89_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
gt215_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
4
,
.
new
=
mcp89_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
浏览文件 @
bf5d1a6b
...
...
@@ -76,10 +76,15 @@ nv50_disp_oneinit_(struct nvkm_disp *base)
return
ret
;
}
for
(
i
=
0
;
func
->
dac
.
new
&&
i
<
func
->
dac
.
nr
;
i
++
)
{
ret
=
func
->
dac
.
new
(
&
disp
->
base
,
i
);
if
(
ret
)
return
ret
;
if
(
func
->
dac
.
cnt
)
{
disp
->
dac
.
nr
=
func
->
dac
.
cnt
(
&
disp
->
base
,
&
disp
->
dac
.
mask
);
nvkm_debug
(
subdev
,
" DAC(s): %d (%02lx)
\n
"
,
disp
->
dac
.
nr
,
disp
->
dac
.
mask
);
for_each_set_bit
(
i
,
&
disp
->
dac
.
mask
,
disp
->
dac
.
nr
)
{
ret
=
func
->
dac
.
new
(
&
disp
->
base
,
i
);
if
(
ret
)
return
ret
;
}
}
for
(
i
=
0
;
func
->
pior
.
new
&&
i
<
func
->
pior
.
nr
;
i
++
)
{
...
...
@@ -637,7 +642,7 @@ nv50_disp = {
.
super
=
nv50_disp_super
,
.
root
=
&
nv50_disp_root_oclass
,
.
head
=
{
.
cnt
=
nv50_head_cnt
,
.
new
=
nv50_head_new
},
.
dac
=
{
.
nr
=
3
,
.
new
=
nv50_dac_new
},
.
dac
=
{
.
cnt
=
nv50_dac_cnt
,
.
new
=
nv50_dac_new
},
.
sor
=
{
.
nr
=
2
,
.
new
=
nv50_sor_new
},
.
pior
=
{
.
nr
=
3
,
.
new
=
nv50_pior_new
},
};
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
浏览文件 @
bf5d1a6b
...
...
@@ -18,7 +18,7 @@ struct nv50_disp {
struct
{
unsigned
long
mask
;
int
nr
;
}
head
;
}
head
,
dac
;
struct
{
u32
lvdsconf
;
...
...
@@ -53,12 +53,7 @@ struct nv50_disp_func {
struct
{
int
(
*
cnt
)(
struct
nvkm_disp
*
,
unsigned
long
*
mask
);
int
(
*
new
)(
struct
nvkm_disp
*
,
int
id
);
}
head
;
struct
{
int
nr
;
int
(
*
new
)(
struct
nvkm_disp
*
,
int
id
);
}
dac
;
}
head
,
dac
;
struct
{
int
nr
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c
浏览文件 @
bf5d1a6b
...
...
@@ -64,7 +64,7 @@ gf119_disp_root_init(struct nv50_disp_root *root)
}
/* ... DAC caps */
for
(
i
=
0
;
i
<
disp
->
func
->
dac
.
nr
;
i
++
)
{
for
(
i
=
0
;
i
<
disp
->
dac
.
nr
;
i
++
)
{
tmp
=
nvkm_rd32
(
device
,
0x61a000
+
(
i
*
0x800
));
nvkm_wr32
(
device
,
0x6101c0
+
(
i
*
0x800
),
tmp
);
}
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
浏览文件 @
bf5d1a6b
...
...
@@ -427,7 +427,7 @@ nv50_disp_root_init(struct nv50_disp_root *root)
}
/* ... DAC caps */
for
(
i
=
0
;
i
<
disp
->
func
->
dac
.
nr
;
i
++
)
{
for
(
i
=
0
;
i
<
disp
->
dac
.
nr
;
i
++
)
{
tmp
=
nvkm_rd32
(
device
,
0x61a000
+
(
i
*
0x800
));
nvkm_wr32
(
device
,
0x6101d0
+
(
i
*
0x04
),
tmp
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录