Lines Matching defs:push
677 struct drm_nouveau_gem_pushbuf_push *push;
709 NV_PRINTK(err, cli, "pushbuf push count exceeds limit: %d max %d\n",
726 push = u_memcpya(req->push, req->nr_push, sizeof(*push));
727 if (IS_ERR(push))
728 return nouveau_abi16_put(abi16, PTR_ERR(push));
732 u_free(push);
736 /* Ensure all push buffers are on validate list */
738 if (push[i].bo_index >= req->nr_buffers) {
739 NV_PRINTK(err, cli, "push %d buffer not in list\n", i);
784 bo[push[i].bo_index].user_priv;
786 nv50_dma_push(chan, vma->addr + push[i].offset,
787 push[i].length);
791 ret = PUSH_WAIT(chan->chan.push, req->nr_push * 2);
799 bo[push[i].bo_index].user_priv;
801 PUSH_CALL(chan->chan.push, nvbo->offset + push[i].offset);
802 PUSH_DATA(chan->chan.push, 0);
805 ret = PUSH_WAIT(chan->chan.push, req->nr_push * (2 + NOUVEAU_DMA_SKIPS));
813 bo[push[i].bo_index].user_priv;
816 cmd = chan->push.addr + ((chan->dma.cur + 2) << 2);
831 nouveau_bo_wr32(nvbo, (push[i].offset +
832 push[i].length - 8) / 4, cmd);
835 PUSH_JUMP(chan->chan.push, nvbo->offset + push[i].offset);
836 PUSH_DATA(chan->chan.push, 0);
838 PUSH_DATA(chan->chan.push, 0);
879 u_free(push);
891 (chan->push.addr + ((chan->dma.cur + 2) << 2));