Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
965c41d9
K
Kernel
项目概览
openeuler
/
Kernel
大约 2 年 前同步成功
通知
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看板
提交
965c41d9
编写于
10月 03, 2022
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/fifo: tidy global PBDMA init
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
d67f3b96
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
52 addition
and
32 deletion
+52
-32
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
+9
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
+15
-7
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
+9
-11
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h
+0
-1
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c
+1
-1
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h
+3
-1
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.h
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.h
+1
-0
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
+8
-10
未找到文件。
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
浏览文件 @
965c41d9
...
@@ -184,6 +184,15 @@ static int
...
@@ -184,6 +184,15 @@ static int
nvkm_fifo_init
(
struct
nvkm_engine
*
engine
)
nvkm_fifo_init
(
struct
nvkm_engine
*
engine
)
{
{
struct
nvkm_fifo
*
fifo
=
nvkm_fifo
(
engine
);
struct
nvkm_fifo
*
fifo
=
nvkm_fifo
(
engine
);
struct
nvkm_runq
*
runq
;
u32
mask
=
0
;
if
(
fifo
->
func
->
init_pbdmas
)
{
nvkm_runq_foreach
(
runq
,
fifo
)
mask
|=
BIT
(
runq
->
id
);
fifo
->
func
->
init_pbdmas
(
fifo
,
mask
);
}
fifo
->
func
->
init
(
fifo
);
fifo
->
func
->
init
(
fifo
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
浏览文件 @
965c41d9
...
@@ -627,18 +627,16 @@ gf100_fifo_fini(struct nvkm_fifo *base)
...
@@ -627,18 +627,16 @@ gf100_fifo_fini(struct nvkm_fifo *base)
}
}
static
void
static
void
gf100_fifo_init
(
struct
nvkm_fifo
*
base
)
gf100_fifo_init
_pbdmas
(
struct
nvkm_fifo
*
fifo
,
u32
mask
)
{
{
struct
gf100_fifo
*
fifo
=
gf100_fifo
(
base
);
struct
nvkm_device
*
device
=
fifo
->
engine
.
subdev
.
device
;
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
int
i
;
/* Enable PBDMAs. */
/* Enable PBDMAs. */
nvkm_wr32
(
device
,
0x000204
,
(
1
<<
fifo
->
pbdma_nr
)
-
1
);
nvkm_wr32
(
device
,
0x000204
,
mask
);
nvkm_wr32
(
device
,
0x002204
,
(
1
<<
fifo
->
pbdma_nr
)
-
1
);
nvkm_wr32
(
device
,
0x002204
,
mask
);
/* Assign engines to PBDMAs. */
/* Assign engines to PBDMAs. */
if
(
fifo
->
pbdma_nr
>=
3
)
{
if
(
(
mask
&
7
)
==
7
)
{
nvkm_wr32
(
device
,
0x002208
,
~
(
1
<<
0
));
/* PGRAPH */
nvkm_wr32
(
device
,
0x002208
,
~
(
1
<<
0
));
/* PGRAPH */
nvkm_wr32
(
device
,
0x00220c
,
~
(
1
<<
1
));
/* PVP */
nvkm_wr32
(
device
,
0x00220c
,
~
(
1
<<
1
));
/* PVP */
nvkm_wr32
(
device
,
0x002210
,
~
(
1
<<
1
));
/* PMSPP */
nvkm_wr32
(
device
,
0x002210
,
~
(
1
<<
1
));
/* PMSPP */
...
@@ -647,6 +645,15 @@ gf100_fifo_init(struct nvkm_fifo *base)
...
@@ -647,6 +645,15 @@ gf100_fifo_init(struct nvkm_fifo *base)
nvkm_wr32
(
device
,
0x00221c
,
~
(
1
<<
1
));
/* PCE1 */
nvkm_wr32
(
device
,
0x00221c
,
~
(
1
<<
1
));
/* PCE1 */
}
}
}
static
void
gf100_fifo_init
(
struct
nvkm_fifo
*
base
)
{
struct
gf100_fifo
*
fifo
=
gf100_fifo
(
base
);
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
int
i
;
/* PBDMA[n] */
/* PBDMA[n] */
for
(
i
=
0
;
i
<
fifo
->
pbdma_nr
;
i
++
)
{
for
(
i
=
0
;
i
<
fifo
->
pbdma_nr
;
i
++
)
{
nvkm_mask
(
device
,
0x04013c
+
(
i
*
0x2000
),
0x10000100
,
0x00000000
);
nvkm_mask
(
device
,
0x04013c
+
(
i
*
0x2000
),
0x10000100
,
0x00000000
);
...
@@ -756,6 +763,7 @@ gf100_fifo = {
...
@@ -756,6 +763,7 @@ gf100_fifo = {
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runl_ctor
=
gf100_fifo_runl_ctor
,
.
runl_ctor
=
gf100_fifo_runl_ctor
,
.
init
=
gf100_fifo_init
,
.
init
=
gf100_fifo_init
,
.
init_pbdmas
=
gf100_fifo_init_pbdmas
,
.
fini
=
gf100_fifo_fini
,
.
fini
=
gf100_fifo_fini
,
.
intr
=
gf100_fifo_intr
,
.
intr
=
gf100_fifo_intr
,
.
mmu_fault
=
&
gf100_fifo_mmu_fault
,
.
mmu_fault
=
&
gf100_fifo_mmu_fault
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
浏览文件 @
965c41d9
...
@@ -278,16 +278,8 @@ static const struct nvkm_runl_func
...
@@ -278,16 +278,8 @@ static const struct nvkm_runl_func
gk104_runl
=
{
gk104_runl
=
{
};
};
void
gk104_fifo_pbdma_init
(
struct
gk104_fifo
*
fifo
)
{
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
nvkm_wr32
(
device
,
0x000204
,
(
1
<<
fifo
->
pbdma_nr
)
-
1
);
}
const
struct
gk104_fifo_pbdma_func
const
struct
gk104_fifo_pbdma_func
gk104_fifo_pbdma
=
{
gk104_fifo_pbdma
=
{
.
init
=
gk104_fifo_pbdma_init
,
};
};
int
int
...
@@ -962,6 +954,14 @@ gk104_fifo_fini(struct nvkm_fifo *base)
...
@@ -962,6 +954,14 @@ gk104_fifo_fini(struct nvkm_fifo *base)
flush_work
(
&
fifo
->
recover
.
work
);
flush_work
(
&
fifo
->
recover
.
work
);
}
}
void
gk104_fifo_init_pbdmas
(
struct
nvkm_fifo
*
fifo
,
u32
mask
)
{
struct
nvkm_device
*
device
=
fifo
->
engine
.
subdev
.
device
;
nvkm_wr32
(
device
,
0x000204
,
mask
);
}
void
void
gk104_fifo_init
(
struct
nvkm_fifo
*
base
)
gk104_fifo_init
(
struct
nvkm_fifo
*
base
)
{
{
...
@@ -969,9 +969,6 @@ gk104_fifo_init(struct nvkm_fifo *base)
...
@@ -969,9 +969,6 @@ gk104_fifo_init(struct nvkm_fifo *base)
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
int
i
;
int
i
;
/* Enable PBDMAs. */
fifo
->
func
->
pbdma
->
init
(
fifo
);
/* PBDMA[n] */
/* PBDMA[n] */
for
(
i
=
0
;
i
<
fifo
->
pbdma_nr
;
i
++
)
{
for
(
i
=
0
;
i
<
fifo
->
pbdma_nr
;
i
++
)
{
nvkm_mask
(
device
,
0x04013c
+
(
i
*
0x2000
),
0x10000100
,
0x00000000
);
nvkm_mask
(
device
,
0x04013c
+
(
i
*
0x2000
),
0x10000100
,
0x00000000
);
...
@@ -1147,6 +1144,7 @@ gk104_fifo = {
...
@@ -1147,6 +1144,7 @@ gk104_fifo = {
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h
浏览文件 @
965c41d9
...
@@ -75,7 +75,6 @@ void gk104_fifo_init(struct nvkm_fifo *base);
...
@@ -75,7 +75,6 @@ void gk104_fifo_init(struct nvkm_fifo *base);
void
gk104_fifo_fini
(
struct
nvkm_fifo
*
base
);
void
gk104_fifo_fini
(
struct
nvkm_fifo
*
base
);
extern
const
struct
gk104_fifo_pbdma_func
gk104_fifo_pbdma
;
extern
const
struct
gk104_fifo_pbdma_func
gk104_fifo_pbdma
;
void
gk104_fifo_pbdma_init
(
struct
gk104_fifo
*
);
extern
const
struct
nvkm_enum
gk104_fifo_fault_access
[];
extern
const
struct
nvkm_enum
gk104_fifo_fault_access
[];
extern
const
struct
nvkm_enum
gk104_fifo_fault_engine
[];
extern
const
struct
nvkm_enum
gk104_fifo_fault_engine
[];
extern
const
struct
nvkm_enum
gk104_fifo_fault_reason
[];
extern
const
struct
nvkm_enum
gk104_fifo_fault_reason
[];
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
浏览文件 @
965c41d9
...
@@ -83,6 +83,7 @@ gk110_fifo = {
...
@@ -83,6 +83,7 @@ gk110_fifo = {
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c
浏览文件 @
965c41d9
...
@@ -39,7 +39,6 @@ gk208_fifo_pbdma_init_timeout(struct gk104_fifo *fifo)
...
@@ -39,7 +39,6 @@ gk208_fifo_pbdma_init_timeout(struct gk104_fifo *fifo)
const
struct
gk104_fifo_pbdma_func
const
struct
gk104_fifo_pbdma_func
gk208_fifo_pbdma
=
{
gk208_fifo_pbdma
=
{
.
init
=
gk104_fifo_pbdma_init
,
.
init_timeout
=
gk208_fifo_pbdma_init_timeout
,
.
init_timeout
=
gk208_fifo_pbdma_init_timeout
,
};
};
...
@@ -62,6 +61,7 @@ gk208_fifo = {
...
@@ -62,6 +61,7 @@ gk208_fifo = {
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
浏览文件 @
965c41d9
...
@@ -33,6 +33,7 @@ gk20a_fifo = {
...
@@ -33,6 +33,7 @@ gk20a_fifo = {
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gf100_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
浏览文件 @
965c41d9
...
@@ -123,6 +123,7 @@ gm107_fifo = {
...
@@ -123,6 +123,7 @@ gm107_fifo = {
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runq_nr
=
gf100_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gm107_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gm107_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c
浏览文件 @
965c41d9
...
@@ -34,7 +34,6 @@ gm200_fifo_runq_nr(struct nvkm_fifo *fifo)
...
@@ -34,7 +34,6 @@ gm200_fifo_runq_nr(struct nvkm_fifo *fifo)
const
struct
gk104_fifo_pbdma_func
const
struct
gk104_fifo_pbdma_func
gm200_fifo_pbdma
=
{
gm200_fifo_pbdma
=
{
.
init
=
gk104_fifo_pbdma_init
,
.
init_timeout
=
gk208_fifo_pbdma_init_timeout
,
.
init_timeout
=
gk208_fifo_pbdma_init_timeout
,
};
};
...
@@ -53,6 +52,7 @@ gm200_fifo = {
...
@@ -53,6 +52,7 @@ gm200_fifo = {
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gm107_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gm107_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
浏览文件 @
965c41d9
...
@@ -95,6 +95,7 @@ gp100_fifo = {
...
@@ -95,6 +95,7 @@ gp100_fifo = {
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
intr_mmu_fault_unit
=
gp100_fifo_intr_mmu_fault_unit
,
.
intr_mmu_fault_unit
=
gp100_fifo_intr_mmu_fault_unit
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
浏览文件 @
965c41d9
...
@@ -323,6 +323,7 @@ gv100_fifo = {
...
@@ -323,6 +323,7 @@ gv100_fifo = {
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
gk104_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
gk104_fifo_intr
,
.
intr
=
gk104_fifo_intr
,
.
mmu_fault
=
&
gv100_fifo_mmu_fault
,
.
mmu_fault
=
&
gv100_fifo_mmu_fault
,
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h
浏览文件 @
965c41d9
...
@@ -25,6 +25,8 @@ struct nvkm_fifo_func {
...
@@ -25,6 +25,8 @@ struct nvkm_fifo_func {
int
(
*
runl_ctor
)(
struct
nvkm_fifo
*
);
int
(
*
runl_ctor
)(
struct
nvkm_fifo
*
);
void
(
*
init
)(
struct
nvkm_fifo
*
);
void
(
*
init
)(
struct
nvkm_fifo
*
);
void
(
*
init_pbdmas
)(
struct
nvkm_fifo
*
,
u32
mask
);
void
(
*
fini
)(
struct
nvkm_fifo
*
);
void
(
*
fini
)(
struct
nvkm_fifo
*
);
irqreturn_t
(
*
intr
)(
struct
nvkm_inth
*
);
irqreturn_t
(
*
intr
)(
struct
nvkm_inth
*
);
...
@@ -58,7 +60,6 @@ struct nvkm_fifo_func {
...
@@ -58,7 +60,6 @@ struct nvkm_fifo_func {
}
*
runlist
;
}
*
runlist
;
const
struct
gk104_fifo_pbdma_func
{
const
struct
gk104_fifo_pbdma_func
{
void
(
*
init
)(
struct
gk104_fifo
*
);
void
(
*
init_timeout
)(
struct
gk104_fifo
*
);
void
(
*
init_timeout
)(
struct
gk104_fifo
*
);
}
*
pbdma
;
}
*
pbdma
;
...
@@ -121,6 +122,7 @@ extern const struct nvkm_engn_func gf100_engn_sw;
...
@@ -121,6 +122,7 @@ extern const struct nvkm_engn_func gf100_engn_sw;
int
gk104_fifo_chid_nr
(
struct
nvkm_fifo
*
);
int
gk104_fifo_chid_nr
(
struct
nvkm_fifo
*
);
int
gk104_fifo_runl_ctor
(
struct
nvkm_fifo
*
);
int
gk104_fifo_runl_ctor
(
struct
nvkm_fifo
*
);
void
gk104_fifo_init_pbdmas
(
struct
nvkm_fifo
*
,
u32
);
irqreturn_t
gk104_fifo_intr
(
struct
nvkm_inth
*
);
irqreturn_t
gk104_fifo_intr
(
struct
nvkm_inth
*
);
void
gk104_fifo_intr_chsw
(
struct
nvkm_fifo
*
);
void
gk104_fifo_intr_chsw
(
struct
nvkm_fifo
*
);
void
gk104_fifo_intr_bind
(
struct
nvkm_fifo
*
);
void
gk104_fifo_intr_bind
(
struct
nvkm_fifo
*
);
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.h
浏览文件 @
965c41d9
...
@@ -15,6 +15,7 @@ struct nvkm_runq {
...
@@ -15,6 +15,7 @@ struct nvkm_runq {
struct
nvkm_runq
*
nvkm_runq_new
(
struct
nvkm_fifo
*
,
int
pbid
);
struct
nvkm_runq
*
nvkm_runq_new
(
struct
nvkm_fifo
*
,
int
pbid
);
void
nvkm_runq_del
(
struct
nvkm_runq
*
);
void
nvkm_runq_del
(
struct
nvkm_runq
*
);
#define nvkm_runq_foreach(runq,fifo) list_for_each_entry((runq), &(fifo)->runqs, head)
#define nvkm_runq_foreach_cond(runq,fifo,cond) nvkm_list_foreach(runq, &(fifo)->runqs, head, (cond))
#define nvkm_runq_foreach_cond(runq,fifo,cond) nvkm_list_foreach(runq, &(fifo)->runqs, head, (cond))
#define RUNQ_PRINT(r,l,p,f,a...) \
#define RUNQ_PRINT(r,l,p,f,a...) \
...
...
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
浏览文件 @
965c41d9
...
@@ -94,18 +94,8 @@ tu102_fifo_fault_engine[] = {
...
@@ -94,18 +94,8 @@ tu102_fifo_fault_engine[] = {
{}
{}
};
};
static
void
tu102_fifo_pbdma_init
(
struct
gk104_fifo
*
fifo
)
{
struct
nvkm_device
*
device
=
fifo
->
base
.
engine
.
subdev
.
device
;
const
u32
mask
=
(
1
<<
fifo
->
pbdma_nr
)
-
1
;
/*XXX: this is a bit of a guess at this point in time. */
nvkm_mask
(
device
,
0xb65000
,
0x80000fff
,
0x80000000
|
mask
);
}
static
const
struct
gk104_fifo_pbdma_func
static
const
struct
gk104_fifo_pbdma_func
tu102_fifo_pbdma
=
{
tu102_fifo_pbdma
=
{
.
init
=
tu102_fifo_pbdma_init
,
.
init_timeout
=
gk208_fifo_pbdma_init_timeout
,
.
init_timeout
=
gk208_fifo_pbdma_init_timeout
,
};
};
...
@@ -445,6 +435,13 @@ tu102_fifo_intr(struct nvkm_inth *inth)
...
@@ -445,6 +435,13 @@ tu102_fifo_intr(struct nvkm_inth *inth)
return
IRQ_HANDLED
;
return
IRQ_HANDLED
;
}
}
static
void
tu102_fifo_init_pbdmas
(
struct
nvkm_fifo
*
fifo
,
u32
mask
)
{
/* Not directly related to PBDMAs, but, enables doorbell to function. */
nvkm_mask
(
fifo
->
engine
.
subdev
.
device
,
0xb65000
,
0x80000000
,
0x80000000
);
}
static
const
struct
nvkm_fifo_func
static
const
struct
nvkm_fifo_func
tu102_fifo
=
{
tu102_fifo
=
{
.
dtor
=
gk104_fifo_dtor
,
.
dtor
=
gk104_fifo_dtor
,
...
@@ -454,6 +451,7 @@ tu102_fifo = {
...
@@ -454,6 +451,7 @@ tu102_fifo = {
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runq_nr
=
gm200_fifo_runq_nr
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
runl_ctor
=
gk104_fifo_runl_ctor
,
.
init
=
gk104_fifo_init
,
.
init
=
gk104_fifo_init
,
.
init_pbdmas
=
tu102_fifo_init_pbdmas
,
.
fini
=
gk104_fifo_fini
,
.
fini
=
gk104_fifo_fini
,
.
intr
=
tu102_fifo_intr
,
.
intr
=
tu102_fifo_intr
,
.
mmu_fault
=
&
tu102_fifo_mmu_fault
,
.
mmu_fault
=
&
tu102_fifo_mmu_fault
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录