aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-07-04 20:47:26 -0400
committerBen Skeggs <bskeggs@redhat.com>2013-07-04 23:45:04 -0400
commit5c5ae7157d78e59e062dd35fbe9dec4de852bec2 (patch)
treeb2466de57d3ce1c4d57fbc60abcbb2f24e88ac28
parentd196e16ebf8bc9489ee3dc41dc5dfd84a70cec18 (diff)
drm/nvc0-/gr: remove some more of the hardcoded register writes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c18
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c8
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c8
3 files changed, 6 insertions, 28 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
index b80723e7d49f..64dca260912f 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
@@ -929,11 +929,13 @@ nvc0_grctx_generate_tpcid(struct nvc0_graph_priv *priv)
929void 929void
930nvc0_grctx_generate_r406028(struct nvc0_graph_priv *priv) 930nvc0_grctx_generate_r406028(struct nvc0_graph_priv *priv)
931{ 931{
932 u32 tmp = 0, i; 932 u32 tmp[GPC_MAX / 8] = {}, i = 0;
933 for (i = 0; i < priv->gpc_nr; i++) 933 for (i = 0; i < priv->gpc_nr; i++)
934 tmp |= priv->tpc_nr[i] << (i * 4); 934 tmp[i / 8] |= priv->tpc_nr[i] << ((i % 8) * 4);
935 nv_wr32(priv, 0x406028, tmp); 935 for (i = 0; i < 4; i++) {
936 nv_wr32(priv, 0x405870, tmp); 936 nv_wr32(priv, 0x406028 + (i * 4), tmp[i]);
937 nv_wr32(priv, 0x405870 + (i * 4), tmp[i]);
938 }
937} 939}
938 940
939void 941void
@@ -1069,14 +1071,6 @@ nvc0_grctx_generate_main(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
1069 1071
1070 nvc0_grctx_generate_tpcid(priv); 1072 nvc0_grctx_generate_tpcid(priv);
1071 nvc0_grctx_generate_r406028(priv); 1073 nvc0_grctx_generate_r406028(priv);
1072
1073 nv_wr32(priv, 0x40602c, 0x00000000);
1074 nv_wr32(priv, 0x405874, 0x00000000);
1075 nv_wr32(priv, 0x406030, 0x00000000);
1076 nv_wr32(priv, 0x405878, 0x00000000);
1077 nv_wr32(priv, 0x406034, 0x00000000);
1078 nv_wr32(priv, 0x40587c, 0x00000000);
1079
1080 nvc0_grctx_generate_r4060a8(priv); 1074 nvc0_grctx_generate_r4060a8(priv);
1081 nvc0_grctx_generate_r418bb8(priv); 1075 nvc0_grctx_generate_r418bb8(priv);
1082 nvc0_grctx_generate_r406800(priv); 1076 nvc0_grctx_generate_r406800(priv);
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c
index 36fa4da66abb..438e78410808 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c
@@ -231,14 +231,6 @@ nvd7_grctx_generate_main(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
231 231
232 nvc0_grctx_generate_tpcid(priv); 232 nvc0_grctx_generate_tpcid(priv);
233 nvc0_grctx_generate_r406028(priv); 233 nvc0_grctx_generate_r406028(priv);
234
235 nv_wr32(priv, 0x40602c, 0x00000000);
236 nv_wr32(priv, 0x405874, 0x00000000);
237 nv_wr32(priv, 0x406030, 0x00000000);
238 nv_wr32(priv, 0x405878, 0x00000000);
239 nv_wr32(priv, 0x406034, 0x00000000);
240 nv_wr32(priv, 0x40587c, 0x00000000);
241
242 nvc0_grctx_generate_r4060a8(priv); 234 nvc0_grctx_generate_r4060a8(priv);
243 nve4_grctx_generate_r418bb8(priv); 235 nve4_grctx_generate_r418bb8(priv);
244 nvc0_grctx_generate_r406800(priv); 236 nvc0_grctx_generate_r406800(priv);
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c
index 0b72d7240b0b..e2de73ee5eee 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c
@@ -937,14 +937,6 @@ nve4_grctx_generate_main(struct nvc0_graph_priv *priv, struct nvc0_grctx *info)
937 937
938 nvc0_grctx_generate_tpcid(priv); 938 nvc0_grctx_generate_tpcid(priv);
939 nvc0_grctx_generate_r406028(priv); 939 nvc0_grctx_generate_r406028(priv);
940
941 nv_wr32(priv, 0x40602c, 0x00000000);
942 nv_wr32(priv, 0x405874, 0x00000000);
943 nv_wr32(priv, 0x406030, 0x00000000);
944 nv_wr32(priv, 0x405878, 0x00000000);
945 nv_wr32(priv, 0x406034, 0x00000000);
946 nv_wr32(priv, 0x40587c, 0x00000000);
947
948 nve4_grctx_generate_r418bb8(priv); 940 nve4_grctx_generate_r418bb8(priv);
949 nvc0_grctx_generate_r406800(priv); 941 nvc0_grctx_generate_r406800(priv);
950 942