diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2018-05-08 20:39:47 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2018-05-18 15:01:29 +1000 |
commit | 53e0a3e70de69dc9f498d26c6b5495b2771ee374 (patch) | |
tree | dace6fc2c8adfe40459ddcaa6731a69842a1b665 /drivers/gpu/drm/nouveau/dispnv50/core507d.c | |
parent | 34508f9d260cbd7b91f988c858f50ad956750ee3 (diff) |
drm/nouveau/kms/nv50-: simplify tracking of channel interlocks
Instead of windows returning their core channel interlock mask if they
know core has been modified, it's recorded unconditionally and used if
required when update methods are emitted.
This will be required to support Volta.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/dispnv50/core507d.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/core507d.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv50/core507d.c b/drivers/gpu/drm/nouveau/dispnv50/core507d.c index 96d7d8fde669..e7fcfa6e6467 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/core507d.c +++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c @@ -27,7 +27,7 @@ #include "nouveau_bo.h" void -core507d_update(struct nv50_core *core, u32 interlock, bool ntfy) +core507d_update(struct nv50_core *core, u32 *interlock, bool ntfy) { u32 *push; if ((push = evo_wait(&core->chan, 5))) { @@ -36,7 +36,8 @@ core507d_update(struct nv50_core *core, u32 interlock, bool ntfy) evo_data(push, 0x80000000 | NV50_DISP_CORE_NTFY); } evo_mthd(push, 0x0080, 2); - evo_data(push, interlock); + evo_data(push, interlock[NV50_DISP_INTERLOCK_BASE] | + interlock[NV50_DISP_INTERLOCK_OVLY]); evo_data(push, 0x00000000); evo_kick(push, &core->chan); } |