Lines Matching defs:push

44 MODULE_PARM_DESC(vram_pushbuf, "Create DMA push buffers in VRAM");
107 nvif_object_dtor(&chan->push.ctxdma);
108 nouveau_vma_del(&chan->push.vma);
109 nouveau_bo_unmap(chan->push.buffer);
110 if (chan->push.buffer && chan->push.buffer->pin_refcnt)
111 nouveau_bo_unpin(chan->push.buffer);
112 nouveau_bo_ref(NULL, &chan->push.buffer);
122 nouveau_channel_kick(struct nvif_push *push)
124 struct nouveau_channel *chan = container_of(push, typeof(*chan), chan._push);
131 nouveau_channel_wait(struct nvif_push *push, u32 size)
133 struct nouveau_channel *chan = container_of(push, typeof(*chan), chan._push);
165 /* allocate memory for dma push buffer */
171 &chan->push.buffer);
173 ret = nouveau_bo_pin(chan->push.buffer, target, false);
175 ret = nouveau_bo_map(chan->push.buffer);
186 chan->chan._push.mem.object.map.ptr = chan->push.buffer->kmap.virtual;
189 chan->chan.push = &chan->chan._push;
193 * we be able to call out to other (indirect) push buffers
195 chan->push.addr = chan->push.buffer->offset;
198 ret = nouveau_vma_new(chan->push.buffer, chan->vmm,
199 &chan->push.vma);
205 chan->push.addr = chan->push.vma->addr;
215 if (chan->push.buffer->bo.mem.mem_type == TTM_PL_VRAM) {
249 &chan->push.ctxdma);
283 /* allocate dma push buffer */
294 args.volta.ioffset = 0x10000 + chan->push.addr;
303 args.kepler.ioffset = 0x10000 + chan->push.addr;
312 args.fermi.ioffset = 0x10000 + chan->push.addr;
318 args.nv50.ioffset = 0x10000 + chan->push.addr;
319 args.nv50.pushbuf = nvif_handle(&chan->push.ctxdma);
363 /* allocate dma push buffer */
371 args.pushbuf = nvif_handle(&chan->push.ctxdma);
372 args.offset = chan->push.addr;
482 ret = PUSH_WAIT(chan->chan.push, NOUVEAU_DMA_SKIPS);
487 PUSH_DATA(chan->chan.push, 0x00000000);
497 ret = PUSH_WAIT(chan->chan.push, 2);
501 PUSH_NVSQ(chan->chan.push, NV_SW, 0x0000, chan->nvsw.handle);
502 PUSH_KICK(chan->chan.push);