diff --git a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c index 5e03b94848b4..54fbd6fe751d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c +++ b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c @@ -46,9 +46,12 @@ curs507a_space(struct nv50_wndw *wndw) static int curs507a_update(struct nv50_wndw *wndw, u32 *interlock) { + struct nvif_object *user = &wndw->wimm.base.user; int ret = nvif_chan_wait(&wndw->wimm, 1); - if (ret == 0) - nvif_wr32(&wndw->wimm.base.user, 0x0080, 0x00000000); + if (ret == 0) { + NVIF_WR32(user, NV507A, UPDATE, + NVDEF(NV507A, UPDATE, INTERLOCK_WITH_CORE, DISABLE)); + } return ret; } diff --git a/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c b/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c index 5bfb6f67c8c3..e39d08698c63 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c +++ b/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c @@ -27,9 +27,10 @@ static int cursc37a_update(struct nv50_wndw *wndw, u32 *interlock) { + struct nvif_object *user = &wndw->wimm.base.user; int ret = nvif_chan_wait(&wndw->wimm, 1); if (ret == 0) - nvif_wr32(&wndw->wimm.base.user, 0x0200, 0x00000001); + NVIF_WR32(user, NVC37A, UPDATE, 0x00000001); return ret; } diff --git a/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c b/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c index d013f89cc371..685b70871324 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c @@ -37,9 +37,9 @@ wimmc37b_update(struct nv50_wndw *wndw, u32 *interlock) if ((ret = PUSH_WAIT(push, 2))) return ret; - PUSH_NVSQ(push, NVC37B, 0x0200, ((interlock[NV50_DISP_INTERLOCK_WNDW] & - wndw->interlock.data) ? 0x00000002 : 0x00000000) | - 0x00000001); + PUSH_MTHD(push, NVC37B, UPDATE, 0x00000001 | + NVVAL(NVC37B, UPDATE, INTERLOCK_WITH_WINDOW, + !!(interlock[NV50_DISP_INTERLOCK_WNDW] & wndw->interlock.data))); return PUSH_KICK(push); }