summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nve0_graph.c
diff options
context:
space:
mode:
authorBen Skeggs2012-05-01 12:48:08 +0200
committerBen Skeggs2012-05-24 08:56:11 +0200
commitc420b2dc8dc3cdd507214f4df5c5f96f08812cbe (patch)
tree6dca9f0aba3de22a2bda5fe647d6945d4f4e986e /drivers/gpu/drm/nouveau/nve0_graph.c
parentdrm/nv50/graph: remove ability to do interrupt-driven context switching (diff)
downloadkernel-qcow2-linux-c420b2dc8dc3cdd507214f4df5c5f96f08812cbe.tar.gz
kernel-qcow2-linux-c420b2dc8dc3cdd507214f4df5c5f96f08812cbe.tar.xz
kernel-qcow2-linux-c420b2dc8dc3cdd507214f4df5c5f96f08812cbe.zip
drm/nouveau/fifo: turn all fifo modules into engine modules
Been tested on each major revision that's relevant here, but I'm sure there are still bugs waiting to be ironed out. This is a *very* invasive change. There's a couple of pieces left that I don't like much (eg. other engines using fifo_priv for the channel count), but that's an artefact of there being a master channel list still. This is changing, slowly. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nve0_graph.c')
-rw-r--r--drivers/gpu/drm/nouveau/nve0_graph.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nve0_graph.c b/drivers/gpu/drm/nouveau/nve0_graph.c
index 9cc3cf246e09..41356274ca61 100644
--- a/drivers/gpu/drm/nouveau/nve0_graph.c
+++ b/drivers/gpu/drm/nouveau/nve0_graph.c
@@ -29,6 +29,7 @@
#include "nouveau_drv.h"
#include "nouveau_mm.h"
+#include "nouveau_fifo.h"
#include "nve0_graph.h"
@@ -548,13 +549,14 @@ nve0_graph_init(struct drm_device *dev, int engine)
int
nve0_graph_isr_chid(struct drm_device *dev, u64 inst)
{
+ struct nouveau_fifo_priv *pfifo = nv_engine(dev, NVOBJ_ENGINE_FIFO);
struct drm_nouveau_private *dev_priv = dev->dev_private;
struct nouveau_channel *chan;
unsigned long flags;
int i;
spin_lock_irqsave(&dev_priv->channels.lock, flags);
- for (i = 0; i < dev_priv->engine.fifo.channels; i++) {
+ for (i = 0; i < pfifo->channels; i++) {
chan = dev_priv->channels.ptr[i];
if (!chan || !chan->ramin)
continue;