From 1543e317f1da31b75942316931e8f491a8920811 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 04 Jan 2024 10:08:02 +0000
Subject: [PATCH] disable FB

---
 kernel/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/kernel/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c b/kernel/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c
index 23fb29d..e39d086 100644
--- a/kernel/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c
+++ b/kernel/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c
@@ -22,17 +22,29 @@
 #include "curs.h"
 #include "atom.h"
 
-static void
+#include <nvhw/class/clc37a.h>
+
+static int
 cursc37a_update(struct nv50_wndw *wndw, u32 *interlock)
 {
-	nvif_wr32(&wndw->wimm.base.user, 0x0200, 0x00000001);
+	struct nvif_object *user = &wndw->wimm.base.user;
+	int ret = nvif_chan_wait(&wndw->wimm, 1);
+	if (ret == 0)
+		NVIF_WR32(user, NVC37A, UPDATE, 0x00000001);
+	return ret;
 }
 
-static void
+static int
 cursc37a_point(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
 {
-	nvif_wr32(&wndw->wimm.base.user, 0x0208, asyw->point.y << 16 |
-						 asyw->point.x);
+	struct nvif_object *user = &wndw->wimm.base.user;
+	int ret = nvif_chan_wait(&wndw->wimm, 1);
+	if (ret == 0) {
+		NVIF_WR32(user, NVC37A, SET_CURSOR_HOT_SPOT_POINT_OUT(0),
+			  NVVAL(NVC37A, SET_CURSOR_HOT_SPOT_POINT_OUT, X, asyw->point.x) |
+			  NVVAL(NVC37A, SET_CURSOR_HOT_SPOT_POINT_OUT, Y, asyw->point.y));
+	}
+	return ret;
 }
 
 static const struct nv50_wimm_func

--
Gitblit v1.6.2