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