Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1205571

[PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when deactivating them"

From Alexandre Courbot <acourbot@nvidia.com>
Newsgroups linux.kernel
Subject [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when deactivating them"
Date 2015-08-12 06:20 +0200
Message-ID <pWvG9-1ge-5@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


This reverts commit 1addc1264852

This commit seems to cause crashes in gk104_fifo_intr_runlist() by
returning 0xbad0da00 when register 0x2a00 is read. Since this commit was
intended for GM20B which is not completely supported yet, let's revert
it for the time being.

Reported-by: Eric Biggers <ebiggers3@gmail.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
David, it would be great if this could be merged for 4.2 since lots of
users could potentially experience this issue. Thanks!

 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 29 +++++++-----------------
 1 file changed, 8 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
index 52c22b026005..e10f9644140f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
@@ -166,30 +166,14 @@ gk104_fifo_context_attach(struct nvkm_object *parent,
 }
 
 static int
-gk104_fifo_chan_kick(struct gk104_fifo_chan *chan)
-{
-	struct nvkm_object *obj = (void *)chan;
-	struct gk104_fifo_priv *priv = (void *)obj->engine;
-
-	nv_wr32(priv, 0x002634, chan->base.chid);
-	if (!nv_wait(priv, 0x002634, 0x100000, 0x000000)) {
-		nv_error(priv, "channel %d [%s] kick timeout\n",
-			 chan->base.chid, nvkm_client_name(chan));
-		return -EBUSY;
-	}
-
-	return 0;
-}
-
-static int
 gk104_fifo_context_detach(struct nvkm_object *parent, bool suspend,
 			  struct nvkm_object *object)
 {
 	struct nvkm_bar *bar = nvkm_bar(parent);
+	struct gk104_fifo_priv *priv = (void *)parent->engine;
 	struct gk104_fifo_base *base = (void *)parent->parent;
 	struct gk104_fifo_chan *chan = (void *)parent;
 	u32 addr;
-	int ret;
 
 	switch (nv_engidx(object->engine)) {
 	case NVDEV_ENGINE_SW    : return 0;
@@ -204,9 +188,13 @@ gk104_fifo_context_detach(struct nvkm_object *parent, bool suspend,
 		return -EINVAL;
 	}
 
-	ret = gk104_fifo_chan_kick(chan);
-	if (ret && suspend)
-		return ret;
+	nv_wr32(priv, 0x002634, chan->base.chid);
+	if (!nv_wait(priv, 0x002634, 0xffffffff, chan->base.chid)) {
+		nv_error(priv, "channel %d [%s] kick timeout\n",
+			 chan->base.chid, nvkm_client_name(chan));
+		if (suspend)
+			return -EBUSY;
+	}
 
 	if (addr) {
 		nv_wo32(base, addr + 0x00, 0x00000000);
@@ -331,7 +319,6 @@ gk104_fifo_chan_fini(struct nvkm_object *object, bool suspend)
 		gk104_fifo_runlist_update(priv, chan->engine);
 	}
 
-	gk104_fifo_chan_kick(chan);
 	nv_wr32(priv, 0x800000 + (chid * 8), 0x00000000);
 	return nvkm_fifo_channel_fini(&chan->base, suspend);
 }
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when deactivating them" Alexandre Courbot <acourbot@nvidia.com> - 2015-08-12 06:20 +0200
  Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Afzal Mohammed <afzal.mohd.ma@gmail.com> - 2015-08-12 08:10 +0200
    Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Alexandre Courbot <gnurou@gmail.com> - 2015-08-12 09:20 +0200
      Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Afzal Mohammed <afzal.mohd.ma@gmail.com> - 2015-08-12 09:40 +0200
        Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Alexandre Courbot <gnurou@gmail.com> - 2015-08-12 09:50 +0200
          Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Afzal Mohammed <afzal.mohd.ma@gmail.com> - 2015-08-12 12:00 +0200
            Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Alexandre Courbot <gnurou@gmail.com> - 2015-08-14 06:00 +0200
              Re: [PATCH] Revert "drm/nouveau/fifo/gk104: kick channels when  deactivating them" Alexandre Courbot <gnurou@gmail.com> - 2015-08-17 05:10 +0200

csiph-web