Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
96616b4c
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
96616b4c
编写于
11月 05, 2013
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nv108/gr: initial support (need external fuc)
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
daa9ab58
变更
13
展开全部
隐藏空白更改
内联
并排
Showing
13 changed file
with
3074 addition
and
10 deletion
+3074
-10
drivers/gpu/drm/nouveau/Makefile
drivers/gpu/drm/nouveau/Makefile
+2
-0
drivers/gpu/drm/nouveau/core/engine/device/nve0.c
drivers/gpu/drm/nouveau/core/engine/device/nve0.c
+1
-3
drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c
+1408
-0
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c
+3
-3
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5
+42
-0
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h
...ers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h
+473
-0
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5
+40
-0
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h
...ers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h
+851
-0
drivers/gpu/drm/nouveau/core/engine/graph/nv108.c
drivers/gpu/drm/nouveau/core/engine/graph/nv108.c
+236
-0
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
+3
-0
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h
+10
-0
drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
+4
-4
drivers/gpu/drm/nouveau/core/include/engine/graph.h
drivers/gpu/drm/nouveau/core/include/engine/graph.h
+1
-0
未找到文件。
drivers/gpu/drm/nouveau/Makefile
浏览文件 @
96616b4c
...
...
@@ -243,6 +243,7 @@ nouveau-y += core/engine/graph/ctxnvd7.o
nouveau-y
+=
core/engine/graph/ctxnvd9.o
nouveau-y
+=
core/engine/graph/ctxnve4.o
nouveau-y
+=
core/engine/graph/ctxnvf0.o
nouveau-y
+=
core/engine/graph/ctxnv108.o
nouveau-y
+=
core/engine/graph/nv04.o
nouveau-y
+=
core/engine/graph/nv10.o
nouveau-y
+=
core/engine/graph/nv20.o
...
...
@@ -261,6 +262,7 @@ nouveau-y += core/engine/graph/nvd7.o
nouveau-y
+=
core/engine/graph/nvd9.o
nouveau-y
+=
core/engine/graph/nve4.o
nouveau-y
+=
core/engine/graph/nvf0.o
nouveau-y
+=
core/engine/graph/nv108.o
nouveau-y
+=
core/engine/mpeg/nv31.o
nouveau-y
+=
core/engine/mpeg/nv40.o
nouveau-y
+=
core/engine/mpeg/nv44.o
...
...
drivers/gpu/drm/nouveau/core/engine/device/nve0.c
浏览文件 @
96616b4c
...
...
@@ -213,10 +213,8 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nv108_fifo_oclass
;
#if 0
device
->
oclass
[
NVDEV_ENGINE_SW
]
=
nvc0_software_oclass
;
device->oclass[NVDEV_ENGINE_GR ] = nvf0_graph_oclass;
#endif
device
->
oclass
[
NVDEV_ENGINE_GR
]
=
nv108_graph_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DISP
]
=
&
nvf0_disp_oclass
;
device
->
oclass
[
NVDEV_ENGINE_COPY0
]
=
&
nve0_copy0_oclass
;
device
->
oclass
[
NVDEV_ENGINE_COPY1
]
=
&
nve0_copy1_oclass
;
...
...
drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c
0 → 100644
浏览文件 @
96616b4c
此差异已折叠。
点击以展开。
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c
浏览文件 @
96616b4c
...
...
@@ -50,7 +50,7 @@ nvf0_grctx_init_unk40xx[] = {
{}
};
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_grctx_init_unk44xx
[]
=
{
{
0x404404
,
12
,
0x04
,
0x00000000
},
{
0x404438
,
1
,
0x04
,
0x00000000
},
...
...
@@ -62,7 +62,7 @@ nvf0_grctx_init_unk44xx[] = {
{}
};
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_grctx_init_unk5bxx
[]
=
{
{
0x405b00
,
1
,
0x04
,
0x00000000
},
{
0x405b10
,
1
,
0x04
,
0x00001000
},
...
...
@@ -70,7 +70,7 @@ nvf0_grctx_init_unk5bxx[] = {
{}
};
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_grctx_init_unk60xx
[]
=
{
{
0x406020
,
1
,
0x04
,
0x034103c1
},
{
0x406028
,
4
,
0x04
,
0x00000001
},
...
...
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5
0 → 100644
浏览文件 @
96616b4c
/*
* Copyright 2013 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.
*
* Authors: Ben Skeggs <bskeggs@redhat.com>
*/
#define NV_PGRAPH_GPCX_UNK__SIZE 0x00000001
#define CHIPSET GK208
#include "macros.fuc"
.section #nv108_grgpc_data
#define INCLUDE_DATA
#include "com.fuc"
#include "gpc.fuc"
#undef INCLUDE_DATA
.section #nv108_grgpc_code
#define INCLUDE_CODE
bra #init
#include "com.fuc"
#include "gpc.fuc"
.align 256
#undef INCLUDE_CODE
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h
0 → 100644
浏览文件 @
96616b4c
uint32_t
nv108_grgpc_data
[]
=
{
/* 0x0000: gpc_mmio_list_head */
0x0000006c
,
/* 0x0004: gpc_mmio_list_tail */
/* 0x0004: tpc_mmio_list_head */
0x0000006c
,
/* 0x0008: tpc_mmio_list_tail */
/* 0x0008: unk_mmio_list_head */
0x0000006c
,
/* 0x000c: unk_mmio_list_tail */
0x0000006c
,
/* 0x0010: gpc_id */
0x00000000
,
/* 0x0014: tpc_count */
0x00000000
,
/* 0x0018: tpc_mask */
0x00000000
,
/* 0x001c: unk_count */
0x00000000
,
/* 0x0020: unk_mask */
0x00000000
,
/* 0x0024: cmd_queue */
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
};
uint32_t
nv108_grgpc_code
[]
=
{
0x03140ef5
,
/* 0x0004: queue_put */
0x9800d898
,
0x86f001d9
,
0xf489a408
,
0x020f0b1b
,
0x0002f87e
,
/* 0x001a: queue_put_next */
0x98c400f8
,
0x0384b607
,
0xb6008dbb
,
0x8eb50880
,
0x018fb500
,
0xf00190b6
,
0xd9b50f94
,
/* 0x0037: queue_get */
0xf400f801
,
0xd8980131
,
0x01d99800
,
0x0bf489a4
,
0x0789c421
,
0xbb0394b6
,
0x90b6009d
,
0x009e9808
,
0xb6019f98
,
0x84f00180
,
0x00d8b50f
,
/* 0x0063: queue_get_done */
0xf80132f4
,
/* 0x0065: nv_rd32 */
0xf0ecb200
,
0x00801fc9
,
0x0cf601ca
,
/* 0x0073: nv_rd32_wait */
0x8c04bd00
,
0xcf01ca00
,
0xccc800cc
,
0xf61bf41f
,
0xec7e060a
,
0x008f0000
,
0xffcf01cb
,
/* 0x008f: nv_wr32 */
0x8000f800
,
0xf601cc00
,
0x04bd000f
,
0xc9f0ecb2
,
0x1ec9f01f
,
0x01ca0080
,
0xbd000cf6
,
/* 0x00a9: nv_wr32_wait */
0xca008c04
,
0x00cccf01
,
0xf41fccc8
,
0x00f8f61b
,
/* 0x00b8: wait_donez */
0x99f094bd
,
0x37008000
,
0x0009f602
,
0x008004bd
,
0x0af60206
,
/* 0x00cf: wait_donez_ne */
0x8804bd00
,
0xcf010000
,
0x8aff0088
,
0xf61bf488
,
0x99f094bd
,
0x17008000
,
0x0009f602
,
0x00f804bd
,
/* 0x00ec: wait_doneo */
0x99f094bd
,
0x37008000
,
0x0009f602
,
0x008004bd
,
0x0af60206
,
/* 0x0103: wait_doneo_e */
0x8804bd00
,
0xcf010000
,
0x8aff0088
,
0xf60bf488
,
0x99f094bd
,
0x17008000
,
0x0009f602
,
0x00f804bd
,
/* 0x0120: mmctx_size */
/* 0x0122: nv_mmctx_size_loop */
0xe89894bd
,
0x1a85b600
,
0xb60180b6
,
0x98bb0284
,
0x04e0b600
,
0x1bf4efa4
,
0xf89fb2ec
,
/* 0x013d: mmctx_xfer */
0xf094bd00
,
0x00800199
,
0x09f60237
,
0xbd04bd00
,
0x05bbfd94
,
0x800f0bf4
,
0xf601c400
,
0x04bd000b
,
/* 0x015f: mmctx_base_disabled */
0xfd0099f0
,
0x0bf405ee
,
0xc6008018
,
0x000ef601
,
0x008004bd
,
0x0ff601c7
,
0xf004bd00
,
/* 0x017a: mmctx_multi_disabled */
0xabc80199
,
0x10b4b600
,
0xc80cb9f0
,
0xe4b601ae
,
0x05befd11
,
0x01c50080
,
0xbd000bf6
,
/* 0x0195: mmctx_exec_loop */
/* 0x0195: mmctx_wait_free */
0xc5008e04
,
0x00eecf01
,
0xf41fe4f0
,
0xce98f60b
,
0x05e9fd00
,
0x01c80080
,
0xbd000ef6
,
0x04c0b604
,
0x1bf4cda4
,
0x02abc8df
,
/* 0x01bf: mmctx_fini_wait */
0x8b1c1bf4
,
0xcf01c500
,
0xb4f000bb
,
0x10b4b01f
,
0x0af31bf4
,
0x00b87e02
,
0x250ef400
,
/* 0x01d8: mmctx_stop */
0xb600abc8
,
0xb9f010b4
,
0x12b9f00c
,
0x01c50080
,
0xbd000bf6
,
/* 0x01ed: mmctx_stop_wait */
0xc5008b04
,
0x00bbcf01
,
0xf412bbc8
,
/* 0x01fa: mmctx_done */
0x94bdf61b
,
0x800199f0
,
0xf6021700
,
0x04bd0009
,
/* 0x020a: strand_wait */
0xa0f900f8
,
0xb87e020a
,
0xa0fc0000
,
/* 0x0216: strand_pre */
0x0c0900f8
,
0x024afc80
,
0xbd0009f6
,
0x020a7e04
,
/* 0x0227: strand_post */
0x0900f800
,
0x4afc800d
,
0x0009f602
,
0x0a7e04bd
,
0x00f80002
,
/* 0x0238: strand_set */
0xfc800f0c
,
0x0cf6024f
,
0x0c04bd00
,
0x4afc800b
,
0x000cf602
,
0xfc8004bd
,
0x0ef6024f
,
0x0c04bd00
,
0x4afc800a
,
0x000cf602
,
0x0a7e04bd
,
0x00f80002
,
/* 0x0268: strand_ctx_init */
0x99f094bd
,
0x37008003
,
0x0009f602
,
0x167e04bd
,
0x030e0002
,
0x0002387e
,
0xfc80c4bd
,
0x0cf60247
,
0x0c04bd00
,
0x4afc8001
,
0x000cf602
,
0x0a7e04bd
,
0x0c920002
,
0x46fc8001
,
0x000cf602
,
0x020c04bd
,
0x024afc80
,
0xbd000cf6
,
0x020a7e04
,
0x02277e00
,
0x42008800
,
0x20008902
,
0x0099cf02
,
/* 0x02c7: ctx_init_strand_loop */
0xf608fe95
,
0x8ef6008e
,
0x808acf40
,
0xb606a5b6
,
0xeabb01a0
,
0x0480b600
,
0xf40192b6
,
0xe4b6e81b
,
0xf2efbc08
,
0x99f094bd
,
0x17008003
,
0x0009f602
,
0x00f804bd
,
/* 0x02f8: error */
0xffb2e0f9
,
0x4098148e
,
0x00008f7e
,
0xffb2010f
,
0x409c1c8e
,
0x00008f7e
,
0x00f8e0fc
,
/* 0x0314: init */
0x04fe04bd
,
0x40020200
,
0x02f61200
,
0x4104bd00
,
0x10fe0465
,
0x07004000
,
0xbd0000f6
,
0x40040204
,
0x02f60400
,
0xf404bd00
,
0x00821031
,
0x22cf0182
,
0xf0010300
,
0x32bb1f24
,
0x0132b604
,
0xb50502b5
,
0x00820603
,
0x22cf0186
,
0x0402b500
,
0x500c308e
,
0x34bd24bd
,
/* 0x036a: init_unk_loop */
0x657e44bd
,
0xf6b00000
,
0x0e0bf400
,
0xf2bb010f
,
0x054ffd04
,
/* 0x037f: init_unk_next */
0xb60130b6
,
0xe0b60120
,
0x0126b004
,
/* 0x038b: init_unk_done */
0xb5e21bf4
,
0x04b50703
,
0x01008208
,
0x0022cf02
,
0x259534bd
,
0xc0008008
,
0x0005f601
,
0x008004bd
,
0x05f601c1
,
0x9804bd00
,
0x0f98000e
,
0x01207e01
,
0x002fbb00
,
0x98003fbb
,
0x0f98010e
,
0x01207e02
,
0x050e9800
,
0xbb00effd
,
0x3ebb002e
,
0x020e9800
,
0x7e030f98
,
0x98000120
,
0xeffd070e
,
0x002ebb00
,
0xb6003ebb
,
0x00800235
,
0x03f601d3
,
0xb604bd00
,
0x35b60825
,
0x0120b606
,
0xb60130b6
,
0x34b60824
,
0x7e2fb208
,
0xbb000268
,
0x0080003f
,
0x03f60201
,
0xbd04bd00
,
0x1f29f024
,
0x02300080
,
0xbd0002f6
,
/* 0x0429: main */
0x0031f404
,
0x0d0028f4
,
0x00377e24
,
0xf401f400
,
0xf404e4b0
,
0x81fe1d18
,
0xbd060201
,
0x0412fd20
,
0xfd01e4b6
,
0x18fe051e
,
0x04fc7e00
,
0xd40ef400
,
/* 0x0458: main_not_ctx_xfer */
0xf010ef94
,
0xf87e01f5
,
0x0ef40002
,
/* 0x0465: ih */
0xfe80f9c7
,
0x80f90188
,
0xa0f990f9
,
0xd0f9b0f9
,
0xf0f9e0f9
,
0x004a04bd
,
0x00aacf02
,
0xf404abc4
,
0x240d1f0b
,
0xcf1a004e
,
0x004f00ee
,
0x00ffcf19
,
0x0000047e
,
0x0040010e
,
0x000ef61d
,
/* 0x04a2: ih_no_fifo */
0x004004bd
,
0x000af601
,
0xf0fc04bd
,
0xd0fce0fc
,
0xa0fcb0fc
,
0x80fc90fc
,
0xfc0088fe
,
0x0032f480
,
/* 0x04c2: hub_barrier_done */
0x010f01f8
,
0xbb040e98
,
0xffb204fe
,
0x4094188e
,
0x00008f7e
,
/* 0x04d6: ctx_redswitch */
0x200f00f8
,
0x01850080
,
0xbd000ff6
,
/* 0x04e3: ctx_redswitch_delay */
0xb6080e04
,
0x1bf401e2
,
0x00f5f1fd
,
0x00f5f108
,
0x85008002
,
0x000ff601
,
0x00f804bd
,
/* 0x04fc: ctx_xfer */
0x02810080
,
0xbd000ff6
,
0x0711f404
,
0x0004d67e
,
/* 0x050c: ctx_xfer_not_load */
0x0002167e
,
0xfc8024bd
,
0x02f60247
,
0xf004bd00
,
0x20b6012c
,
0x4afc8003
,
0x0002f602
,
0xacf004bd
,
0x02a5f001
,
0x5000008b
,
0xb6040c98
,
0xbcbb0fc4
,
0x000c9800
,
0x0e010d98
,
0x013d7e00
,
0x01acf000
,
0x5040008b
,
0xb6040c98
,
0xbcbb0fc4
,
0x010c9800
,
0x98020d98
,
0x004e060f
,
0x013d7e08
,
0x01acf000
,
0x8b04a5f0
,
0x98503000
,
0xc4b6040c
,
0x00bcbb0f
,
0x98020c98
,
0x0f98030d
,
0x02004e08
,
0x00013d7e
,
0x00020a7e
,
0xf40601f4
,
/* 0x0596: ctx_xfer_post */
0x277e0712
,
/* 0x059a: ctx_xfer_done */
0xc27e0002
,
0x00f80004
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
};
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5
0 → 100644
浏览文件 @
96616b4c
/*
* Copyright 2013 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.
*
* Authors: Ben Skeggs <bskeggs@redhat.com>
*/
#define CHIPSET GK208
#include "macros.fuc"
.section #nv108_grhub_data
#define INCLUDE_DATA
#include "com.fuc"
#include "hub.fuc"
#undef INCLUDE_DATA
.section #nv108_grhub_code
#define INCLUDE_CODE
bra #init
#include "com.fuc"
#include "hub.fuc"
.align 256
#undef INCLUDE_CODE
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h
0 → 100644
浏览文件 @
96616b4c
uint32_t
nv108_grhub_data
[]
=
{
/* 0x0000: hub_mmio_list_head */
0x00000300
,
/* 0x0004: hub_mmio_list_tail */
0x00000304
,
/* 0x0008: gpc_count */
0x00000000
,
/* 0x000c: rop_count */
0x00000000
,
/* 0x0010: cmd_queue */
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
/* 0x0058: ctx_current */
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
/* 0x0100: chan_data */
/* 0x0100: chan_mmio_count */
0x00000000
,
/* 0x0104: chan_mmio_address */
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
/* 0x0200: xfer_data */
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
/* 0x0300: hub_mmio_list_base */
0x0417e91c
,
};
uint32_t
nv108_grhub_code
[]
=
{
0x030e0ef5
,
/* 0x0004: queue_put */
0x9800d898
,
0x86f001d9
,
0xf489a408
,
0x020f0b1b
,
0x0002f87e
,
/* 0x001a: queue_put_next */
0x98c400f8
,
0x0384b607
,
0xb6008dbb
,
0x8eb50880
,
0x018fb500
,
0xf00190b6
,
0xd9b50f94
,
/* 0x0037: queue_get */
0xf400f801
,
0xd8980131
,
0x01d99800
,
0x0bf489a4
,
0x0789c421
,
0xbb0394b6
,
0x90b6009d
,
0x009e9808
,
0xb6019f98
,
0x84f00180
,
0x00d8b50f
,
/* 0x0063: queue_get_done */
0xf80132f4
,
/* 0x0065: nv_rd32 */
0xf0ecb200
,
0x00801fc9
,
0x0cf601ca
,
/* 0x0073: nv_rd32_wait */
0x8c04bd00
,
0xcf01ca00
,
0xccc800cc
,
0xf61bf41f
,
0xec7e060a
,
0x008f0000
,
0xffcf01cb
,
/* 0x008f: nv_wr32 */
0x8000f800
,
0xf601cc00
,
0x04bd000f
,
0xc9f0ecb2
,
0x1ec9f01f
,
0x01ca0080
,
0xbd000cf6
,
/* 0x00a9: nv_wr32_wait */
0xca008c04
,
0x00cccf01
,
0xf41fccc8
,
0x00f8f61b
,
/* 0x00b8: wait_donez */
0x99f094bd
,
0x37008000
,
0x0009f602
,
0x008004bd
,
0x0af60206
,
/* 0x00cf: wait_donez_ne */
0x8804bd00
,
0xcf010000
,
0x8aff0088
,
0xf61bf488
,
0x99f094bd
,
0x17008000
,
0x0009f602
,
0x00f804bd
,
/* 0x00ec: wait_doneo */
0x99f094bd
,
0x37008000
,
0x0009f602
,
0x008004bd
,
0x0af60206
,
/* 0x0103: wait_doneo_e */
0x8804bd00
,
0xcf010000
,
0x8aff0088
,
0xf60bf488
,
0x99f094bd
,
0x17008000
,
0x0009f602
,
0x00f804bd
,
/* 0x0120: mmctx_size */
/* 0x0122: nv_mmctx_size_loop */
0xe89894bd
,
0x1a85b600
,
0xb60180b6
,
0x98bb0284
,
0x04e0b600
,
0x1bf4efa4
,
0xf89fb2ec
,
/* 0x013d: mmctx_xfer */
0xf094bd00
,
0x00800199
,
0x09f60237
,
0xbd04bd00
,
0x05bbfd94
,
0x800f0bf4
,
0xf601c400
,
0x04bd000b
,
/* 0x015f: mmctx_base_disabled */
0xfd0099f0
,
0x0bf405ee
,
0xc6008018
,
0x000ef601
,
0x008004bd
,
0x0ff601c7
,
0xf004bd00
,
/* 0x017a: mmctx_multi_disabled */
0xabc80199
,
0x10b4b600
,
0xc80cb9f0
,
0xe4b601ae
,
0x05befd11
,
0x01c50080
,
0xbd000bf6
,
/* 0x0195: mmctx_exec_loop */
/* 0x0195: mmctx_wait_free */
0xc5008e04
,
0x00eecf01
,
0xf41fe4f0
,
0xce98f60b
,
0x05e9fd00
,
0x01c80080
,
0xbd000ef6
,
0x04c0b604
,
0x1bf4cda4
,
0x02abc8df
,
/* 0x01bf: mmctx_fini_wait */
0x8b1c1bf4
,
0xcf01c500
,
0xb4f000bb
,
0x10b4b01f
,
0x0af31bf4
,
0x00b87e02
,
0x250ef400
,
/* 0x01d8: mmctx_stop */
0xb600abc8
,
0xb9f010b4
,
0x12b9f00c
,
0x01c50080
,
0xbd000bf6
,
/* 0x01ed: mmctx_stop_wait */
0xc5008b04
,
0x00bbcf01
,
0xf412bbc8
,
/* 0x01fa: mmctx_done */
0x94bdf61b
,
0x800199f0
,
0xf6021700
,
0x04bd0009
,
/* 0x020a: strand_wait */
0xa0f900f8
,
0xb87e020a
,
0xa0fc0000
,
/* 0x0216: strand_pre */
0x0c0900f8
,
0x024afc80
,
0xbd0009f6
,
0x020a7e04
,
/* 0x0227: strand_post */
0x0900f800
,
0x4afc800d
,
0x0009f602
,
0x0a7e04bd
,
0x00f80002
,
/* 0x0238: strand_set */
0xfc800f0c
,
0x0cf6024f
,
0x0c04bd00
,
0x4afc800b
,
0x000cf602
,
0xfc8004bd
,
0x0ef6024f
,
0x0c04bd00
,
0x4afc800a
,
0x000cf602
,
0x0a7e04bd
,
0x00f80002
,
/* 0x0268: strand_ctx_init */
0x99f094bd
,
0x37008003
,
0x0009f602
,
0x167e04bd
,
0x030e0002
,
0x0002387e
,
0xfc80c4bd
,
0x0cf60247
,
0x0c04bd00
,
0x4afc8001
,
0x000cf602
,
0x0a7e04bd
,
0x0c920002
,
0x46fc8001
,
0x000cf602
,
0x020c04bd
,
0x024afc80
,
0xbd000cf6
,
0x020a7e04
,
0x02277e00
,
0x42008800
,
0x20008902
,
0x0099cf02
,
/* 0x02c7: ctx_init_strand_loop */
0xf608fe95
,
0x8ef6008e
,
0x808acf40
,
0xb606a5b6
,
0xeabb01a0
,
0x0480b600
,
0xf40192b6
,
0xe4b6e81b
,
0xf2efbc08
,
0x99f094bd
,
0x17008003
,
0x0009f602
,
0x00f804bd
,
/* 0x02f8: error */
0x02050080
,
0xbd000ff6
,
0x80010f04
,
0xf6030700
,
0x04bd000f
,
/* 0x030e: init */
0x04bd00f8
,
0xfe0004fe
,
0x02020007
,
0xf6120040
,
0x04bd0002
,
0xfe05a041
,
0x24bd0010
,
0xf6070040
,
0x04bd0002
,
0x80200342
,
0xf6010100
,
0x04bd0002
,
0x80200442
,
0xf6010104
,
0x04bd0002
,
0x80200b42
,
0xf6010108
,
0x04bd0002
,
0x80200c42
,
0xf601011c
,
0x04bd0002
,
0x80010392
,
0xf6030900
,
0x04bd0003
,
0x40870442
,
0x02f60400
,
0x0204bd00
,
0x03004004
,
0xbd0002f6
,
0x1031f404
,
0x4096048e
,
0x0000657e
,
0xf1c7feb2
,
0x0301b590
,
0xb51ff4f0
,
0x0101020f
,
0xb6041fbb
,
0x00800112
,
0x01f60103
,
0x8004bd00
,
0xf6010400
,
0x04bd0001
,
0x98010041
,
0x0f98000e
,
0x01207e01
,
0x08149500
,
0x01c00080
,
0xbd0004f6
,
0xc1008004
,
0x0004f601
,
0x30b704bd
,
0x1fbb1300
,
0x02f5b600
,
0x01d30080
,
0xbd000ff6
,
0x0815b604
,
0xb60110b6
,
0x1fb20814
,
0x0002687e
,
0x98001fbb
,
0x00840203
,
/* 0x0402: init_gpc */
0x4eb85020
,
0xb2000804
,
0x008f7e1f
,
0x0c4eb800
,
0xf4bd0001
,
0x00008f7e
,
0x01044eb8
,
0x008f7e00
,
0x004eb800
,
0x020f0001
,
0x00008f7e
,
0x08004eb8
,
/* 0x0431: init_gpc_wait */
0x00657e00
,
0x1fffc800
,
0xb8f90bf4
,
0x0008044e
,
0x0000657e
,
0xb7001fbb
,
0xb6800040
,
0x1bf40132
,
0x010080b4
,
0x0001f602
,
0x14bd04bd
,
0x801f19f0
,
0xf6023000
,
0x04bd0001
,
/* 0x0468: main */
0xf40031f4
,
0x100d0028
,
0x0000377e
,
0xb1f401f4
,
0xf54001e4
,
0xbd00c71b
,
0x0499f094
,
0x02370080
,
0xbd0009f6
,
0xc0008104
,
0x0011cf02
,
0x02c10082
,
0xc80022cf
,
0x0bf41f13
,
0x1f23c877
,
0xf9550bf4
,
0xbd12b220
,
0x0799f094
,
0x02370080
,
0xbd0009f6
,
0x0132f404
,
0x7e0231f4
,
0xbd0007ff
,
0x0799f094
,
0x02170080
,
0xbd0009f6
,
0xbd20fc04
,
0x0699f094
,
0x02370080
,
0xbd0009f6
,
0x0131f404
,
0x0007ff7e
,
0x99f094bd
,
0x17008006
,
0x0009f602
,
0x0ef404bd
,
/* 0x04f9: chsw_prev_no_next */
0xb220f92f
,
0x0132f412
,
0x7e0232f4
,
0xfc0007ff
,
0xc0008020
,
0x0002f602
,
0x0ef404bd
,
/* 0x0515: chsw_no_prev */
0x1f23c813
,
0xf40d0bf4
,
0x32f40131
,
0x07ff7e02
,
/* 0x0525: chsw_done */
0x80010200
,
0xf602c300
,
0x04bd0002
,
0x99f094bd
,
0x17008004
,
0x0009f602
,
0x0ef504bd
,
/* 0x0542: main_not_ctx_switch */
0xe4b0ff2a
,
0x0c1bf401
,
0x997ef2b2
,
0x0ef40007
,
/* 0x0551: main_not_ctx_chan */
0x02e4b040
,
0xbd2c1bf4
,
0x0799f094
,
0x02370080
,
0xbd0009f6
,
0x0132f404
,
0x7e0232f4
,
0xbd0007ff
,
0x0799f094
,
0x02170080
,
0xbd0009f6
,
0x110ef404
,
/* 0x0580: main_not_ctx_save */
0xf010ef94
,
0xf87e01f5
,
0x0ef50002
,
/* 0x058e: main_done */
0x24bdfede
,
0x801f29f0
,
0xf6023000
,
0x04bd0002
,
0xfecc0ef5
,
/* 0x05a0: ih */
0x88fe80f9
,
0xf980f901
,
0xf9a0f990
,
0xf9d0f9b0
,
0xbdf0f9e0
,
0x02004a04
,
0xc400aacf
,
0x0bf404ab
,
0x4e100d23
,
0xeecf1a00
,
0x19004f00
,
0x7e00ffcf
,
0xb7000004
,
0x0e0400b0
,
0x1d004001
,
0xbd000ef6
,
/* 0x05e1: ih_no_fifo */
0x00abe404
,
0x0c0bf401
,
0x014e100d
,
0x00047e40
,
/* 0x05f1: ih_no_ctxsw */
0x01044b00
,
0xabffb0bd
,
0x0c0bf4b4
,
0x03070080
,
0xbd000bf6
,
/* 0x0605: ih_no_other */
0x01004004
,
0xbd000af6
,
0xfcf0fc04
,
0xfcd0fce0
,
0xfca0fcb0
,
0xfe80fc90
,
0x80fc0088
,
0xf80032f4
,
/* 0x0625: ctx_4170s */
0x10f5f001
,
0x708effb2
,
0x8f7e4041
,
0x00f80000
,
/* 0x0634: ctx_4170w */
0x4041708e
,
0x0000657e
,
0xf4f0ffb2
,
0xf31bf410
,
/* 0x0646: ctx_redswitch */
0x004e00f8
,
0x40e5f002
,
0xf020e5f0
,
0x008010e5
,
0x0ef60185
,
0x0f04bd00
,
/* 0x065d: ctx_redswitch_delay */
0x01f2b608
,
0xf1fd1bf4
,
0xf10400e5
,
0x800100e5
,
0xf6018500
,
0x04bd000e
,
/* 0x0676: ctx_86c */
0x008000f8
,
0x0ff6021b
,
0xb204bd00
,
0x8a148eff
,
0x008f7e40
,
0x8effb200
,
0x7e41a86c
,
0xf800008f
,
/* 0x0695: ctx_mem */
0x84008000
,
0x000ff602
,
/* 0x069e: ctx_mem_wait */
0x008f04bd
,
0xffcf0284
,
0x05fffd00
,
0xf8f61bf4
,
/* 0x06ad: ctx_load */
0xf094bd00
,
0x00800599
,
0x09f60237
,
0x0a04bd00
,
0x00b87e0c
,
0x80f4bd00
,
0xf6028900
,
0x04bd000f
,
0x02c10080
,
0xbd0002f6
,
0x83008004
,
0x0002f602
,
0x070f04bd
,
0x0006957e
,
0x02c00080
,
0xbd0002f6
,
0x000bfe04
,
0xb61f2af0
,
0x20b60424
,
0xf094bd02
,
0x00800899
,
0x09f60237
,
0x8004bd00
,
0xf6028100
,
0x04bd0002
,
0x000000d2
,
0x0225f080
,
0x02880080
,
0xbd0002f6
,
0x42100104
,
0x23f00200
,
0x0512fa02
,
0x94bd03f8
,
0x800899f0
,
0xf6021700
,
0x04bd0009
,
0xb6810198
,
0x02981814
,
0x0825b680
,
0xb50512fd
,
0x94bd1601
,
0x800999f0
,
0xf6023700
,
0x04bd0009
,
0x02810080
,
0xbd0001f6
,
0x80010204
,
0xf6028800
,
0x04bd0002
,
0xf0010041
,
0x01fa0613
,
0xbd03f805
,
0x0999f094
,
0x02170080
,
0xbd0009f6
,
0xf094bd04
,
0x00800599
,
0x09f60217
,
0xf804bd00
,
/* 0x0799: ctx_chan */
0x06ad7e00
,
0x7e0c0a00
,
0x410000b8
,
0x14b60a10
,
0x7e050f06
,
0xf8000695
,
/* 0x07b1: ctx_mmio_exec */
0x41039800
,
0x02810080
,
0xbd0003f6
,
/* 0x07bf: ctx_mmio_loop */
0xc434bd04
,
0x1bf4ff34
,
0x0200450e
,
0xfa0653f0
,
0x03f80535
,
/* 0x07d0: ctx_mmio_pull */
0x98804e98
,
0x8f7e814f
,
0x30b60000
,
0x0112b608
,
/* 0x07e3: ctx_mmio_done */
0x98df1bf4
,
0x00801603
,
0x03f60281
,
0xb504bd00
,
0x00414000
,
0x0613f001
,
0xf80601fa
,
/* 0x07ff: ctx_xfer */
0x0e00f803
,
0x02008004
,
0x000ef603
,
/* 0x080a: ctx_xfer_idle */
0x008e04bd
,
0xeecf0300
,
0x00e4f100
,
0xf51bf420
,
0xf40611f4
,
/* 0x081e: ctx_xfer_pre */
0x100f0c02
,
0x0006767e
,
/* 0x0827: ctx_xfer_pre_load */
0x0f1b11f4
,
0x06257e02
,
0x06347e00
,
0x06467e00
,
0x7ef4bd00
,
0x7e000625
,
/* 0x083f: ctx_xfer_exec */
0x980006ad
,
0x24bd1601
,
0x01050080
,
0xbd0002f6
,
0x8e1fb204
,
0x7e41a500
,
0xf000008f
,
0x2cf001fc
,
0x0124b602
,
0xb205f2fd
,
0xa5048eff
,
0x008f7e41
,
0x02167e00
,
0x8024bd00
,
0xf60247fc
,
0x04bd0002
,
0xb6012cf0
,
0xfc800320
,
0x02f6024a
,
0xf004bd00
,
0xa5f001ac
,
0x98000b06
,
0x0d98000c
,
0x7e000e01
,
0x0a00013d
,
0x00ec7e08
,
0x020a7e00
,
0x1201f400
,
0xb87e0c0a
,
0x050f0000
,
0x0006957e
,
/* 0x08bb: ctx_xfer_post */
0x0f2d02f4
,
0x06257e02
,
0x7ef4bd00
,
0x7e000676
,
0x7e000227
,
0xbd000634
,
0x06257ef4
,
0x1011f400
,
0xfd400198
,
0x0bf40511
,
0x07b17e07
,
/* 0x08e5: ctx_xfer_no_post_mmio */
/* 0x08e5: ctx_xfer_done */
0x0000f800
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
};
drivers/gpu/drm/nouveau/core/engine/graph/nv108.c
0 → 100644
浏览文件 @
96616b4c
/*
* Copyright 2013 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.
*
* Authors: Ben Skeggs <bskeggs@redhat.com>
*/
#include "nvc0.h"
/*******************************************************************************
* Graphics object classes
******************************************************************************/
static
struct
nouveau_oclass
nv108_graph_sclass
[]
=
{
{
0x902d
,
&
nouveau_object_ofuncs
},
{
0xa140
,
&
nouveau_object_ofuncs
},
{
0xa197
,
&
nouveau_object_ofuncs
},
{
0xa1c0
,
&
nouveau_object_ofuncs
},
{}
};
/*******************************************************************************
* PGRAPH engine/subdev functions
******************************************************************************/
static
struct
nvc0_graph_init
nv108_graph_init_regs
[]
=
{
{
0x400080
,
1
,
0x04
,
0x003083c2
},
{
0x400088
,
1
,
0x04
,
0x0001bfe7
},
{
0x40008c
,
1
,
0x04
,
0x00000000
},
{
0x400090
,
1
,
0x04
,
0x00000030
},
{
0x40013c
,
1
,
0x04
,
0x003901f7
},
{
0x400140
,
1
,
0x04
,
0x00000100
},
{
0x400144
,
1
,
0x04
,
0x00000000
},
{
0x400148
,
1
,
0x04
,
0x00000110
},
{
0x400138
,
1
,
0x04
,
0x00000000
},
{
0x400130
,
2
,
0x04
,
0x00000000
},
{
0x400124
,
1
,
0x04
,
0x00000002
},
{}
};
struct
nvc0_graph_init
nv108_graph_init_unk58xx
[]
=
{
{
0x405844
,
1
,
0x04
,
0x00ffffff
},
{
0x405850
,
1
,
0x04
,
0x00000000
},
{
0x405900
,
1
,
0x04
,
0x00000000
},
{
0x405908
,
1
,
0x04
,
0x00000000
},
{
0x405928
,
1
,
0x04
,
0x00000000
},
{
0x40592c
,
1
,
0x04
,
0x00000000
},
{}
};
static
struct
nvc0_graph_init
nv108_graph_init_gpc
[]
=
{
{
0x418408
,
1
,
0x04
,
0x00000000
},
{
0x4184a0
,
3
,
0x04
,
0x00000000
},
{
0x418604
,
1
,
0x04
,
0x00000000
},
{
0x418680
,
1
,
0x04
,
0x00000000
},
{
0x418714
,
1
,
0x04
,
0x00000000
},
{
0x418384
,
2
,
0x04
,
0x00000000
},
{
0x418814
,
3
,
0x04
,
0x00000000
},
{
0x418b04
,
1
,
0x04
,
0x00000000
},
{
0x4188c8
,
2
,
0x04
,
0x00000000
},
{
0x4188d0
,
1
,
0x04
,
0x00010000
},
{
0x4188d4
,
1
,
0x04
,
0x00000201
},
{
0x418910
,
1
,
0x04
,
0x00010001
},
{
0x418914
,
1
,
0x04
,
0x00000301
},
{
0x418918
,
1
,
0x04
,
0x00800000
},
{
0x418980
,
1
,
0x04
,
0x77777770
},
{
0x418984
,
3
,
0x04
,
0x77777777
},
{
0x418c04
,
1
,
0x04
,
0x00000000
},
{
0x418c64
,
2
,
0x04
,
0x00000000
},
{
0x418c88
,
1
,
0x04
,
0x00000000
},
{
0x418cb4
,
2
,
0x04
,
0x00000000
},
{
0x418d00
,
1
,
0x04
,
0x00000000
},
{
0x418d28
,
2
,
0x04
,
0x00000000
},
{
0x418f00
,
1
,
0x04
,
0x00000400
},
{
0x418f08
,
1
,
0x04
,
0x00000000
},
{
0x418f20
,
2
,
0x04
,
0x00000000
},
{
0x418e00
,
1
,
0x04
,
0x00000000
},
{
0x418e08
,
1
,
0x04
,
0x00000000
},
{
0x418e1c
,
2
,
0x04
,
0x00000000
},
{
0x41900c
,
1
,
0x04
,
0x00000000
},
{
0x419018
,
1
,
0x04
,
0x00000000
},
{}
};
static
struct
nvc0_graph_init
nv108_graph_init_tpc
[]
=
{
{
0x419d0c
,
1
,
0x04
,
0x00000000
},
{
0x419d10
,
1
,
0x04
,
0x00000014
},
{
0x419ab0
,
1
,
0x04
,
0x00000000
},
{
0x419ac8
,
1
,
0x04
,
0x00000000
},
{
0x419ab8
,
1
,
0x04
,
0x000000e7
},
{
0x419abc
,
2
,
0x04
,
0x00000000
},
{
0x419ab4
,
1
,
0x04
,
0x00000000
},
{
0x419aa8
,
2
,
0x04
,
0x00000000
},
{
0x41980c
,
1
,
0x04
,
0x00000010
},
{
0x419844
,
1
,
0x04
,
0x00000000
},
{
0x419850
,
1
,
0x04
,
0x00000004
},
{
0x419854
,
2
,
0x04
,
0x00000000
},
{
0x419c98
,
1
,
0x04
,
0x00000000
},
{
0x419ca8
,
1
,
0x04
,
0x00000000
},
{
0x419cb0
,
1
,
0x04
,
0x01000000
},
{
0x419cb4
,
1
,
0x04
,
0x00000000
},
{
0x419cb8
,
1
,
0x04
,
0x00b08bea
},
{
0x419c84
,
1
,
0x04
,
0x00010384
},
{
0x419cbc
,
1
,
0x04
,
0x281b3646
},
{
0x419cc0
,
2
,
0x04
,
0x00000000
},
{
0x419c80
,
1
,
0x04
,
0x00000230
},
{
0x419ccc
,
2
,
0x04
,
0x00000000
},
{
0x419c0c
,
1
,
0x04
,
0x00000000
},
{
0x419e00
,
1
,
0x04
,
0x00000080
},
{
0x419ea0
,
1
,
0x04
,
0x00000000
},
{
0x419ee4
,
1
,
0x04
,
0x00000000
},
{
0x419ea4
,
1
,
0x04
,
0x00000100
},
{
0x419ea8
,
1
,
0x04
,
0x00000000
},
{
0x419eb4
,
1
,
0x04
,
0x00000000
},
{
0x419ebc
,
2
,
0x04
,
0x00000000
},
{
0x419edc
,
1
,
0x04
,
0x00000000
},
{
0x419f00
,
1
,
0x04
,
0x00000000
},
{
0x419ed0
,
1
,
0x04
,
0x00003234
},
{
0x419f74
,
1
,
0x04
,
0x00015555
},
{
0x419f80
,
4
,
0x04
,
0x00000000
},
{}
};
static
int
nv108_graph_fini
(
struct
nouveau_object
*
object
,
bool
suspend
)
{
struct
nvc0_graph_priv
*
priv
=
(
void
*
)
object
;
static
const
struct
{
u32
addr
;
u32
data
;
}
magic
[]
=
{
{
0x020520
,
0xfffffffc
},
{
0x020524
,
0xfffffffe
},
{
0x020524
,
0xfffffffc
},
{
0x020524
,
0xfffffff8
},
{
0x020524
,
0xffffffe0
},
{
0x020530
,
0xfffffffe
},
{
0x02052c
,
0xfffffffa
},
{
0x02052c
,
0xfffffff0
},
{
0x02052c
,
0xffffffc0
},
{
0x02052c
,
0xffffff00
},
{
0x02052c
,
0xfffffc00
},
{
0x02052c
,
0xfffcfc00
},
{
0x02052c
,
0xfff0fc00
},
{
0x02052c
,
0xff80fc00
},
{
0x020528
,
0xfffffffe
},
{
0x020528
,
0xfffffffc
},
};
int
i
;
nv_mask
(
priv
,
0x000200
,
0x08001000
,
0x00000000
);
nv_mask
(
priv
,
0x0206b4
,
0x00000000
,
0x00000000
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
magic
);
i
++
)
{
nv_wr32
(
priv
,
magic
[
i
].
addr
,
magic
[
i
].
data
);
nv_wait
(
priv
,
magic
[
i
].
addr
,
0x80000000
,
0x00000000
);
}
return
nouveau_graph_fini
(
&
priv
->
base
,
suspend
);
}
static
struct
nvc0_graph_init
*
nv108_graph_init_mmio
[]
=
{
nv108_graph_init_regs
,
nvf0_graph_init_unk40xx
,
nvc0_graph_init_unk44xx
,
nvc0_graph_init_unk78xx
,
nvc0_graph_init_unk60xx
,
nvd9_graph_init_unk64xx
,
nv108_graph_init_unk58xx
,
nvc0_graph_init_unk80xx
,
nvf0_graph_init_unk70xx
,
nvf0_graph_init_unk5bxx
,
nv108_graph_init_gpc
,
nv108_graph_init_tpc
,
nve4_graph_init_unk
,
nve4_graph_init_unk88xx
,
NULL
};
#include "fuc/hubnv108.fuc5.h"
static
struct
nvc0_graph_ucode
nv108_graph_fecs_ucode
=
{
.
code
.
data
=
nv108_grhub_code
,
.
code
.
size
=
sizeof
(
nv108_grhub_code
),
.
data
.
data
=
nv108_grhub_data
,
.
data
.
size
=
sizeof
(
nv108_grhub_data
),
};
#include "fuc/gpcnv108.fuc5.h"
static
struct
nvc0_graph_ucode
nv108_graph_gpccs_ucode
=
{
.
code
.
data
=
nv108_grgpc_code
,
.
code
.
size
=
sizeof
(
nv108_grgpc_code
),
.
data
.
data
=
nv108_grgpc_data
,
.
data
.
size
=
sizeof
(
nv108_grgpc_data
),
};
struct
nouveau_oclass
*
nv108_graph_oclass
=
&
(
struct
nvc0_graph_oclass
)
{
.
base
.
handle
=
NV_ENGINE
(
GR
,
0x08
),
.
base
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
nvc0_graph_ctor
,
.
dtor
=
nvc0_graph_dtor
,
.
init
=
nve4_graph_init
,
.
fini
=
nv108_graph_fini
,
},
.
cclass
=
&
nv108_grctx_oclass
,
.
sclass
=
nv108_graph_sclass
,
.
mmio
=
nv108_graph_init_mmio
,
.
fecs
.
ucode
=
0
?
&
nv108_graph_fecs_ucode
:
NULL
,
.
gpccs
.
ucode
=
&
nv108_graph_gpccs_ucode
,
}.
base
;
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
浏览文件 @
96616b4c
...
...
@@ -901,6 +901,9 @@ nvc0_graph_init_ctxctl(struct nvc0_graph_priv *priv)
}
return
0
;
}
else
if
(
!
oclass
->
fecs
.
ucode
)
{
return
-
ENOSYS
;
}
/* load HUB microcode */
...
...
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h
浏览文件 @
96616b4c
...
...
@@ -205,6 +205,11 @@ extern struct nvc0_graph_init nve4_graph_init_regs[];
extern
struct
nvc0_graph_init
nve4_graph_init_unk
[];
extern
struct
nvc0_graph_init
nve4_graph_init_unk88xx
[];
extern
struct
nvc0_graph_init
nvf0_graph_init_unk40xx
[];
extern
struct
nvc0_graph_init
nvf0_graph_init_unk70xx
[];
extern
struct
nvc0_graph_init
nvf0_graph_init_unk5bxx
[];
extern
struct
nvc0_graph_init
nvf0_graph_init_tpc
[];
int
nvc0_grctx_generate
(
struct
nvc0_graph_priv
*
);
void
nvc0_grctx_generate_main
(
struct
nvc0_graph_priv
*
,
struct
nvc0_grctx
*
);
void
nvc0_grctx_generate_mods
(
struct
nvc0_graph_priv
*
,
struct
nvc0_grctx
*
);
...
...
@@ -266,6 +271,11 @@ extern struct nvc0_graph_init nve4_grctx_init_unk80xx[];
extern
struct
nvc0_graph_init
nve4_grctx_init_unk90xx
[];
extern
struct
nouveau_oclass
*
nvf0_grctx_oclass
;
extern
struct
nvc0_graph_init
nvf0_grctx_init_unk44xx
[];
extern
struct
nvc0_graph_init
nvf0_grctx_init_unk5bxx
[];
extern
struct
nvc0_graph_init
nvf0_grctx_init_unk60xx
[];
extern
struct
nouveau_oclass
*
nv108_grctx_oclass
;
#define mmio_data(s,a,p) do { \
info->buffer[info->buffer_nr] = round_up(info->addr, (a)); \
...
...
drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
浏览文件 @
96616b4c
...
...
@@ -41,7 +41,7 @@ nvf0_graph_sclass[] = {
* PGRAPH engine/subdev functions
******************************************************************************/
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_graph_init_unk40xx
[]
=
{
{
0x40415c
,
1
,
0x04
,
0x00000000
},
{
0x404170
,
1
,
0x04
,
0x00000000
},
...
...
@@ -60,7 +60,7 @@ nvf0_graph_init_unk58xx[] = {
{}
};
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_graph_init_unk70xx
[]
=
{
{
0x407010
,
1
,
0x04
,
0x00000000
},
{
0x407040
,
1
,
0x04
,
0x80440424
},
...
...
@@ -68,7 +68,7 @@ nvf0_graph_init_unk70xx[] = {
{}
};
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_graph_init_unk5bxx
[]
=
{
{
0x405b44
,
1
,
0x04
,
0x00000000
},
{
0x405b50
,
1
,
0x04
,
0x00000000
},
...
...
@@ -114,7 +114,7 @@ nvf0_graph_init_gpc[] = {
{}
};
st
atic
st
ruct
nvc0_graph_init
struct
nvc0_graph_init
nvf0_graph_init_tpc
[]
=
{
{
0x419d0c
,
1
,
0x04
,
0x00000000
},
{
0x419d10
,
1
,
0x04
,
0x00000014
},
...
...
drivers/gpu/drm/nouveau/core/include/engine/graph.h
浏览文件 @
96616b4c
...
...
@@ -69,6 +69,7 @@ extern struct nouveau_oclass *nvd7_graph_oclass;
extern
struct
nouveau_oclass
*
nvd9_graph_oclass
;
extern
struct
nouveau_oclass
*
nve4_graph_oclass
;
extern
struct
nouveau_oclass
*
nvf0_graph_oclass
;
extern
struct
nouveau_oclass
*
nv108_graph_oclass
;
extern
const
struct
nouveau_bitfield
nv04_graph_nsource
[];
extern
struct
nouveau_ofuncs
nv04_graph_ofuncs
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录