Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
4cddeb9b
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看板
提交
4cddeb9b
编写于
11月 04, 2016
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/disp/sor/gf119-: add method to program mst payload information
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
f2a40513
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
50 addition
and
0 deletion
+50
-0
drivers/gpu/drm/nouveau/include/nvif/cl5070.h
drivers/gpu/drm/nouveau/include/nvif/cl5070.h
+10
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h
drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h
+3
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
+23
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
+12
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
+1
-0
未找到文件。
drivers/gpu/drm/nouveau/include/nvif/cl5070.h
浏览文件 @
4cddeb9b
...
...
@@ -35,6 +35,7 @@ struct nv50_disp_mthd_v1 {
#define NV50_DISP_MTHD_V1_SOR_LVDS_SCRIPT 0x23
#define NV50_DISP_MTHD_V1_SOR_DP_PWR 0x24
#define NV50_DISP_MTHD_V1_SOR_DP_MST_LINK 0x25
#define NV50_DISP_MTHD_V1_SOR_DP_MST_VCPI 0x26
#define NV50_DISP_MTHD_V1_PIOR_PWR 0x30
__u8
method
;
__u16
hasht
;
...
...
@@ -97,6 +98,15 @@ struct nv50_disp_sor_dp_mst_link_v0 {
__u8
pad02
[
6
];
};
struct
nv50_disp_sor_dp_mst_vcpi_v0
{
__u8
version
;
__u8
pad01
[
1
];
__u8
start_slot
;
__u8
num_slots
;
__u16
pbn
;
__u16
aligned_pbn
;
};
struct
nv50_disp_pior_pwr_v0
{
__u8
version
;
__u8
state
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h
浏览文件 @
4cddeb9b
...
...
@@ -41,6 +41,8 @@ struct nvkm_output_dp_func {
int
(
*
lnk_pwr
)(
struct
nvkm_output_dp
*
,
int
nr
);
int
(
*
lnk_ctl
)(
struct
nvkm_output_dp
*
,
int
nr
,
int
bw
,
bool
ef
);
int
(
*
drv_ctl
)(
struct
nvkm_output_dp
*
,
int
ln
,
int
vs
,
int
pe
,
int
pc
);
void
(
*
vcpi
)(
struct
nvkm_output_dp
*
,
int
head
,
u8
start_slot
,
u8
num_slots
,
u16
pbn
,
u16
aligned_pbn
);
};
int
nvkm_output_dp_train
(
struct
nvkm_output
*
,
u32
rate
);
...
...
@@ -63,6 +65,7 @@ int gf119_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *,
struct
nvkm_output
**
);
int
gf119_sor_dp_lnk_ctl
(
struct
nvkm_output_dp
*
,
int
,
int
,
bool
);
int
gf119_sor_dp_drv_ctl
(
struct
nvkm_output_dp
*
,
int
,
int
,
int
,
int
);
void
gf119_sor_dp_vcpi
(
struct
nvkm_output_dp
*
,
int
,
u8
,
u8
,
u16
,
u16
);
int
gm107_sor_dp_new
(
struct
nvkm_disp
*
,
int
,
struct
dcb_output
*
,
struct
nvkm_output
**
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
浏览文件 @
4cddeb9b
...
...
@@ -200,6 +200,29 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
return
ret
;
}
break
;
case
NV50_DISP_MTHD_V1_SOR_DP_MST_VCPI
:
{
struct
nvkm_output_dp
*
outpdp
=
nvkm_output_dp
(
outp
);
union
{
struct
nv50_disp_sor_dp_mst_vcpi_v0
v0
;
}
*
args
=
data
;
int
ret
=
-
ENOSYS
;
nvif_ioctl
(
object
,
"disp sor dp mst vcpi size %d
\n
"
,
size
);
if
(
!
(
ret
=
nvif_unpack
(
ret
,
&
data
,
&
size
,
args
->
v0
,
0
,
0
,
false
)))
{
nvif_ioctl
(
object
,
"disp sor dp mst vcpi vers %d "
"slot %02x/%02x pbn %04x/%04x
\n
"
,
args
->
v0
.
version
,
args
->
v0
.
start_slot
,
args
->
v0
.
num_slots
,
args
->
v0
.
pbn
,
args
->
v0
.
aligned_pbn
);
if
(
!
outpdp
->
func
->
vcpi
)
return
-
ENODEV
;
outpdp
->
func
->
vcpi
(
outpdp
,
head
,
args
->
v0
.
start_slot
,
args
->
v0
.
num_slots
,
args
->
v0
.
pbn
,
args
->
v0
.
aligned_pbn
);
return
0
;
}
else
return
ret
;
}
break
;
case
NV50_DISP_MTHD_V1_PIOR_PWR
:
if
(
!
func
->
pior
.
power
)
return
-
ENODEV
;
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
浏览文件 @
4cddeb9b
...
...
@@ -103,12 +103,24 @@ gf119_sor_dp_drv_ctl(struct nvkm_output_dp *outp,
return
0
;
}
void
gf119_sor_dp_vcpi
(
struct
nvkm_output_dp
*
outp
,
int
head
,
u8
slot
,
u8
slot_nr
,
u16
pbn
,
u16
aligned
)
{
struct
nvkm_device
*
device
=
outp
->
base
.
disp
->
engine
.
subdev
.
device
;
const
u32
hoff
=
head
*
0x800
;
nvkm_mask
(
device
,
0x616588
+
hoff
,
0x00003f3f
,
(
slot_nr
<<
8
)
|
slot
);
nvkm_mask
(
device
,
0x61658c
+
hoff
,
0xffffffff
,
(
aligned
<<
16
)
|
pbn
);
}
static
const
struct
nvkm_output_dp_func
gf119_sor_dp_func
=
{
.
pattern
=
gf119_sor_dp_pattern
,
.
lnk_pwr
=
g94_sor_dp_lnk_pwr
,
.
lnk_ctl
=
gf119_sor_dp_lnk_ctl
,
.
drv_ctl
=
gf119_sor_dp_drv_ctl
,
.
vcpi
=
gf119_sor_dp_vcpi
,
};
int
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
浏览文件 @
4cddeb9b
...
...
@@ -43,6 +43,7 @@ gm107_sor_dp_func = {
.
lnk_pwr
=
g94_sor_dp_lnk_pwr
,
.
lnk_ctl
=
gf119_sor_dp_lnk_ctl
,
.
drv_ctl
=
gf119_sor_dp_drv_ctl
,
.
vcpi
=
gf119_sor_dp_vcpi
,
};
int
...
...
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
浏览文件 @
4cddeb9b
...
...
@@ -120,6 +120,7 @@ gm200_sor_dp_func = {
.
lnk_pwr
=
gm200_sor_dp_lnk_pwr
,
.
lnk_ctl
=
gf119_sor_dp_lnk_ctl
,
.
drv_ctl
=
gm200_sor_dp_drv_ctl
,
.
vcpi
=
gf119_sor_dp_vcpi
,
};
int
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录