mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 17:11:33 +00:00
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: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
21454fe697
commit
dd67cab5db
@ -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)
|
|||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user