Module Name: src
Committed By: riz
Date: Wed Jan 27 19:24:30 UTC 2016
Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo [netbsd-7]:
nouveau_engine_fifo_nvc0.c nouveau_engine_fifo_nve0.c
Log Message:
Pull up following revision(s) (requested by riastradh in ticket #1079):
sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:
revision 1.6
sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:
revision 1.5
don't try to wait if (cold), spin waiting for registers to clear.
same as in nouveau_engine_fifo_nve0.c 1.5. should fix PR#50362.
minor re-format of the previous.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.4.2 -r1.1.1.1.4.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c
cvs rdiff -u -r1.1.1.1.4.3 -r1.1.1.1.4.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.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/core/engine/fifo/nouveau_engine_fifo_nvc0.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.1.1.1.4.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.1.1.1.4.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.1.1.1.4.2 Fri Mar 6 21:39:09 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c Wed Jan 27 19:24:30 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.1.1.1.4.2 2015/03/06 21:39:09 snj Exp $ */
+/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.1.1.1.4.3 2016/01/27 19:24:30 riz Exp $ */
/*
* Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nvc0.c,v 1.1.1.1.4.2 2015/03/06 21:39:09 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nvc0.c,v 1.1.1.1.4.3 2016/01/27 19:24:30 riz Exp $");
#include <core/client.h>
#include <core/handle.h>
@@ -115,17 +115,26 @@ nvc0_fifo_runlist_update(struct nvc0_fif
nv_wr32(priv, 0x002274, 0x01f00000 | (p >> 3));
#ifdef __NetBSD__
- {
- int ret;
+ if (cold) {
+ uint count = 2000;
+ while (count-- > 0) {
+ if (!(nv_rd32(priv, 0x00227c) & 0x00100000))
+ break;
+ delay(1000);
+ }
+ if (count == 0)
+ nv_error(priv, "runlist update timeout\n");
+ } else {
+ int ret;
- spin_lock(&priv->runlist.lock);
- DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &priv->runlist.wait,
- &priv->runlist.lock, msecs_to_jiffies(2000),
- !(nv_rd32(priv, 0x00227c) & 0x00100000));
- if (ret == 0)
- nv_error(priv, "runlist update timeout\n");
- spin_unlock(&priv->runlist.lock);
- }
+ spin_lock(&priv->runlist.lock);
+ DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &priv->runlist.wait,
+ &priv->runlist.lock, msecs_to_jiffies(2000),
+ !(nv_rd32(priv, 0x00227c) & 0x00100000));
+ if (ret == 0)
+ nv_error(priv, "runlist update timeout\n");
+ spin_unlock(&priv->runlist.lock);
+ }
#else
if (wait_event_timeout(priv->runlist.wait,
!(nv_rd32(priv, 0x00227c) & 0x00100000),
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.1.1.1.4.3 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.1.1.1.4.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.1.1.1.4.3 Fri Nov 6 23:03:20 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c Wed Jan 27 19:24:30 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.1.1.1.4.3 2015/11/06 23:03:20 riz Exp $ */
+/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.1.1.1.4.4 2016/01/27 19:24:30 riz Exp $ */
/*
* Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.1.1.1.4.3 2015/11/06 23:03:20 riz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.1.1.1.4.4 2016/01/27 19:24:30 riz Exp $");
#include <core/client.h>
#include <core/handle.h>
@@ -139,7 +139,8 @@ nve0_fifo_runlist_update(struct nve0_fif
if (cold) {
uint count = 2000;
while (count-- > 0) {
- if (!(nv_rd32(priv, 0x002284 + (engine * 0x08)) & 0x00100000))
+ if (!(nv_rd32(priv, 0x002284 +
+ (engine * 0x08)) & 0x00100000))
break;
delay(1000);
}