drm/nouveau/kms/nv50-: use NVIDIA's headers for wndw update()
authorBen Skeggs <bskeggs@redhat.com>
Sat, 20 Jun 2020 05:53:59 +0000 (15:53 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 24 Jul 2020 08:51:00 +0000 (18:51 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
drivers/gpu/drm/nouveau/dispnv50/base507c.c
drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c

index db811751800aa5095231f44c949e034af12c8556..302d4e6fc52f1a0bd2e90121818c15aa7b48f10e 100644 (file)
@@ -43,7 +43,7 @@ base507c_update(struct nv50_wndw *wndw, u32 *interlock)
        if ((ret = PUSH_WAIT(push, 2)))
                return ret;
 
-       PUSH_NVSQ(push, NV507C, 0x0080, interlock[NV50_DISP_INTERLOCK_CORE]);
+       PUSH_MTHD(push, NV507C, UPDATE, interlock[NV50_DISP_INTERLOCK_CORE]);
        return PUSH_KICK(push);
 }
 
index 8dd1e89f4725f29e827912f5c6beb36da4ca8fdd..57df997c5ff38d249e8d9674c217920acb5f145c 100644 (file)
@@ -279,12 +279,14 @@ wndwc37e_update(struct nv50_wndw *wndw, u32 *interlock)
        if ((ret = PUSH_WAIT(push, 5)))
                return ret;
 
-       PUSH_NVSQ(push, NVC37E, 0x0370,  interlock[NV50_DISP_INTERLOCK_CURS] << 1 |
-                                        interlock[NV50_DISP_INTERLOCK_CORE],
-                               0x0374,  interlock[NV50_DISP_INTERLOCK_WNDW]);
-       PUSH_NVSQ(push, NVC37E, 0x0200,((interlock[NV50_DISP_INTERLOCK_WIMM] &
-                                        wndw->interlock.data) ? 0x00001000 : 0x00000000) |
-                                        0x00000001);
+       PUSH_MTHD(push, NVC37E, SET_INTERLOCK_FLAGS, interlock[NV50_DISP_INTERLOCK_CURS] << 1 |
+                                                    interlock[NV50_DISP_INTERLOCK_CORE],
+                               SET_WINDOW_INTERLOCK_FLAGS, interlock[NV50_DISP_INTERLOCK_WNDW]);
+
+       PUSH_MTHD(push, NVC37E, UPDATE, 0x00000001 |
+                 NVVAL(NVC37E, UPDATE, INTERLOCK_WITH_WIN_IMM,
+                         !!(interlock[NV50_DISP_INTERLOCK_WIMM] & wndw->interlock.data)));
+
        return PUSH_KICK(push);
 }