CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2020-01-22 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Wed Jan 22 11:38:54 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_gk104.c

Log Message:
Write pbdma timeout regs during initialisation on GK208B, GK208, and GM107.

Based on the following upstream commit:
https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3	Mon Aug 27 07:40:11 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c	Wed Jan 22 11:38:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $");
 
 #include "gk104.h"
 #include "changk104.h"
@@ -752,6 +752,20 @@ gk104_fifo_init(struct nvkm_fifo *base)
 
 	nvkm_wr32(device, 0x002254, 0x1000 | fifo->user.bar.offset >> 12);
 
+	/* XXX NetBSD
+	 * write pbdma timeout regs during initialization
+	 * backport of:
+	 * https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2
+	 */
+	switch (device->chipset) {
+	case 0x106:	/* GK208B */
+	case 0x108:	/* GK208 */
+	case 0x117:	/* GM107 */
+		for (i = 0; i < fifo->spoon_nr; i++)
+			nvkm_wr32(device, 0x04012c + (i * 0x2000), 0x);
+		break;
+	}
+
 	nvkm_wr32(device, 0x002100, 0x);
 	nvkm_wr32(device, 0x002140, 0x7fff);
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2018-09-08 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Sun Sep  9 03:12:51 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c

Log Message:
Yet another diagused


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.8	Mon Aug 27 14:54:33 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c	Sun Sep  9 03:12:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.8 2018/08/27 14:54:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.9 2018/09/09 03:12:51 pgoyette Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.8 2018/08/27 14:54:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.9 2018/09/09 03:12:51 pgoyette Exp $");
 
 #include "chan.h"
 
@@ -480,7 +480,8 @@ nvkm_fifo_chan_ctor(const struct nvkm_fi
 		bus_space_tag_t mmiot = device->mmiot;
 		bus_space_handle_t mmioh = device->mmioh;
 		bus_size_t mmiosz = device->mmiosz;
-		bus_addr_t mmioaddr = device->func->resource_addr(device, bar);
+		__diagused bus_addr_t mmioaddr =
+		device->func->resource_addr(device, bar);
 
 		/* Check whether it lies inside the region.  */
 		if (mmiosz < base ||



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:18:43 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c

Log Message:
Another zero __ffs64 bug.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.4	Mon Aug 27 07:39:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c	Mon Aug 27 14:18:43 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.4 2018/08/27 07:39:56 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.5 2018/08/27 14:18:43 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.4 2018/08/27 07:39:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.5 2018/08/27 14:18:43 riastradh Exp $");
 
 #include "chan.h"
 
@@ -213,7 +213,7 @@ nvkm_fifo_chan_child_get(struct nvkm_obj
 	u64 mask = chan->engines;
 	int ret, i, c;
 
-	for (; c = 0, i = __ffs64(mask), mask; mask &= ~(1ULL << i)) {
+	for (; c = 0, mask && (i = __ffs64(mask), 1); mask &= ~(1ULL << i)) {
 		if (!(engine = nvkm_device_engine(device, i)))
 			continue;
 		oclass->engine = engine;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:41:51 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo: gk104.h

Log Message:
spinlock_t, not spin_lock_t.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/gk104.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/gk104.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/gk104.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/gk104.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/gk104.h:1.2	Mon Aug 27 04:58:31 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/gk104.h	Mon Aug 27 07:41:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: gk104.h,v 1.2 2018/08/27 04:58:31 riastradh Exp $	*/
+/*	$NetBSD: gk104.h,v 1.3 2018/08/27 07:41:51 riastradh Exp $	*/
 
 #ifndef __GK104_FIFO_H__
 #define __GK104_FIFO_H__
@@ -11,7 +11,7 @@ struct gk104_fifo_engn {
 	struct nvkm_memory *runlist[2];
 	int cur_runlist;
 #ifdef __NetBSD__
-	spin_lock_t lock;
+	spinlock_t lock;
 	drm_waitqueue_t wait;
 #else
 	wait_queue_head_t wait;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:40:11 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_gf100.c nouveau_nvkm_engine_fifo_gk104.c

Log Message:
Fix artefacts of unfinished merge of renamed variables.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gf100.c
 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gf100.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gf100.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gf100.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gf100.c:1.2	Mon Aug 27 04:58:31 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gf100.c	Mon Aug 27 07:40:11 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_gf100.c,v 1.2 2018/08/27 04:58:31 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_gf100.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gf100.c,v 1.2 2018/08/27 04:58:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gf100.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $");
 
 #include "gf100.h"
 #include "changf100.h"
@@ -80,7 +80,7 @@ gf100_fifo_runlist_update(struct gf100_f
 	if (cold) {
 		uint count = 2000;
 		while (count-- > 0) {
-			if (!(nvkm_rd32(priv, 0x00227c) & 0x0010))
+			if (!(nvkm_rd32(device, 0x00227c) & 0x0010))
 break;
 			delay(1000);
 		}
@@ -92,7 +92,7 @@ gf100_fifo_runlist_update(struct gf100_f
 		spin_lock(&fifo->runlist.lock);
 		DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &fifo->runlist.wait,
 		&fifo->runlist.lock, msecs_to_jiffies(2000),
-		!(nvkm_rd32(priv, 0x00227c) & 0x0010));
+		!(nvkm_rd32(device, 0x00227c) & 0x0010));
 		if (ret == 0)
 			nvkm_error(subdev, "runlist update timeout\n");
 		spin_unlock(&fifo->runlist.lock);
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.2	Mon Aug 27 04:58:31 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c	Mon Aug 27 07:40:11 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.2 2018/08/27 04:58:31 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.2 2018/08/27 04:58:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $");
 
 #include "gk104.h"
 #include "changk104.h"
@@ -81,7 +81,7 @@ gk104_fifo_runlist_update(struct gk104_f
 	if (cold) {
 		uint count = 2000;
 		while (count-- > 0) {
-			if (!(nvkm_rd32(priv, 0x002284 +
+			if (!(nvkm_rd32(device, 0x002284 +
 			(engine * 0x08)) & 0x0010))
 break;
 			delay(1000);
@@ -95,7 +95,7 @@ gk104_fifo_runlist_update(struct gk104_f
 		spin_lock(&engn->lock);
 		DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &engn->wait, &engn->lock,
 		msecs_to_jiffies(2000),
-		!(nvkm_rd32(priv, 0x002284 +
+		!(nvkm_rd32(device, 0x002284 +
 			(engine * 0x08)) & 0x0010));
 		if (ret == 0)
 			nvkm_error(subdev, "runlist %d update timeout\n",



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:39:56 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c

Log Message:
Fix typos from hasty merge.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.3	Mon Aug 27 07:35:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c	Mon Aug 27 07:39:56 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.3 2018/08/27 07:35:56 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.4 2018/08/27 07:39:56 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.3 2018/08/27 07:35:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.4 2018/08/27 07:39:56 riastradh Exp $");
 
 #include "chan.h"
 
@@ -279,7 +279,7 @@ nvkm_fifo_chan_ensure_mapped(struct nvkm
 		goto out;
 
 	/* XXX errno NetBSD->Linux */
-	int ret = -bus_space_map(chan->bst, chan->addr, chan->size, 0,
+	ret = -bus_space_map(chan->bst, chan->addr, chan->size, 0,
 	&chan->bsh);
 	if (ret)
 		return ret;
@@ -295,7 +295,7 @@ nvkm_fifo_chan_rd32(struct nvkm_object *
 {
 	struct nvkm_fifo_chan *chan = nvkm_fifo_chan(object);
 #ifdef __NetBSD__
-	int ret = nvkm_fifo_chan_ensure_mapped(object);
+	int ret = nvkm_fifo_chan_ensure_mapped(chan);
 	if (ret)
 		return ret;
 #else
@@ -320,7 +320,7 @@ nvkm_fifo_chan_wr32(struct nvkm_object *
 {
 	struct nvkm_fifo_chan *chan = nvkm_fifo_chan(object);
 #ifdef __NetBSD__
-	int ret = nvkm_fifo_chan_ensure_mapped(object);
+	int ret = nvkm_fifo_chan_ensure_mapped(chan);
 	if (ret)
 		return ret;
 #else