Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
8769dc98
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8769dc98
编写于
5月 08, 2018
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/devinit/gv100: initial support
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
6827c9a8
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
85 addition
and
1 deletion
+85
-1
drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h
drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild
+1
-0
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.c
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.c
+79
-0
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
+2
-0
未找到文件。
drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h
浏览文件 @
8769dc98
...
...
@@ -30,4 +30,5 @@ int mcp89_devinit_new(struct nvkm_device *, int, struct nvkm_devinit **);
int
gf100_devinit_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_devinit
**
);
int
gm107_devinit_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_devinit
**
);
int
gm200_devinit_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_devinit
**
);
int
gv100_devinit_new
(
struct
nvkm_device
*
,
int
,
struct
nvkm_devinit
**
);
#endif
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
浏览文件 @
8769dc98
...
...
@@ -2398,6 +2398,7 @@ static const struct nvkm_device_chip
nv140_chipset
=
{
.
name
=
"GV100"
,
.
bios
=
nvkm_bios_new
,
.
devinit
=
gv100_devinit_new
,
.
pci
=
gp100_pci_new
,
};
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild
浏览文件 @
8769dc98
...
...
@@ -12,3 +12,4 @@ nvkm-y += nvkm/subdev/devinit/mcp89.o
nvkm-y += nvkm/subdev/devinit/gf100.o
nvkm-y += nvkm/subdev/devinit/gm107.o
nvkm-y += nvkm/subdev/devinit/gm200.o
nvkm-y += nvkm/subdev/devinit/gv100.o
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c
浏览文件 @
8769dc98
...
...
@@ -107,7 +107,7 @@ pmu_load(struct nv50_devinit *init, u8 type, bool post,
return
pmu_exec
(
init
,
pmu
.
init_addr_pmu
),
0
;
}
static
int
int
gm200_devinit_post
(
struct
nvkm_devinit
*
base
,
bool
post
)
{
struct
nv50_devinit
*
init
=
nv50_devinit
(
base
);
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.c
0 → 100644
浏览文件 @
8769dc98
/*
* Copyright 2018 Red Hat Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#include "nv50.h"
#include <subdev/bios.h>
#include <subdev/bios/pll.h>
#include <subdev/clk/pll.h>
static
int
gv100_devinit_pll_set
(
struct
nvkm_devinit
*
init
,
u32
type
,
u32
freq
)
{
struct
nvkm_subdev
*
subdev
=
&
init
->
subdev
;
struct
nvkm_device
*
device
=
subdev
->
device
;
struct
nvbios_pll
info
;
int
head
=
type
-
PLL_VPLL0
;
int
N
,
fN
,
M
,
P
;
int
ret
;
ret
=
nvbios_pll_parse
(
device
->
bios
,
type
,
&
info
);
if
(
ret
)
return
ret
;
ret
=
gt215_pll_calc
(
subdev
,
&
info
,
freq
,
&
N
,
&
fN
,
&
M
,
&
P
);
if
(
ret
<
0
)
return
ret
;
switch
(
info
.
type
)
{
case
PLL_VPLL0
:
case
PLL_VPLL1
:
case
PLL_VPLL2
:
case
PLL_VPLL3
:
nvkm_wr32
(
device
,
0x00ef10
+
(
head
*
0x40
),
fN
<<
16
);
nvkm_wr32
(
device
,
0x00ef04
+
(
head
*
0x40
),
(
P
<<
16
)
|
(
N
<<
8
)
|
(
M
<<
0
));
break
;
default:
nvkm_warn
(
subdev
,
"%08x/%dKhz unimplemented
\n
"
,
type
,
freq
);
ret
=
-
EINVAL
;
break
;
}
return
ret
;
}
static
const
struct
nvkm_devinit_func
gv100_devinit
=
{
.
preinit
=
gf100_devinit_preinit
,
.
init
=
nv50_devinit_init
,
.
post
=
gm200_devinit_post
,
.
pll_set
=
gv100_devinit_pll_set
,
.
disable
=
gm107_devinit_disable
,
};
int
gv100_devinit_new
(
struct
nvkm_device
*
device
,
int
index
,
struct
nvkm_devinit
**
pinit
)
{
return
nv50_devinit_new_
(
&
gv100_devinit
,
device
,
index
,
pinit
);
}
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
浏览文件 @
8769dc98
...
...
@@ -24,4 +24,6 @@ int gf100_devinit_pll_set(struct nvkm_devinit *, u32, u32);
void
gf100_devinit_preinit
(
struct
nvkm_devinit
*
);
u64
gm107_devinit_disable
(
struct
nvkm_devinit
*
);
int
gm200_devinit_post
(
struct
nvkm_devinit
*
,
bool
);
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录