Commit 191e3232 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/gr/gf100-gm10x: update register lists

There are differences on GM200 and newer too, but we can't fix them there
as they come from firmware packages.

A request has been made to NVIDIA to release updated firmware.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 6f023332
...@@ -850,12 +850,17 @@ gf100_grctx_init_gcc_0[] = { ...@@ -850,12 +850,17 @@ gf100_grctx_init_gcc_0[] = {
}; };
const struct gf100_gr_pack const struct gf100_gr_pack
gf100_grctx_pack_gpc[] = { gf100_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf100_grctx_init_prop_0 }, { gf100_grctx_init_prop_0 },
{ gf100_grctx_init_gpc_unk_1 }, { gf100_grctx_init_gpc_unk_1 },
{ gf100_grctx_init_setup_0 }, { gf100_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
const struct gf100_gr_pack
gf100_grctx_pack_gpc_1[] = {
{ gf100_grctx_init_crstr_0 }, { gf100_grctx_init_crstr_0 },
{ gf100_grctx_init_gpm_0 }, { gf100_grctx_init_gpm_0 },
{ gf100_grctx_init_gcc_0 }, { gf100_grctx_init_gcc_0 },
...@@ -1371,8 +1376,9 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info) ...@@ -1371,8 +1376,9 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
if (!gr->fuc_sw_ctx) { if (!gr->fuc_sw_ctx) {
gf100_gr_mmio(gr, grctx->hub); gf100_gr_mmio(gr, grctx->hub);
gf100_gr_mmio(gr, grctx->gpc); gf100_gr_mmio(gr, grctx->gpc_0);
gf100_gr_mmio(gr, grctx->zcull); gf100_gr_mmio(gr, grctx->zcull);
gf100_gr_mmio(gr, grctx->gpc_1);
gf100_gr_mmio(gr, grctx->tpc); gf100_gr_mmio(gr, grctx->tpc);
gf100_gr_mmio(gr, grctx->ppc); gf100_gr_mmio(gr, grctx->ppc);
} else { } else {
...@@ -1567,7 +1573,8 @@ gf100_grctx = { ...@@ -1567,7 +1573,8 @@ gf100_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gf100_grctx_generate_unkn, .unkn = gf100_grctx_generate_unkn,
.hub = gf100_grctx_pack_hub, .hub = gf100_grctx_pack_hub,
.gpc = gf100_grctx_pack_gpc, .gpc_0 = gf100_grctx_pack_gpc_0,
.gpc_1 = gf100_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gf100_grctx_pack_tpc, .tpc = gf100_grctx_pack_tpc,
.icmd = gf100_grctx_pack_icmd, .icmd = gf100_grctx_pack_icmd,
......
...@@ -27,7 +27,8 @@ struct gf100_grctx_func { ...@@ -27,7 +27,8 @@ struct gf100_grctx_func {
void (*unkn)(struct gf100_gr *); void (*unkn)(struct gf100_gr *);
/* mmio context data */ /* mmio context data */
const struct gf100_gr_pack *hub; const struct gf100_gr_pack *hub;
const struct gf100_gr_pack *gpc; const struct gf100_gr_pack *gpc_0;
const struct gf100_gr_pack *gpc_1;
const struct gf100_gr_pack *zcull; const struct gf100_gr_pack *zcull;
const struct gf100_gr_pack *tpc; const struct gf100_gr_pack *tpc;
const struct gf100_gr_pack *ppc; const struct gf100_gr_pack *ppc;
...@@ -163,7 +164,8 @@ extern const struct gf100_gr_init gf100_grctx_init_memfmt_0[]; ...@@ -163,7 +164,8 @@ extern const struct gf100_gr_init gf100_grctx_init_memfmt_0[];
extern const struct gf100_gr_init gf100_grctx_init_rstr2d_0[]; extern const struct gf100_gr_init gf100_grctx_init_rstr2d_0[];
extern const struct gf100_gr_init gf100_grctx_init_scc_0[]; extern const struct gf100_gr_init gf100_grctx_init_scc_0[];
extern const struct gf100_gr_pack gf100_grctx_pack_gpc[]; extern const struct gf100_gr_pack gf100_grctx_pack_gpc_0[];
extern const struct gf100_gr_pack gf100_grctx_pack_gpc_1[];
extern const struct gf100_gr_init gf100_grctx_init_gpc_unk_0[]; extern const struct gf100_gr_init gf100_grctx_init_gpc_unk_0[];
extern const struct gf100_gr_init gf100_grctx_init_prop_0[]; extern const struct gf100_gr_init gf100_grctx_init_prop_0[];
extern const struct gf100_gr_init gf100_grctx_init_gpc_unk_1[]; extern const struct gf100_gr_init gf100_grctx_init_gpc_unk_1[];
...@@ -212,6 +214,8 @@ extern const struct gf100_gr_init gf117_grctx_init_pe_0[]; ...@@ -212,6 +214,8 @@ extern const struct gf100_gr_init gf117_grctx_init_pe_0[];
extern const struct gf100_gr_init gf117_grctx_init_wwdx_0[]; extern const struct gf100_gr_init gf117_grctx_init_wwdx_0[];
extern const struct gf100_gr_pack gf117_grctx_pack_gpc_1[];
extern const struct gf100_gr_init gk104_grctx_init_memfmt_0[]; extern const struct gf100_gr_init gk104_grctx_init_memfmt_0[];
extern const struct gf100_gr_init gk104_grctx_init_ds_0[]; extern const struct gf100_gr_init gk104_grctx_init_ds_0[];
extern const struct gf100_gr_init gk104_grctx_init_scc_0[]; extern const struct gf100_gr_init gk104_grctx_init_scc_0[];
...@@ -221,7 +225,6 @@ extern const struct gf100_gr_init gk104_grctx_init_gpm_0[]; ...@@ -221,7 +225,6 @@ extern const struct gf100_gr_init gk104_grctx_init_gpm_0[];
extern const struct gf100_gr_init gk104_grctx_init_pes_0[]; extern const struct gf100_gr_init gk104_grctx_init_pes_0[];
extern const struct gf100_gr_pack gk104_grctx_pack_hub[]; extern const struct gf100_gr_pack gk104_grctx_pack_hub[];
extern const struct gf100_gr_pack gk104_grctx_pack_gpc[];
extern const struct gf100_gr_pack gk104_grctx_pack_tpc[]; extern const struct gf100_gr_pack gk104_grctx_pack_tpc[];
extern const struct gf100_gr_pack gk104_grctx_pack_ppc[]; extern const struct gf100_gr_pack gk104_grctx_pack_ppc[];
extern const struct gf100_gr_pack gk104_grctx_pack_icmd[]; extern const struct gf100_gr_pack gk104_grctx_pack_icmd[];
...@@ -235,7 +238,8 @@ extern const struct gf100_gr_pack gk110_grctx_pack_hub[]; ...@@ -235,7 +238,8 @@ extern const struct gf100_gr_pack gk110_grctx_pack_hub[];
extern const struct gf100_gr_init gk110_grctx_init_pri_0[]; extern const struct gf100_gr_init gk110_grctx_init_pri_0[];
extern const struct gf100_gr_init gk110_grctx_init_cwd_0[]; extern const struct gf100_gr_init gk110_grctx_init_cwd_0[];
extern const struct gf100_gr_pack gk110_grctx_pack_gpc[]; extern const struct gf100_gr_pack gk110_grctx_pack_gpc_0[];
extern const struct gf100_gr_pack gk110_grctx_pack_gpc_1[];
extern const struct gf100_gr_init gk110_grctx_init_gpc_unk_2[]; extern const struct gf100_gr_init gk110_grctx_init_gpc_unk_2[];
extern const struct gf100_gr_init gk110_grctx_init_tex_0[]; extern const struct gf100_gr_init gk110_grctx_init_tex_0[];
......
...@@ -84,7 +84,8 @@ gf104_grctx = { ...@@ -84,7 +84,8 @@ gf104_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gf100_grctx_generate_unkn, .unkn = gf100_grctx_generate_unkn,
.hub = gf100_grctx_pack_hub, .hub = gf100_grctx_pack_hub,
.gpc = gf100_grctx_pack_gpc, .gpc_0 = gf100_grctx_pack_gpc_0,
.gpc_1 = gf100_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gf104_grctx_pack_tpc, .tpc = gf104_grctx_pack_tpc,
.icmd = gf100_grctx_pack_icmd, .icmd = gf100_grctx_pack_icmd,
......
...@@ -667,12 +667,17 @@ gf108_grctx_init_gpm_0[] = { ...@@ -667,12 +667,17 @@ gf108_grctx_init_gpm_0[] = {
}; };
static const struct gf100_gr_pack static const struct gf100_gr_pack
gf108_grctx_pack_gpc[] = { gf108_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf100_grctx_init_prop_0 }, { gf100_grctx_init_prop_0 },
{ gf100_grctx_init_gpc_unk_1 }, { gf100_grctx_init_gpc_unk_1 },
{ gf108_grctx_init_setup_0 }, { gf108_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
static const struct gf100_gr_pack
gf108_grctx_pack_gpc_1[] = {
{ gf100_grctx_init_crstr_0 }, { gf100_grctx_init_crstr_0 },
{ gf108_grctx_init_gpm_0 }, { gf108_grctx_init_gpm_0 },
{ gf100_grctx_init_gcc_0 }, { gf100_grctx_init_gcc_0 },
...@@ -780,7 +785,8 @@ gf108_grctx = { ...@@ -780,7 +785,8 @@ gf108_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gf108_grctx_generate_unkn, .unkn = gf108_grctx_generate_unkn,
.hub = gf108_grctx_pack_hub, .hub = gf108_grctx_pack_hub,
.gpc = gf108_grctx_pack_gpc, .gpc_0 = gf108_grctx_pack_gpc_0,
.gpc_1 = gf108_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gf108_grctx_pack_tpc, .tpc = gf108_grctx_pack_tpc,
.icmd = gf108_grctx_pack_icmd, .icmd = gf108_grctx_pack_icmd,
......
...@@ -314,15 +314,12 @@ gf110_grctx_init_setup_0[] = { ...@@ -314,15 +314,12 @@ gf110_grctx_init_setup_0[] = {
}; };
static const struct gf100_gr_pack static const struct gf100_gr_pack
gf110_grctx_pack_gpc[] = { gf110_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf100_grctx_init_prop_0 }, { gf100_grctx_init_prop_0 },
{ gf100_grctx_init_gpc_unk_1 }, { gf100_grctx_init_gpc_unk_1 },
{ gf110_grctx_init_setup_0 }, { gf110_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{ gf100_grctx_init_crstr_0 },
{ gf100_grctx_init_gpm_0 },
{ gf100_grctx_init_gcc_0 },
{} {}
}; };
...@@ -335,7 +332,8 @@ gf110_grctx = { ...@@ -335,7 +332,8 @@ gf110_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gf100_grctx_generate_unkn, .unkn = gf100_grctx_generate_unkn,
.hub = gf100_grctx_pack_hub, .hub = gf100_grctx_pack_hub,
.gpc = gf110_grctx_pack_gpc, .gpc_0 = gf110_grctx_pack_gpc_0,
.gpc_1 = gf100_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gf100_grctx_pack_tpc, .tpc = gf100_grctx_pack_tpc,
.icmd = gf110_grctx_pack_icmd, .icmd = gf110_grctx_pack_icmd,
......
...@@ -84,12 +84,17 @@ gf117_grctx_init_setup_0[] = { ...@@ -84,12 +84,17 @@ gf117_grctx_init_setup_0[] = {
}; };
static const struct gf100_gr_pack static const struct gf100_gr_pack
gf117_grctx_pack_gpc[] = { gf117_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf119_grctx_init_prop_0 }, { gf119_grctx_init_prop_0 },
{ gf119_grctx_init_gpc_unk_1 }, { gf119_grctx_init_gpc_unk_1 },
{ gf117_grctx_init_setup_0 }, { gf117_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
const struct gf100_gr_pack
gf117_grctx_pack_gpc_1[] = {
{ gf119_grctx_init_crstr_0 }, { gf119_grctx_init_crstr_0 },
{ gf108_grctx_init_gpm_0 }, { gf108_grctx_init_gpm_0 },
{ gf100_grctx_init_gcc_0 }, { gf100_grctx_init_gcc_0 },
...@@ -278,7 +283,8 @@ gf117_grctx = { ...@@ -278,7 +283,8 @@ gf117_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gk104_grctx_generate_unkn, .unkn = gk104_grctx_generate_unkn,
.hub = gf117_grctx_pack_hub, .hub = gf117_grctx_pack_hub,
.gpc = gf117_grctx_pack_gpc, .gpc_0 = gf117_grctx_pack_gpc_0,
.gpc_1 = gf117_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gf117_grctx_pack_tpc, .tpc = gf117_grctx_pack_tpc,
.ppc = gf117_grctx_pack_ppc, .ppc = gf117_grctx_pack_ppc,
......
...@@ -431,15 +431,12 @@ gf119_grctx_init_crstr_0[] = { ...@@ -431,15 +431,12 @@ gf119_grctx_init_crstr_0[] = {
}; };
static const struct gf100_gr_pack static const struct gf100_gr_pack
gf119_grctx_pack_gpc[] = { gf119_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf119_grctx_init_prop_0 }, { gf119_grctx_init_prop_0 },
{ gf119_grctx_init_gpc_unk_1 }, { gf119_grctx_init_gpc_unk_1 },
{ gf119_grctx_init_setup_0 }, { gf119_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{ gf119_grctx_init_crstr_0 },
{ gf108_grctx_init_gpm_0 },
{ gf100_grctx_init_gcc_0 },
{} {}
}; };
...@@ -503,7 +500,8 @@ gf119_grctx = { ...@@ -503,7 +500,8 @@ gf119_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gf108_grctx_generate_unkn, .unkn = gf108_grctx_generate_unkn,
.hub = gf119_grctx_pack_hub, .hub = gf119_grctx_pack_hub,
.gpc = gf119_grctx_pack_gpc, .gpc_0 = gf119_grctx_pack_gpc_0,
.gpc_1 = gf117_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gf119_grctx_pack_tpc, .tpc = gf119_grctx_pack_tpc,
.icmd = gf119_grctx_pack_icmd, .icmd = gf119_grctx_pack_icmd,
......
...@@ -739,13 +739,18 @@ gk104_grctx_init_gpm_0[] = { ...@@ -739,13 +739,18 @@ gk104_grctx_init_gpm_0[] = {
{} {}
}; };
const struct gf100_gr_pack static const struct gf100_gr_pack
gk104_grctx_pack_gpc[] = { gk104_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf119_grctx_init_prop_0 }, { gf119_grctx_init_prop_0 },
{ gf119_grctx_init_gpc_unk_1 }, { gf119_grctx_init_gpc_unk_1 },
{ gk104_grctx_init_setup_0 }, { gk104_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
static const struct gf100_gr_pack
gk104_grctx_pack_gpc_1[] = {
{ gf119_grctx_init_crstr_0 }, { gf119_grctx_init_crstr_0 },
{ gk104_grctx_init_gpm_0 }, { gk104_grctx_init_gpm_0 },
{ gf100_grctx_init_gcc_0 }, { gf100_grctx_init_gcc_0 },
...@@ -973,7 +978,8 @@ gk104_grctx = { ...@@ -973,7 +978,8 @@ gk104_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gk104_grctx_generate_unkn, .unkn = gk104_grctx_generate_unkn,
.hub = gk104_grctx_pack_hub, .hub = gk104_grctx_pack_hub,
.gpc = gk104_grctx_pack_gpc, .gpc_0 = gk104_grctx_pack_gpc_0,
.gpc_1 = gk104_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gk104_grctx_pack_tpc, .tpc = gk104_grctx_pack_tpc,
.ppc = gk104_grctx_pack_ppc, .ppc = gk104_grctx_pack_ppc,
......
...@@ -704,12 +704,17 @@ gk110_grctx_init_gpc_unk_2[] = { ...@@ -704,12 +704,17 @@ gk110_grctx_init_gpc_unk_2[] = {
}; };
const struct gf100_gr_pack const struct gf100_gr_pack
gk110_grctx_pack_gpc[] = { gk110_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gf119_grctx_init_prop_0 }, { gf119_grctx_init_prop_0 },
{ gf119_grctx_init_gpc_unk_1 }, { gf119_grctx_init_gpc_unk_1 },
{ gk110_grctx_init_setup_0 }, { gk110_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
const struct gf100_gr_pack
gk110_grctx_pack_gpc_1[] = {
{ gf119_grctx_init_crstr_0 }, { gf119_grctx_init_crstr_0 },
{ gk104_grctx_init_gpm_0 }, { gk104_grctx_init_gpm_0 },
{ gk110_grctx_init_gpc_unk_2 }, { gk110_grctx_init_gpc_unk_2 },
...@@ -820,7 +825,8 @@ gk110_grctx = { ...@@ -820,7 +825,8 @@ gk110_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gk104_grctx_generate_unkn, .unkn = gk104_grctx_generate_unkn,
.hub = gk110_grctx_pack_hub, .hub = gk110_grctx_pack_hub,
.gpc = gk110_grctx_pack_gpc, .gpc_0 = gk110_grctx_pack_gpc_0,
.gpc_1 = gk110_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gk110_grctx_pack_tpc, .tpc = gk110_grctx_pack_tpc,
.ppc = gk110_grctx_pack_ppc, .ppc = gk110_grctx_pack_ppc,
......
...@@ -74,7 +74,8 @@ gk110b_grctx = { ...@@ -74,7 +74,8 @@ gk110b_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gk104_grctx_generate_unkn, .unkn = gk104_grctx_generate_unkn,
.hub = gk110_grctx_pack_hub, .hub = gk110_grctx_pack_hub,
.gpc = gk110_grctx_pack_gpc, .gpc_0 = gk110_grctx_pack_gpc_0,
.gpc_1 = gk110_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gk110b_grctx_pack_tpc, .tpc = gk110b_grctx_pack_tpc,
.ppc = gk110_grctx_pack_ppc, .ppc = gk110_grctx_pack_ppc,
......
...@@ -443,12 +443,17 @@ gk208_grctx_init_gpm_0[] = { ...@@ -443,12 +443,17 @@ gk208_grctx_init_gpm_0[] = {
}; };
static const struct gf100_gr_pack static const struct gf100_gr_pack
gk208_grctx_pack_gpc[] = { gk208_grctx_pack_gpc_0[] = {
{ gf100_grctx_init_gpc_unk_0 }, { gf100_grctx_init_gpc_unk_0 },
{ gk208_grctx_init_prop_0 }, { gk208_grctx_init_prop_0 },
{ gk208_grctx_init_gpc_unk_1 }, { gk208_grctx_init_gpc_unk_1 },
{ gk208_grctx_init_setup_0 }, { gk208_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
static const struct gf100_gr_pack
gk208_grctx_pack_gpc_1[] = {
{ gk208_grctx_init_crstr_0 }, { gk208_grctx_init_crstr_0 },
{ gk208_grctx_init_gpm_0 }, { gk208_grctx_init_gpm_0 },
{ gk110_grctx_init_gpc_unk_2 }, { gk110_grctx_init_gpc_unk_2 },
...@@ -535,7 +540,8 @@ gk208_grctx = { ...@@ -535,7 +540,8 @@ gk208_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gk104_grctx_generate_unkn, .unkn = gk104_grctx_generate_unkn,
.hub = gk208_grctx_pack_hub, .hub = gk208_grctx_pack_hub,
.gpc = gk208_grctx_pack_gpc, .gpc_0 = gk208_grctx_pack_gpc_0,
.gpc_1 = gk208_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gk208_grctx_pack_tpc, .tpc = gk208_grctx_pack_tpc,
.ppc = gk208_grctx_pack_ppc, .ppc = gk208_grctx_pack_ppc,
......
...@@ -744,12 +744,17 @@ gm107_grctx_init_gpc_unk_2[] = { ...@@ -744,12 +744,17 @@ gm107_grctx_init_gpc_unk_2[] = {
}; };
static const struct gf100_gr_pack static const struct gf100_gr_pack
gm107_grctx_pack_gpc[] = { gm107_grctx_pack_gpc_0[] = {
{ gm107_grctx_init_gpc_unk_0 }, { gm107_grctx_init_gpc_unk_0 },
{ gk208_grctx_init_prop_0 }, { gk208_grctx_init_prop_0 },
{ gm107_grctx_init_gpc_unk_1 }, { gm107_grctx_init_gpc_unk_1 },
{ gm107_grctx_init_setup_0 }, { gm107_grctx_init_setup_0 },
{ gf100_grctx_init_zcull_0 }, { gf100_grctx_init_zcull_0 },
{}
};
static const struct gf100_gr_pack
gm107_grctx_pack_gpc_1[] = {
{ gk208_grctx_init_crstr_0 }, { gk208_grctx_init_crstr_0 },
{ gk104_grctx_init_gpm_0 }, { gk104_grctx_init_gpm_0 },
{ gm107_grctx_init_gpc_unk_2 }, { gm107_grctx_init_gpc_unk_2 },
...@@ -960,7 +965,8 @@ gm107_grctx = { ...@@ -960,7 +965,8 @@ gm107_grctx = {
.main = gf100_grctx_generate_main, .main = gf100_grctx_generate_main,
.unkn = gk104_grctx_generate_unkn, .unkn = gk104_grctx_generate_unkn,
.hub = gm107_grctx_pack_hub, .hub = gm107_grctx_pack_hub,
.gpc = gm107_grctx_pack_gpc, .gpc_0 = gm107_grctx_pack_gpc_0,
.gpc_1 = gm107_grctx_pack_gpc_1,
.zcull = gf100_grctx_pack_zcull, .zcull = gf100_grctx_pack_zcull,
.tpc = gm107_grctx_pack_tpc, .tpc = gm107_grctx_pack_tpc,
.ppc = gm107_grctx_pack_ppc, .ppc = gm107_grctx_pack_ppc,
......
...@@ -1612,7 +1612,8 @@ gf100_gr_init_ctxctl_int(struct gf100_gr *gr) ...@@ -1612,7 +1612,8 @@ gf100_gr_init_ctxctl_int(struct gf100_gr *gr)
/* load register lists */ /* load register lists */
gf100_gr_init_csdata(gr, grctx->hub, 0x409000, 0x000, 0x000000); gf100_gr_init_csdata(gr, grctx->hub, 0x409000, 0x000, 0x000000);
gf100_gr_init_csdata(gr, grctx->gpc, 0x41a000, 0x000, 0x418000); gf100_gr_init_csdata(gr, grctx->gpc_0, 0x41a000, 0x000, 0x418000);
gf100_gr_init_csdata(gr, grctx->gpc_1, 0x41a000, 0x000, 0x418000);
gf100_gr_init_csdata(gr, grctx->tpc, 0x41a000, 0x004, 0x419800); gf100_gr_init_csdata(gr, grctx->tpc, 0x41a000, 0x004, 0x419800);
gf100_gr_init_csdata(gr, grctx->ppc, 0x41a000, 0x008, 0x41be00); gf100_gr_init_csdata(gr, grctx->ppc, 0x41a000, 0x008, 0x41be00);
......
...@@ -338,6 +338,7 @@ extern const struct gf100_gr_init gf117_gr_init_wwdx_0[]; ...@@ -338,6 +338,7 @@ extern const struct gf100_gr_init gf117_gr_init_wwdx_0[];
extern const struct gf100_gr_init gf117_gr_init_cbm_0[]; extern const struct gf100_gr_init gf117_gr_init_cbm_0[];
extern const struct gf100_gr_init gk104_gr_init_main_0[]; extern const struct gf100_gr_init gk104_gr_init_main_0[];
extern const struct gf100_gr_init gk104_gr_init_gpc_unk_2[];
extern const struct gf100_gr_init gk104_gr_init_tpccs_0[]; extern const struct gf100_gr_init gk104_gr_init_tpccs_0[];
extern const struct gf100_gr_init gk104_gr_init_pe_0[]; extern const struct gf100_gr_init gk104_gr_init_pe_0[];
extern const struct gf100_gr_init gk104_gr_init_be_0[]; extern const struct gf100_gr_init gk104_gr_init_be_0[];
......
...@@ -82,6 +82,12 @@ gk104_gr_init_gpc_unk_1[] = { ...@@ -82,6 +82,12 @@ gk104_gr_init_gpc_unk_1[] = {
{} {}
}; };
const struct gf100_gr_init
gk104_gr_init_gpc_unk_2[] = {
{ 0x418884, 1, 0x04, 0x00000000 },
{}
};
const struct gf100_gr_init const struct gf100_gr_init
gk104_gr_init_tpccs_0[] = { gk104_gr_init_tpccs_0[] = {
{ 0x419d0c, 1, 0x04, 0x00000000 }, { 0x419d0c, 1, 0x04, 0x00000000 },
...@@ -160,6 +166,7 @@ gk104_gr_pack_mmio[] = { ...@@ -160,6 +166,7 @@ gk104_gr_pack_mmio[] = {
{ gf119_gr_init_gpm_0 }, { gf119_gr_init_gpm_0 },
{ gk104_gr_init_gpc_unk_1 }, { gk104_gr_init_gpc_unk_1 },
{ gf100_gr_init_gcc_0 }, { gf100_gr_init_gcc_0 },
{ gk104_gr_init_gpc_unk_2 },
{ gk104_gr_init_tpccs_0 }, { gk104_gr_init_tpccs_0 },
{ gf119_gr_init_tex_0 }, { gf119_gr_init_tex_0 },
{ gk104_gr_init_pe_0 }, { gk104_gr_init_pe_0 },
......
...@@ -143,6 +143,7 @@ gk110_gr_pack_mmio[] = { ...@@ -143,6 +143,7 @@ gk110_gr_pack_mmio[] = {
{ gf119_gr_init_gpm_0 }, { gf119_gr_init_gpm_0 },
{ gk110_gr_init_gpc_unk_1 }, { gk110_gr_init_gpc_unk_1 },
{ gf100_gr_init_gcc_0 }, { gf100_gr_init_gcc_0 },
{ gk104_gr_init_gpc_unk_2 },
{ gk104_gr_init_tpccs_0 }, { gk104_gr_init_tpccs_0 },
{ gk110_gr_init_tex_0 }, { gk110_gr_init_tex_0 },
{ gk104_gr_init_pe_0 }, { gk104_gr_init_pe_0 },
......
...@@ -82,6 +82,7 @@ gk110b_gr_pack_mmio[] = { ...@@ -82,6 +82,7 @@ gk110b_gr_pack_mmio[] = {
{ gf119_gr_init_gpm_0 }, { gf119_gr_init_gpm_0 },
{ gk110_gr_init_gpc_unk_1 }, { gk110_gr_init_gpc_unk_1 },
{ gf100_gr_init_gcc_0 }, { gf100_gr_init_gcc_0 },
{ gk104_gr_init_gpc_unk_2 },
{ gk104_gr_init_tpccs_0 }, { gk104_gr_init_tpccs_0 },
{ gk110_gr_init_tex_0 }, { gk110_gr_init_tex_0 },
{ gk104_gr_init_pe_0 }, { gk104_gr_init_pe_0 },
......
...@@ -121,6 +121,7 @@ gk208_gr_pack_mmio[] = { ...@@ -121,6 +121,7 @@ gk208_gr_pack_mmio[] = {
{ gf119_gr_init_gpm_0 }, { gf119_gr_init_gpm_0 },
{ gk110_gr_init_gpc_unk_1 }, { gk110_gr_init_gpc_unk_1 },
{ gf100_gr_init_gcc_0 }, { gf100_gr_init_gcc_0 },
{ gk104_gr_init_gpc_unk_2 },
{ gk104_gr_init_tpccs_0 }, { gk104_gr_init_tpccs_0 },
{ gk208_gr_init_tex_0 }, { gk208_gr_init_tex_0 },
{ gk104_gr_init_pe_0 }, { gk104_gr_init_pe_0 },
......
...@@ -38,6 +38,10 @@ ...@@ -38,6 +38,10 @@
static const struct gf100_gr_init static const struct gf100_gr_init
gm107_gr_init_main_0[] = { gm107_gr_init_main_0[] = {
{ 0x40880c, 1, 0x04, 0x00000000 },
{ 0x408910, 1, 0x04, 0x00000000 },
{ 0x408984, 1, 0x04, 0x00000000 },
{ 0x41a8a0, 1, 0x04, 0x00000000 },
{ 0x400080, 1, 0x04, 0x003003c2 }, { 0x400080, 1, 0x04, 0x003003c2 },
{ 0x400088, 1, 0x04, 0x0001bfe7 }, { 0x400088, 1, 0x04, 0x0001bfe7 },
{ 0x40008c, 1, 0x04, 0x00060000 }, { 0x40008c, 1, 0x04, 0x00060000 },
...@@ -212,14 +216,13 @@ gm107_gr_init_cbm_0[] = { ...@@ -212,14 +216,13 @@ gm107_gr_init_cbm_0[] = {
static const struct gf100_gr_init static const struct gf100_gr_init
gm107_gr_init_be_0[] = { gm107_gr_init_be_0[] = {
{ 0x408890, 1, 0x04, 0x000000ff }, { 0x408890, 1, 0x04, 0x000000ff },
{ 0x40880c, 1, 0x04, 0x00000000 },
{ 0x408850, 1, 0x04, 0x00000004 }, { 0x408850, 1, 0x04, 0x00000004 },
{ 0x408878, 1, 0x04, 0x00c81603 }, { 0x408878, 1, 0x04, 0x00c81603 },
{ 0x40887c, 1, 0x04, 0x80543432 }, { 0x40887c, 1, 0x04, 0x80543432 },
{ 0x408880, 1, 0x04, 0x0010581e }, { 0x408880, 1, 0x04, 0x0010581e },
{ 0x408884, 1, 0x04, 0x00001205 }, { 0x408884, 1, 0x04, 0x00001205 },
{ 0x408974, 1, 0x04, 0x000000ff }, { 0x408974, 1, 0x04, 0x000000ff },
{ 0x408910, 9, 0x04, 0x00000000 }, { 0x408914, 8, 0x04, 0x00000000 },
{ 0x408950, 1, 0x04, 0x00000000 }, { 0x408950, 1, 0x04, 0x00000000 },
{ 0x408954, 1, 0x04, 0x0000ffff }, { 0x408954, 1, 0x04, 0x0000ffff },
{ 0x408958, 1, 0x04, 0x00000034 }, { 0x408958, 1, 0x04, 0x00000034 },
...@@ -229,7 +232,6 @@ gm107_gr_init_be_0[] = { ...@@ -229,7 +232,6 @@ gm107_gr_init_be_0[] = {
{ 0x408968, 1, 0x04, 0x02808833 }, { 0x408968, 1, 0x04, 0x02808833 },
{ 0x40896c, 1, 0x04, 0x01f02438 }, { 0x40896c, 1, 0x04, 0x01f02438 },
{ 0x408970, 1, 0x04, 0x00012c00 }, { 0x408970, 1, 0x04, 0x00012c00 },
{ 0x408984, 1, 0x04, 0x00000000 },
{ 0x408988, 1, 0x04, 0x08040201 }, { 0x408988, 1, 0x04, 0x08040201 },
{ 0x40898c, 1, 0x04, 0x80402010 }, { 0x40898c, 1, 0x04, 0x80402010 },
{} {}
...@@ -262,6 +264,7 @@ gm107_gr_pack_mmio[] = { ...@@ -262,6 +264,7 @@ gm107_gr_pack_mmio[] = {
{ gf100_gr_init_gpm_0 }, { gf100_gr_init_gpm_0 },
{ gm107_gr_init_gpc_unk_1 }, { gm107_gr_init_gpc_unk_1 },
{ gf100_gr_init_gcc_0 }, { gf100_gr_init_gcc_0 },
{ gk104_gr_init_gpc_unk_2 },
{ gm107_gr_init_tpccs_0 }, { gm107_gr_init_tpccs_0 },
{ gm107_gr_init_tex_0 }, { gm107_gr_init_tex_0 },
{ gm107_gr_init_pe_0 }, { gm107_gr_init_pe_0 },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment