drm/nouveau/kms/nv50-: use NVIDIA's headers for wimm point()
[linux-2.6-microblaze.git] / drivers / gpu / drm / nouveau / dispnv50 / wimmc37b.c
index f7dbd96..d013f89 100644 (file)
 #include "wndw.h"
 
 #include <nvif/clc37b.h>
+#include <nvif/pushc37b.h>
 
-static void
+#include <nvhw/class/clc37b.h>
+
+static int
 wimmc37b_update(struct nv50_wndw *wndw, u32 *interlock)
 {
-       u32 *push;
-       if ((push = evo_wait(&wndw->wimm, 2))) {
-               evo_mthd(push, 0x0200, 1);
-               if (interlock[NV50_DISP_INTERLOCK_WNDW] & wndw->interlock.data)
-                       evo_data(push, 0x00000003);
-               else
-                       evo_data(push, 0x00000001);
-               evo_kick(push, &wndw->wimm);
-       }
+       struct nvif_push *push = wndw->wimm.push;
+       int ret;
+
+       if ((ret = PUSH_WAIT(push, 2)))
+               return ret;
+
+       PUSH_NVSQ(push, NVC37B, 0x0200, ((interlock[NV50_DISP_INTERLOCK_WNDW] &
+                                         wndw->interlock.data) ? 0x00000002 : 0x00000000) |
+                                       0x00000001);
+       return PUSH_KICK(push);
 }
 
-static void
+static int
 wimmc37b_point(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
 {
-       u32 *push;
-       if ((push = evo_wait(&wndw->wimm, 2))) {
-               evo_mthd(push, 0x0208, 1);
-               evo_data(push, asyw->point.y << 16 | asyw->point.x);
-               evo_kick(push, &wndw->wimm);
-       }
+       struct nvif_push *push = wndw->wimm.push;
+       int ret;
+
+       if ((ret = PUSH_WAIT(push, 2)))
+               return ret;
+
+       PUSH_MTHD(push, NVC37B, SET_POINT_OUT(0),
+                 NVVAL(NVC37B, SET_POINT_OUT, X, asyw->point.x) |
+                 NVVAL(NVC37B, SET_POINT_OUT, Y, asyw->point.y));
+       return 0;
 }
 
 static const struct nv50_wimm_func