Lines Matching defs:cmd
36 /* represents a single cmd buffer in the submit ioctl. Each cmd buffer has
50 /* has cmd already been added to parent rb's submit.cmds table? */
60 * per cmd-buffer.
66 /* cmd's table: */
83 * And only has "completed" cmd buffers (ie. we already know the
127 static void ring_cmd_del(struct msm_cmd *cmd)
129 fd_bo_del(cmd->ring_bo);
130 list_del(&cmd->list);
131 to_msm_ringbuffer(cmd->ring)->cmd_count--;
132 free(cmd->relocs);
133 free(cmd);
140 struct msm_cmd *cmd = calloc(1, sizeof(*cmd));
142 if (!cmd)
145 cmd->ring = ring;
174 cmd->ring_bo = fd_bo_new_ring(ring->pipe->dev, 0x8000, 0);
177 cmd->ring_bo = fd_bo_ref(suballoc_bo);
186 cmd->ring_bo = fd_bo_new_ring(ring->pipe->dev, size, 0);
188 if (!cmd->ring_bo)
191 list_addtail(&cmd->list, &msm_ring->cmd_list);
194 return cmd;
197 ring_cmd_del(cmd);
255 * Returns TRUE if new cmd added (else FALSE if it was already in
262 struct drm_msm_gem_submit_cmd *cmd;
269 /* figure out if we already have a cmd buf.. short-circuit hash
271 * - target cmd has never been added to submit.cmds
272 * - target cmd is not a streaming stateobj (which unlike longer
280 cmd = &msm_ring->submit.cmds[i];
282 assert(cmd->submit_offset == submit_offset);
283 assert(cmd->size == size);
284 assert(cmd->type == type);
285 assert(msm_ring->submit.bos[cmd->submit_idx].handle ==
291 /* create cmd buf if not: */
295 cmd = &msm_ring->submit.cmds[i];
296 cmd->type = type;
297 cmd->submit_idx = bo2idx(ring, target_cmd->ring_bo, FD_RELOC_READ);
298 cmd->submit_offset = submit_offset;
299 cmd->size = size;
300 cmd->pad = 0;
316 struct msm_cmd *cmd = current_cmd(ring);
317 uint8_t *base = fd_bo_map(cmd->ring_bo);
323 struct msm_cmd *cmd, *tmp;
325 LIST_FOR_EACH_ENTRY_SAFE(cmd, tmp, &msm_ring->cmd_list, list) {
326 ring_cmd_del(cmd);
404 struct drm_msm_gem_submit_cmd *cmd = &msm_ring->submit.cmds[i];
405 struct drm_msm_gem_submit_reloc *relocs = U642VOID(cmd->relocs);
406 ERROR_MSG(" cmd[%d]: type=%u, submit_idx=%u, submit_offset=%u, size=%u",
407 i, cmd->type, cmd->submit_idx, cmd->submit_offset, cmd->size);
408 for (j = 0; j < cmd->nr_relocs; j++) {
445 struct drm_msm_gem_submit_cmd *cmd = &msm_ring->submit.cmds[i];
452 if (get_cmd(parent, msm_cmd, cmd->submit_offset, cmd->size, cmd->type)) {
485 /* for each of the cmd's fix up their reloc's: */
489 struct drm_msm_gem_submit_cmd *cmd;
503 cmd = &msm_ring->submit.cmds[i];
504 cmd->relocs = VOID2U64(relocs);
505 cmd->nr_relocs = nr_relocs;
535 struct drm_msm_gem_submit_cmd *cmd = &msm_ring->submit.cmds[i];
538 free(U642VOID(cmd->relocs));
565 struct msm_cmd *cmd = current_cmd(ring);
566 uint32_t idx = APPEND(cmd, relocs);
569 reloc = &cmd->relocs[idx];
593 idx = APPEND(cmd, relocs);
595 reloc_hi = &cmd->relocs[idx];
616 struct msm_cmd *cmd = NULL;
623 LIST_FOR_EACH_ENTRY(cmd, &msm_target->cmd_list, list) {
629 assert(cmd && (idx == cmd_idx));
632 /* All but the last cmd buffer is fully "baked" (ie. already has
635 * last cmd buffer):
637 size = cmd->size;
641 added_cmd = get_cmd(parent, cmd, submit_offset, size,
646 .bo = cmd->ring_bo,