diff options
author | Ben Skeggs <skeggsb@gmail.com> | 2007-11-14 03:27:37 +1100 |
---|---|---|
committer | Ben Skeggs <skeggsb@gmail.com> | 2007-11-14 03:27:37 +1100 |
commit | d0904f0f2b87c725d3e67060419c445259bd4a5e (patch) | |
tree | 0f8721dffc886a1777f0749aed1309bd6bda98fa /shared-core/nv04_fifo.c | |
parent | 793cd1dad5e248509a1b09dce7126f236efadb3e (diff) |
nouveau: funcs to determine active channel on PFIFO.
Diffstat (limited to 'shared-core/nv04_fifo.c')
-rw-r--r-- | shared-core/nv04_fifo.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/shared-core/nv04_fifo.c b/shared-core/nv04_fifo.c index d172302c..230c8e72 100644 --- a/shared-core/nv04_fifo.c +++ b/shared-core/nv04_fifo.c @@ -36,6 +36,15 @@ #define NV04_RAMFC__SIZE 32 int +nv04_fifo_channel_id(struct drm_device *dev) +{ + struct drm_nouveau_private *dev_priv = dev->dev_private; + + return (NV_READ(NV03_PFIFO_CACHE1_PUSH1) & + NV03_PFIFO_CACHE1_PUSH1_CHID_MASK); +} + +int nv04_fifo_create_context(struct nouveau_channel *chan) { struct drm_device *dev = chan->dev; @@ -84,7 +93,8 @@ nv04_fifo_load_context(struct nouveau_channel *chan) struct drm_nouveau_private *dev_priv = dev->dev_private; uint32_t tmp; - NV_WRITE(NV03_PFIFO_CACHE1_PUSH1, (1<<8) | chan->id); + NV_WRITE(NV03_PFIFO_CACHE1_PUSH1, + NV03_PFIFO_CACHE1_PUSH1_DMA | chan->id); NV_WRITE(NV04_PFIFO_CACHE1_DMA_GET, RAMFC_RD(DMA_GET)); NV_WRITE(NV04_PFIFO_CACHE1_DMA_PUT, RAMFC_RD(DMA_PUT)); |