drm/nvc0-/gr: tpc regs a subset of gpc, add separate list for gpc/unk regs
authorBen Skeggs <bskeggs@redhat.com>
Mon, 1 Jul 2013 04:48:33 +0000 (14:48 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 5 Jul 2013 03:43:06 +0000 (13:43 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc1.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc3.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc8.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd9.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c
drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h

index 087295db970735dfd80b835a66fa6ea7475767f5..34ed87f1ff16bbd7dda0a1852bafac18782997b0 100644 (file)
@@ -1047,11 +1047,10 @@ nvc0_grctx_generate_main(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
 
        nv_mask(priv, 0x000260, 0x00000001, 0x00000000);
 
-       for (i = 0; oclass->mmio[i]; i++)
-               nvc0_graph_mmio(priv, oclass->mmio[i]);
+       for (i = 0; oclass->hub[i]; i++)
+               nvc0_graph_mmio(priv, oclass->hub[i]);
        for (i = 0; oclass->gpc[i]; i++)
                nvc0_graph_mmio(priv, oclass->gpc[i]);
-       nvc0_graph_mmio(priv, oclass->tpc);
 
        nv_wr32(priv, 0x404154, 0x00000000);
 
@@ -1179,7 +1178,7 @@ done:
 }
 
 struct nvc0_graph_init *
-nvc0_grctx_init_mmio[] = {
+nvc0_grctx_init_hub[] = {
        nvc0_grctx_init_base,
        nvc0_grctx_init_unk40xx,
        nvc0_grctx_init_unk44xx,
@@ -1194,10 +1193,11 @@ nvc0_grctx_init_mmio[] = {
        NULL
 };
 
-struct nvc0_graph_init *
+static struct nvc0_graph_init *
 nvc0_grctx_init_gpc[] = {
        nvc0_grctx_init_gpc_0,
        nvc0_grctx_init_gpc_1,
+       nvc0_grctx_init_tpc,
        NULL
 };
 
@@ -1230,9 +1230,8 @@ nvc0_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nvc0_grctx_generate_main,
        .mods = nvc0_grctx_generate_mods,
-       .mmio = nvc0_grctx_init_mmio,
+       .hub  = nvc0_grctx_init_hub,
        .gpc  = nvc0_grctx_init_gpc,
-       .tpc  = nvc0_grctx_init_tpc,
        .icmd = nvc0_grctx_init_icmd,
        .mthd = nvc0_grctx_init_mthd,
 }.base;
index 09e17f9eb5087c80a6bbdbcb6b54607c4c6f3ac4..b60dffab224f1ffadc9b8b0540b0e3e4b8de314d 100644 (file)
@@ -757,7 +757,7 @@ nvc1_grctx_generate_mods(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
 }
 
 static struct nvc0_graph_init *
-nvc1_grctx_init_mmio[] = {
+nvc1_grctx_init_hub[] = {
        nvc0_grctx_init_base,
        nvc0_grctx_init_unk40xx,
        nvc0_grctx_init_unk44xx,
@@ -776,6 +776,7 @@ struct nvc0_graph_init *
 nvc1_grctx_init_gpc[] = {
        nvc1_grctx_init_gpc_0,
        nvc0_grctx_init_gpc_1,
+       nvc1_grctx_init_tpc,
        NULL
 };
 
@@ -803,9 +804,8 @@ nvc1_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nvc0_grctx_generate_main,
        .mods = nvc1_grctx_generate_mods,
-       .mmio = nvc1_grctx_init_mmio,
+       .hub  = nvc1_grctx_init_hub,
        .gpc  = nvc1_grctx_init_gpc,
-       .tpc  = nvc1_grctx_init_tpc,
        .icmd = nvc1_grctx_init_icmd,
        .mthd = nvc1_grctx_init_mthd,
 }.base;
index 88eceefcd30d6d9b45a49723b4d8f59520880a18..56fa54719d2e52ad5b7657f95b816469186e5b10 100644 (file)
@@ -70,6 +70,14 @@ nvc3_grctx_init_tpc[] = {
        {}
 };
 
+struct nvc0_graph_init *
+nvc3_grctx_init_gpc[] = {
+       nvc0_grctx_init_gpc_0,
+       nvc0_grctx_init_gpc_1,
+       nvc3_grctx_init_tpc,
+       NULL
+};
+
 struct nouveau_oclass *
 nvc3_grctx_oclass = &(struct nvc0_grctx_oclass) {
        .base.handle = NV_ENGCTX(GR, 0xc3),
@@ -83,9 +91,8 @@ nvc3_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nvc0_grctx_generate_main,
        .mods = nvc0_grctx_generate_mods,
-       .mmio = nvc0_grctx_init_mmio,
-       .gpc  = nvc0_grctx_init_gpc,
-       .tpc  = nvc3_grctx_init_tpc,
+       .hub  = nvc0_grctx_init_hub,
+       .gpc  = nvc3_grctx_init_gpc,
        .icmd = nvc0_grctx_init_icmd,
        .mthd = nvc0_grctx_init_mthd,
 }.base;
index aa766813699b69f326969b6f647e06866ff711ac..2ba8ea81a63a2c9a22c1679c9d91cd3ee37ea6df 100644 (file)
@@ -341,6 +341,14 @@ nvc8_grctx_init_mthd[] = {
        {}
 };
 
+static struct nvc0_graph_init *
+nvc8_grctx_init_gpc[] = {
+       nvc0_grctx_init_gpc_0,
+       nvc0_grctx_init_gpc_1,
+       nvc8_grctx_init_tpc,
+       NULL
+};
+
 struct nouveau_oclass *
 nvc8_grctx_oclass = &(struct nvc0_grctx_oclass) {
        .base.handle = NV_ENGCTX(GR, 0xc8),
@@ -354,9 +362,8 @@ nvc8_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nvc0_grctx_generate_main,
        .mods = nvc0_grctx_generate_mods,
-       .mmio = nvc0_grctx_init_mmio,
-       .gpc  = nvc0_grctx_init_gpc,
-       .tpc  = nvc8_grctx_init_tpc,
+       .hub  = nvc0_grctx_init_hub,
+       .gpc  = nvc8_grctx_init_gpc,
        .icmd = nvc8_grctx_init_icmd,
        .mthd = nvc8_grctx_init_mthd,
 }.base;
index e4f1a8c6f68c8e4b382dd3cb3f4590f2a38674cd..e4eb91670ef234fbdb1a75caaa80d60d52034715 100644 (file)
@@ -454,7 +454,7 @@ nvd9_grctx_init_tpc[] = {
 };
 
 static struct nvc0_graph_init *
-nvd9_grctx_init_mmio[] = {
+nvd9_grctx_init_hub[] = {
        nvc0_grctx_init_base,
        nvd9_grctx_init_unk40xx,
        nvc0_grctx_init_unk44xx,
@@ -472,6 +472,7 @@ struct nvc0_graph_init *
 nvd9_grctx_init_gpc[] = {
        nvd9_grctx_init_gpc_0,
        nvc0_grctx_init_gpc_1,
+       nvd9_grctx_init_tpc,
        NULL
 };
 
@@ -506,9 +507,8 @@ nvd9_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nvc0_grctx_generate_main,
        .mods = nvc1_grctx_generate_mods,
-       .mmio = nvd9_grctx_init_mmio,
+       .hub  = nvd9_grctx_init_hub,
        .gpc  = nvd9_grctx_init_gpc,
-       .tpc  = nvd9_grctx_init_tpc,
        .icmd = nvd9_grctx_init_icmd,
        .mthd = nvd9_grctx_init_mthd,
 }.base;
index 1c68fb11b889393c35dec47bde6605c7f01d0c5c..51fb2687b570d3f16e793cb8dd0d98977f6fde1d 100644 (file)
@@ -783,7 +783,11 @@ nve4_grctx_init_tpc[] = {
        { 0x419f70,   1, 0x04, 0x00000000 },
        { 0x419f78,   1, 0x04, 0x0000000b },
        { 0x419f7c,   1, 0x04, 0x0000027a },
+       {}
+};
 
+static struct nvc0_graph_init
+nve4_grctx_init_unk[] = {
        { 0x41be24,   1, 0x04, 0x00000006 },
        { 0x41bec0,   1, 0x04, 0x12180000 },
        { 0x41bec4,   1, 0x04, 0x00037f7f },
@@ -797,7 +801,6 @@ nve4_grctx_init_tpc[] = {
        { 0x41bfd0,   1, 0x04, 0x00900103 },
        { 0x41bfe0,   1, 0x04, 0x00400001 },
        { 0x41bfe4,   1, 0x04, 0x00000000 },
-
        {}
 };
 
@@ -911,11 +914,10 @@ nve4_grctx_generate_main(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
 
        nv_mask(priv, 0x000260, 0x00000001, 0x00000000);
 
-       for (i = 0; oclass->mmio[i]; i++)
-               nvc0_graph_mmio(priv, oclass->mmio[i]);
+       for (i = 0; oclass->hub[i]; i++)
+               nvc0_graph_mmio(priv, oclass->hub[i]);
        for (i = 0; oclass->gpc[i]; i++)
                nvc0_graph_mmio(priv, oclass->gpc[i]);
-       nvc0_graph_mmio(priv, oclass->tpc);
 
        nv_wr32(priv, 0x404154, 0x00000000);
 
@@ -964,7 +966,7 @@ nve4_grctx_generate_main(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
 }
 
 static struct nvc0_graph_init *
-nve4_grctx_init_mmio[] = {
+nve4_grctx_init_hub[] = {
        nvc0_grctx_init_base,
        nve4_grctx_init_unk40xx,
        nvc0_grctx_init_unk44xx,
@@ -985,6 +987,8 @@ struct nvc0_graph_init *
 nve4_grctx_init_gpc[] = {
        nve4_grctx_init_gpc_0,
        nvc0_grctx_init_gpc_1,
+       nve4_grctx_init_tpc,
+       nve4_grctx_init_unk,
        NULL
 };
 
@@ -1009,9 +1013,8 @@ nve4_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nve4_grctx_generate_main,
        .mods = nve4_grctx_generate_mods,
-       .mmio = nve4_grctx_init_mmio,
+       .hub  = nve4_grctx_init_hub,
        .gpc  = nve4_grctx_init_gpc,
-       .tpc  = nve4_grctx_init_tpc,
        .icmd = nve4_grctx_init_icmd,
        .mthd = nve4_grctx_init_mthd,
 }.base;
index a692389cd9cfdf95fe8a0b11df0dd0b2f3f23387..c41a6f07e958ff6d79b6eecc46c3e6d4c9341492 100644 (file)
@@ -200,7 +200,11 @@ nvf0_grctx_init_tpc[] = {
        { 0x419f70,   1, 0x04, 0x00007300 },
        { 0x419f78,   1, 0x04, 0x000000eb },
        { 0x419f7c,   1, 0x04, 0x00000404 },
+       {}
+};
 
+static struct nvc0_graph_init
+nvf0_grctx_init_unk[] = {
        { 0x41be24,   1, 0x04, 0x00000006 },
        { 0x41bec0,   1, 0x04, 0x10000000 },
        { 0x41bec4,   1, 0x04, 0x00037f7f },
@@ -214,12 +218,11 @@ nvf0_grctx_init_tpc[] = {
        { 0x41bfd0,   1, 0x04, 0x00900103 },
        { 0x41bfe0,   1, 0x04, 0x00400001 },
        { 0x41bfe4,   1, 0x04, 0x00000000 },
-
        {}
 };
 
 static struct nvc0_graph_init *
-nvf0_grctx_init_mmio[] = {
+nvf0_grctx_init_hub[] = {
        nvc0_grctx_init_base,
        nvf0_grctx_init_unk40xx,
        nvf0_grctx_init_unk44xx,
@@ -239,6 +242,8 @@ struct nvc0_graph_init *
 nvf0_grctx_init_gpc[] = {
        nvf0_grctx_init_gpc_0,
        nvc0_grctx_init_gpc_1,
+       nvf0_grctx_init_tpc,
+       nvf0_grctx_init_unk,
        NULL
 };
 
@@ -263,9 +268,8 @@ nvf0_grctx_oclass = &(struct nvc0_grctx_oclass) {
        },
        .main = nve4_grctx_generate_main,
        .mods = nve4_grctx_generate_mods,
-       .mmio = nvf0_grctx_init_mmio,
+       .hub  = nvf0_grctx_init_hub,
        .gpc  = nvf0_grctx_init_gpc,
-       .tpc  = nvf0_grctx_init_tpc,
        .icmd = nvc0_grctx_init_icmd,
        .mthd = nvf0_grctx_init_mthd,
 }.base;
index 52d70ba5ffb5e438784ddd34db94cc40c0b943b4..f8d653b11ad7e1f4a3bfe1aeb74e694f0441079e 100644 (file)
@@ -151,9 +151,8 @@ struct nvc0_grctx_oclass {
        /* context-specific modify-on-first-load list generation function */
        void  (*mods)(struct nvc0_graph_priv *, struct nvc0_grctx *);
        /* mmio context data */
-       struct nvc0_graph_init **mmio;
+       struct nvc0_graph_init **hub;
        struct nvc0_graph_init **gpc;
-       struct nvc0_graph_init *tpc;
        /* indirect context data, generated with icmds/mthds */
        struct nvc0_graph_init *icmd;
        struct nvc0_graph_mthd *mthd;
@@ -213,7 +212,7 @@ void nvc0_grctx_generate_r418bb8(struct nvc0_graph_priv *);
 void nvc0_grctx_generate_r406800(struct nvc0_graph_priv *);
 
 extern struct nouveau_oclass *nvc0_grctx_oclass;
-extern struct nvc0_graph_init *nvc0_grctx_init_mmio[];
+extern struct nvc0_graph_init *nvc0_grctx_init_hub[];
 extern struct nvc0_graph_init nvc0_grctx_init_base[];
 extern struct nvc0_graph_init nvc0_grctx_init_unk40xx[];
 extern struct nvc0_graph_init nvc0_grctx_init_unk44xx[];
@@ -225,7 +224,6 @@ extern struct nvc0_graph_init nvc0_grctx_init_unk78xx[];
 extern struct nvc0_graph_init nvc0_grctx_init_unk80xx[];
 extern struct nvc0_graph_init nvc0_grctx_init_gpc_0[];
 extern struct nvc0_graph_init nvc0_grctx_init_gpc_1[];
-extern struct nvc0_graph_init *nvc0_grctx_init_gpc[];
 extern struct nvc0_graph_init nvc0_grctx_init_tpc[];
 extern struct nvc0_graph_init nvc0_grctx_init_icmd[];
 extern struct nvc0_graph_init nvd9_grctx_init_icmd[]; //