drm/nouveau/gr/gf100-gm10x: update register lists
authorBen Skeggs <bskeggs@redhat.com>
Tue, 8 May 2018 10:39:47 +0000 (20:39 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 18 May 2018 05:01:26 +0000 (15:01 +1000)
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: Ben Skeggs <bskeggs@redhat.com>
19 files changed:
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf104.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf110.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf119.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110b.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk208.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110b.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk208.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c

index 4096e2d23527209796a463a8c983cd1133cf02ce..1ed63ed1a28357a717a8b69386503bf3d7b1995f 100644 (file)
@@ -850,12 +850,17 @@ gf100_grctx_init_gcc_0[] = {
 };
 
 const struct gf100_gr_pack
-gf100_grctx_pack_gpc[] = {
+gf100_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf100_grctx_init_prop_0 },
        { gf100_grctx_init_gpc_unk_1 },
        { gf100_grctx_init_setup_0 },
        { gf100_grctx_init_zcull_0 },
+       {}
+};
+
+const struct gf100_gr_pack
+gf100_grctx_pack_gpc_1[] = {
        { gf100_grctx_init_crstr_0 },
        { gf100_grctx_init_gpm_0 },
        { gf100_grctx_init_gcc_0 },
@@ -1371,8 +1376,9 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
 
        if (!gr->fuc_sw_ctx) {
                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->gpc_1);
                gf100_gr_mmio(gr, grctx->tpc);
                gf100_gr_mmio(gr, grctx->ppc);
        } else {
@@ -1567,7 +1573,8 @@ gf100_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gf100_grctx_generate_unkn,
        .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,
        .tpc   = gf100_grctx_pack_tpc,
        .icmd  = gf100_grctx_pack_icmd,
index be57ff086022927b84cad4e8a3d699e144061201..1c06c675f09e9b1023fbd093854b6c3f7f928864 100644 (file)
@@ -27,7 +27,8 @@ struct gf100_grctx_func {
        void  (*unkn)(struct gf100_gr *);
        /* mmio context data */
        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 *tpc;
        const struct gf100_gr_pack *ppc;
@@ -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_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_prop_0[];
 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[];
 
 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_ds_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[];
 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_gpc[];
 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_icmd[];
@@ -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_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_tex_0[];
index 7f3b9289a66bf04a7bba6b9bb6067da842c5b7ef..7a0564b6e3c719c2a20a0fd9a6dd12c1c0b18200 100644 (file)
@@ -84,7 +84,8 @@ gf104_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gf100_grctx_generate_unkn,
        .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,
        .tpc   = gf104_grctx_pack_tpc,
        .icmd  = gf100_grctx_pack_icmd,
index 369d64f867c7a7a8bf5400a9a8f049f9a4848d9c..dda2c32e623244600644a0d7eb3a0a1369f5eee3 100644 (file)
@@ -667,12 +667,17 @@ gf108_grctx_init_gpm_0[] = {
 };
 
 static const struct gf100_gr_pack
-gf108_grctx_pack_gpc[] = {
+gf108_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf100_grctx_init_prop_0 },
        { gf100_grctx_init_gpc_unk_1 },
        { gf108_grctx_init_setup_0 },
        { gf100_grctx_init_zcull_0 },
+       {}
+};
+
+static const struct gf100_gr_pack
+gf108_grctx_pack_gpc_1[] = {
        { gf100_grctx_init_crstr_0 },
        { gf108_grctx_init_gpm_0 },
        { gf100_grctx_init_gcc_0 },
@@ -780,7 +785,8 @@ gf108_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gf108_grctx_generate_unkn,
        .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,
        .tpc   = gf108_grctx_pack_tpc,
        .icmd  = gf108_grctx_pack_icmd,
index d59c2480f04d3294185e9364e4e5323a55ced317..f5cca5e6a4f24c5325947342ea0a2385e81b6f48 100644 (file)
@@ -314,15 +314,12 @@ gf110_grctx_init_setup_0[] = {
 };
 
 static const struct gf100_gr_pack
-gf110_grctx_pack_gpc[] = {
+gf110_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf100_grctx_init_prop_0 },
        { gf100_grctx_init_gpc_unk_1 },
        { gf110_grctx_init_setup_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 = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gf100_grctx_generate_unkn,
        .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,
        .tpc   = gf100_grctx_pack_tpc,
        .icmd  = gf110_grctx_pack_icmd,
index bc4e86bbb9d47ca727230954df3fb2161702baab..276c282d19aa689ad36ab8e3078495320bfbd2dc 100644 (file)
@@ -84,12 +84,17 @@ gf117_grctx_init_setup_0[] = {
 };
 
 static const struct gf100_gr_pack
-gf117_grctx_pack_gpc[] = {
+gf117_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf119_grctx_init_prop_0 },
        { gf119_grctx_init_gpc_unk_1 },
        { gf117_grctx_init_setup_0 },
        { gf100_grctx_init_zcull_0 },
+       {}
+};
+
+const struct gf100_gr_pack
+gf117_grctx_pack_gpc_1[] = {
        { gf119_grctx_init_crstr_0 },
        { gf108_grctx_init_gpm_0 },
        { gf100_grctx_init_gcc_0 },
@@ -278,7 +283,8 @@ gf117_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
        .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,
        .tpc   = gf117_grctx_pack_tpc,
        .ppc   = gf117_grctx_pack_ppc,
index cc1a9354fecc6d85bf2e5715bd515957697aed13..0cfe46366af60396ce1caacea11e57d63882ddfd 100644 (file)
@@ -431,15 +431,12 @@ gf119_grctx_init_crstr_0[] = {
 };
 
 static const struct gf100_gr_pack
-gf119_grctx_pack_gpc[] = {
+gf119_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf119_grctx_init_prop_0 },
        { gf119_grctx_init_gpc_unk_1 },
        { gf119_grctx_init_setup_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 = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gf108_grctx_generate_unkn,
        .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,
        .tpc   = gf119_grctx_pack_tpc,
        .icmd  = gf119_grctx_pack_icmd,
index bdf2a1e6d3b6ae454038bc21794613243f0ad139..304e9d268bad42e8a8be6831bb80cc78f5f6caad 100644 (file)
@@ -739,13 +739,18 @@ gk104_grctx_init_gpm_0[] = {
        {}
 };
 
-const struct gf100_gr_pack
-gk104_grctx_pack_gpc[] = {
+static const struct gf100_gr_pack
+gk104_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf119_grctx_init_prop_0 },
        { gf119_grctx_init_gpc_unk_1 },
        { gk104_grctx_init_setup_0 },
        { gf100_grctx_init_zcull_0 },
+       {}
+};
+
+static const struct gf100_gr_pack
+gk104_grctx_pack_gpc_1[] = {
        { gf119_grctx_init_crstr_0 },
        { gk104_grctx_init_gpm_0 },
        { gf100_grctx_init_gcc_0 },
@@ -973,7 +978,8 @@ gk104_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
        .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,
        .tpc   = gk104_grctx_pack_tpc,
        .ppc   = gk104_grctx_pack_ppc,
index 2ba35d727dc1db8f5c9a6871b30db75a3d476602..86547cfc38dce6583efd79205c543fae6385096b 100644 (file)
@@ -704,12 +704,17 @@ gk110_grctx_init_gpc_unk_2[] = {
 };
 
 const struct gf100_gr_pack
-gk110_grctx_pack_gpc[] = {
+gk110_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gf119_grctx_init_prop_0 },
        { gf119_grctx_init_gpc_unk_1 },
        { gk110_grctx_init_setup_0 },
        { gf100_grctx_init_zcull_0 },
+       {}
+};
+
+const struct gf100_gr_pack
+gk110_grctx_pack_gpc_1[] = {
        { gf119_grctx_init_crstr_0 },
        { gk104_grctx_init_gpm_0 },
        { gk110_grctx_init_gpc_unk_2 },
@@ -820,7 +825,8 @@ gk110_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
        .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,
        .tpc   = gk110_grctx_pack_tpc,
        .ppc   = gk110_grctx_pack_ppc,
index 1112f8dc70e2c2678d08deed6433ad06ce2d5dba..ebb947bd1446bfda0c9574ef98f40fd0cc483a2c 100644 (file)
@@ -74,7 +74,8 @@ gk110b_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
        .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,
        .tpc   = gk110b_grctx_pack_tpc,
        .ppc   = gk110_grctx_pack_ppc,
index 613c5cf8b3bf7d7cf3d231c7b254a6c8dc0771da..4d40512b5c998588b532f14c708210640e0e1eda 100644 (file)
@@ -443,12 +443,17 @@ gk208_grctx_init_gpm_0[] = {
 };
 
 static const struct gf100_gr_pack
-gk208_grctx_pack_gpc[] = {
+gk208_grctx_pack_gpc_0[] = {
        { gf100_grctx_init_gpc_unk_0 },
        { gk208_grctx_init_prop_0 },
        { gk208_grctx_init_gpc_unk_1 },
        { gk208_grctx_init_setup_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_gpm_0 },
        { gk110_grctx_init_gpc_unk_2 },
@@ -535,7 +540,8 @@ gk208_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
        .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,
        .tpc   = gk208_grctx_pack_tpc,
        .ppc   = gk208_grctx_pack_ppc,
index 7816dcb7c9743a8f479243aa0846de4f2cf375ca..0b3964e6b36e2b773e715f33ffd4cb5272161e63 100644 (file)
@@ -744,12 +744,17 @@ gm107_grctx_init_gpc_unk_2[] = {
 };
 
 static const struct gf100_gr_pack
-gm107_grctx_pack_gpc[] = {
+gm107_grctx_pack_gpc_0[] = {
        { gm107_grctx_init_gpc_unk_0 },
        { gk208_grctx_init_prop_0 },
        { gm107_grctx_init_gpc_unk_1 },
        { gm107_grctx_init_setup_0 },
        { gf100_grctx_init_zcull_0 },
+       {}
+};
+
+static const struct gf100_gr_pack
+gm107_grctx_pack_gpc_1[] = {
        { gk208_grctx_init_crstr_0 },
        { gk104_grctx_init_gpm_0 },
        { gm107_grctx_init_gpc_unk_2 },
@@ -960,7 +965,8 @@ gm107_grctx = {
        .main  = gf100_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
        .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,
        .tpc   = gm107_grctx_pack_tpc,
        .ppc   = gm107_grctx_pack_ppc,
index b2070c87c91ce28c05969c747377b789df5c60a1..69418619dc79c1c996323a8f67242eb78395d68d 100644 (file)
@@ -1612,7 +1612,8 @@ gf100_gr_init_ctxctl_int(struct gf100_gr *gr)
 
        /* load register lists */
        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->ppc, 0x41a000, 0x008, 0x41be00);
 
index 55dedd87fc38001d8338905d5deb27bb12fd270d..9e608dff28462fb22ff19144721a84a679c1f0df 100644 (file)
@@ -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 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_pe_0[];
 extern const struct gf100_gr_init gk104_gr_init_be_0[];
index cce250a85ba6053f7594165a5f1e06cd781d1586..9abacb218361822bb7521b278d24379d3af03f36 100644 (file)
@@ -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
 gk104_gr_init_tpccs_0[] = {
        { 0x419d0c,   1, 0x04, 0x00000000 },
@@ -160,6 +166,7 @@ gk104_gr_pack_mmio[] = {
        { gf119_gr_init_gpm_0 },
        { gk104_gr_init_gpc_unk_1 },
        { gf100_gr_init_gcc_0 },
+       { gk104_gr_init_gpc_unk_2 },
        { gk104_gr_init_tpccs_0 },
        { gf119_gr_init_tex_0 },
        { gk104_gr_init_pe_0 },
index 558b497692abe9f7b312680cdf5b6c938e3a031c..dba70d50bb8e641e1b08f8b92dc61d512d87d6c6 100644 (file)
@@ -143,6 +143,7 @@ gk110_gr_pack_mmio[] = {
        { gf119_gr_init_gpm_0 },
        { gk110_gr_init_gpc_unk_1 },
        { gf100_gr_init_gcc_0 },
+       { gk104_gr_init_gpc_unk_2 },
        { gk104_gr_init_tpccs_0 },
        { gk110_gr_init_tex_0 },
        { gk104_gr_init_pe_0 },
index c8c48a26f4355c5a4484939d0cafa2a3f7801e2f..48bc8d85dbb84e7a690f91e888c58837a03f6088 100644 (file)
@@ -82,6 +82,7 @@ gk110b_gr_pack_mmio[] = {
        { gf119_gr_init_gpm_0 },
        { gk110_gr_init_gpc_unk_1 },
        { gf100_gr_init_gcc_0 },
+       { gk104_gr_init_gpc_unk_2 },
        { gk104_gr_init_tpccs_0 },
        { gk110_gr_init_tex_0 },
        { gk104_gr_init_pe_0 },
index 477a7dea79f5f8ca5ff823c7789fce1270e83f42..7f45b122dcb0f06386e39a76563783c57ac38c23 100644 (file)
@@ -121,6 +121,7 @@ gk208_gr_pack_mmio[] = {
        { gf119_gr_init_gpm_0 },
        { gk110_gr_init_gpc_unk_1 },
        { gf100_gr_init_gcc_0 },
+       { gk104_gr_init_gpc_unk_2 },
        { gk104_gr_init_tpccs_0 },
        { gk208_gr_init_tex_0 },
        { gk104_gr_init_pe_0 },
index a6937f8c3cfdf457593ef28a1ec1d086f200ee71..f5411aff0e44f66300a72e957d0b2e7c20e0ef22 100644 (file)
 
 static const struct gf100_gr_init
 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 },
        { 0x400088,   1, 0x04, 0x0001bfe7 },
        { 0x40008c,   1, 0x04, 0x00060000 },
@@ -212,14 +216,13 @@ gm107_gr_init_cbm_0[] = {
 static const struct gf100_gr_init
 gm107_gr_init_be_0[] = {
        { 0x408890,   1, 0x04, 0x000000ff },
-       { 0x40880c,   1, 0x04, 0x00000000 },
        { 0x408850,   1, 0x04, 0x00000004 },
        { 0x408878,   1, 0x04, 0x00c81603 },
        { 0x40887c,   1, 0x04, 0x80543432 },
        { 0x408880,   1, 0x04, 0x0010581e },
        { 0x408884,   1, 0x04, 0x00001205 },
        { 0x408974,   1, 0x04, 0x000000ff },
-       { 0x408910,   9, 0x04, 0x00000000 },
+       { 0x408914,   8, 0x04, 0x00000000 },
        { 0x408950,   1, 0x04, 0x00000000 },
        { 0x408954,   1, 0x04, 0x0000ffff },
        { 0x408958,   1, 0x04, 0x00000034 },
@@ -229,7 +232,6 @@ gm107_gr_init_be_0[] = {
        { 0x408968,   1, 0x04, 0x02808833 },
        { 0x40896c,   1, 0x04, 0x01f02438 },
        { 0x408970,   1, 0x04, 0x00012c00 },
-       { 0x408984,   1, 0x04, 0x00000000 },
        { 0x408988,   1, 0x04, 0x08040201 },
        { 0x40898c,   1, 0x04, 0x80402010 },
        {}
@@ -262,6 +264,7 @@ gm107_gr_pack_mmio[] = {
        { gf100_gr_init_gpm_0 },
        { gm107_gr_init_gpc_unk_1 },
        { gf100_gr_init_gcc_0 },
+       { gk104_gr_init_gpc_unk_2 },
        { gm107_gr_init_tpccs_0 },
        { gm107_gr_init_tex_0 },
        { gm107_gr_init_pe_0 },