Home | History | Annotate | Download | only in nouveau

Lines Matching refs:chan

89 RING_SPACE(struct nouveau_channel *chan, int size)
93 ret = nouveau_dma_wait(chan, 1, size);
97 chan->dma.free -= size;
102 OUT_RING(struct nouveau_channel *chan, int data)
104 nouveau_bo_wr32(chan->push.buffer, chan->dma.cur++, data);
108 OUT_RINGp(struct nouveau_channel *chan, const void *data, unsigned nr_dwords);
111 BEGIN_NV04(struct nouveau_channel *chan, int subc, int mthd, int size)
113 OUT_RING(chan, 0x00000000 | (subc << 13) | (size << 18) | mthd);
117 BEGIN_NI04(struct nouveau_channel *chan, int subc, int mthd, int size)
119 OUT_RING(chan, 0x40000000 | (subc << 13) | (size << 18) | mthd);
123 BEGIN_NVC0(struct nouveau_channel *chan, int subc, int mthd, int size)
125 OUT_RING(chan, 0x20000000 | (size << 16) | (subc << 13) | (mthd >> 2));
129 BEGIN_NIC0(struct nouveau_channel *chan, int subc, int mthd, int size)
131 OUT_RING(chan, 0x60000000 | (size << 16) | (subc << 13) | (mthd >> 2));
135 BEGIN_IMC0(struct nouveau_channel *chan, int subc, int mthd, u16 data)
137 OUT_RING(chan, 0x80000000 | (data << 16) | (subc << 13) | (mthd >> 2));
142 nouveau_bo_rd32(chan->push.buffer, 0); \
143 nvif_wr32(&chan->user, chan->user_put, ((val) << 2) + chan->push.addr);\
147 FIRE_RING(struct nouveau_channel *chan)
149 if (chan->dma.cur == chan->dma.put)
151 chan->accel_done = true;
153 if (chan->dma.ib_max) {
154 nv50_dma_push(chan, chan->push.addr + (chan->dma.put << 2),
155 (chan->dma.cur - chan->dma.put) << 2);
157 WRITE_PUT(chan->dma.cur);
160 chan->dma.put = chan->dma.cur;
164 WIND_RING(struct nouveau_channel *chan)
166 chan->dma.cur = chan->dma.put;