Commit dd67cab5 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/kms/nv50-: clear SW state of disabled windows harder

The most innocuous result of not having done this is that we end up
sending unnecessary methods when we next enable the window.

However, interactions with the code handling skipping disables when
an update immediately follows, and window ownership assignment, can
lead to upsetting the display hardware on Volta and newer.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 21454fe6
...@@ -192,6 +192,8 @@ nv50_wndw_atomic_check_release(struct nv50_wndw *wndw, ...@@ -192,6 +192,8 @@ nv50_wndw_atomic_check_release(struct nv50_wndw *wndw,
wndw->func->release(wndw, asyw, asyh); wndw->func->release(wndw, asyw, asyh);
asyw->ntfy.handle = 0; asyw->ntfy.handle = 0;
asyw->sema.handle = 0; asyw->sema.handle = 0;
asyw->xlut.handle = 0;
memset(asyw->image.handle, 0x00, sizeof(asyw->image.handle));
} }
static int static int
...@@ -519,7 +521,8 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) ...@@ -519,7 +521,8 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state)
return PTR_ERR(ctxdma); return PTR_ERR(ctxdma);
} }
asyw->image.handle[0] = ctxdma->object.handle; if (asyw->visible)
asyw->image.handle[0] = ctxdma->object.handle;
} }
asyw->state.fence = dma_resv_get_excl_rcu(nvbo->bo.base.resv); asyw->state.fence = dma_resv_get_excl_rcu(nvbo->bo.base.resv);
......
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