Lines Matching refs:push

39 MODULE_PARM_DESC(vram_pushbuf, "Create DMA push buffers in VRAM");
108 nvif_object_dtor(&chan->push.ctxdma);
109 nouveau_vma_del(&chan->push.vma);
110 nouveau_bo_unmap(chan->push.buffer);
111 if (chan->push.buffer && chan->push.buffer->bo.pin_count)
112 nouveau_bo_unpin(chan->push.buffer);
113 nouveau_bo_ref(NULL, &chan->push.buffer);
120 nouveau_channel_kick(struct nvif_push *push)
122 struct nouveau_channel *chan = container_of(push, typeof(*chan), chan._push);
129 nouveau_channel_wait(struct nvif_push *push, u32 size)
131 struct nouveau_channel *chan = container_of(push, typeof(*chan), chan._push);
163 /* allocate memory for dma push buffer */
169 &chan->push.buffer);
171 ret = nouveau_bo_pin(chan->push.buffer, target, false);
173 ret = nouveau_bo_map(chan->push.buffer);
184 chan->chan._push.mem.object.map.ptr = chan->push.buffer->kmap.virtual;
187 chan->chan.push = &chan->chan._push;
191 * we be able to call out to other (indirect) push buffers
193 chan->push.addr = chan->push.buffer->offset;
196 ret = nouveau_vma_new(chan->push.buffer, chan->vmm,
197 &chan->push.vma);
203 chan->push.addr = chan->push.vma->addr;
213 if (chan->push.buffer->bo.resource->mem_type == TTM_PL_VRAM) {
247 &chan->push.ctxdma);
300 /* allocate dma push buffer */
315 args.chan.ctxdma = nvif_handle(&chan->push.ctxdma);
316 args.chan.offset = chan->push.addr;
321 args.chan.ctxdma = nvif_handle(&chan->push.ctxdma);
324 args.chan.offset = ioffset + chan->push.addr;
468 ret = PUSH_WAIT(chan->chan.push, NOUVEAU_DMA_SKIPS);
473 PUSH_DATA(chan->chan.push, 0x00000000);
483 ret = PUSH_WAIT(chan->chan.push, 2);
487 PUSH_NVSQ(chan->chan.push, NV_SW, 0x0000, chan->nvsw.handle);
488 PUSH_KICK(chan->chan.push);