Commit 7092a8dd authored by Ben Skeggs's avatar Ben Skeggs

drm/nve0/grctx: initial attempt at unhardcoding yet more magic

Not sure about the (gpc_nr == 1) condition, it's probably wrong but for
all the examples I've seen so far it matches what NVIDIA end up poking.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent ba366c25
...@@ -2772,10 +2772,15 @@ nve0_grctx_generate(struct nvc0_graph_priv *priv) ...@@ -2772,10 +2772,15 @@ nve0_grctx_generate(struct nvc0_graph_priv *priv)
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
nv_wr32(priv, 0x4064d0 + (i * 0x04), 0x00000000); nv_wr32(priv, 0x4064d0 + (i * 0x04), 0x00000000);
nv_wr32(priv, 0x405b00, 0x201); nv_wr32(priv, 0x405b00, (priv->tpc_total << 8) | priv->gpc_nr);
nv_wr32(priv, 0x408850, 0x2); if (priv->gpc_nr == 1) {
nv_wr32(priv, 0x408958, 0x2); nv_mask(priv, 0x408850, 0x0000000f, priv->tpc_nr[0]);
nv_wr32(priv, 0x419f78, 0xa); nv_mask(priv, 0x408958, 0x0000000f, priv->tpc_nr[0]);
} else {
nv_mask(priv, 0x408850, 0x0000000f, priv->gpc_nr);
nv_mask(priv, 0x408958, 0x0000000f, priv->gpc_nr);
}
nv_mask(priv, 0x419f78, 0x00000001, 0x00000000);
nve0_grctx_generate_icmd(priv); nve0_grctx_generate_icmd(priv);
nve0_grctx_generate_a097(priv); nve0_grctx_generate_a097(priv);
......
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