Lines Matching full:command

36  * Size of inline command buffers. Try to make sure that a page size is a
44 * struct vmw_cmdbuf_context - Command buffer context queues
46 * @submitted: List of command buffers that have been submitted to the
48 * @hw_submitted: List of command buffers submitted to hardware.
49 * @preempted: List of preempted command buffers.
51 * @block_submission: Identifies a block command submission.
62 * struct vmw_cmdbuf_man - Command buffer manager
64 * @cur_mutex: Mutex protecting the command buffer used for incremental small
65 * kernel command submissions, @cur.
71 * @work: A struct work_struct implementeing command buffer error handling.
74 * @ctx: Array of command buffer context queues. The queues and the context
76 * @error: List of command buffers that have caused device errors.
78 * @mm: Range manager for the command buffer space. Manager allocations and
80 * @cmd_space: Buffer object for the command buffer space, unless we were
83 * @map: Pointer to command buffer space. May be a mapped buffer object or
85 * @cur: Command buffer for small kernel command submissions. Protected by
88 * @default_size: Default size for the @cur command buffer. Immutable.
89 * @max_hw_submitted: Max number of in-flight command buffers the device can
91 * @lock: Spinlock protecting command submission queues.
92 * @headers: Pool of DMA memory for device command buffer headers.
94 * @dheaders: Pool of DMA memory for device command buffer headers with trailing
96 * @alloc_queue: Wait queue for processes waiting to allocate command buffer
98 * @idle_queue: Wait queue for processes waiting for command buffer idle.
101 * @using_mob: Whether the command buffer space is a MOB or a contigous DMA
105 * @handle: DMA address handle for the command buffer space if @using_mob is
107 * @size: The size of the command buffer space. Immutable.
140 * struct vmw_cmdbuf_header - Command buffer metadata
142 * @man: The command buffer manager.
143 * @cb_header: Device command buffer header, allocated from a DMA pool.
144 * @cb_context: The device command buffer context.
147 * @handle: The DMA address of @cb_header. Handed to the device on command
149 * @cmd: Pointer to the command buffer space of this buffer.
150 * @size: Size of the command buffer space of this buffer.
152 * @inline_space: Whether inline command buffer space is used.
168 * struct vmw_cmdbuf_dheader - Device command buffer header with inline
169 * command buffer space.
171 * @cb_header: Device command buffer header.
172 * @cmd: Inline command buffer space.
180 * struct vmw_cmdbuf_alloc_info - Command buffer space allocation metadata
182 * @page_size: Size of requested command buffer space in pages.
192 /* Loop over each context in the command buffer manager. */
231 * been used for the device context with inline command buffers.
298 * vmw_cmdbuf_header_submit: Submit a command buffer to hardware.
318 * vmw_cmdbuf_ctx_init: Initialize a command buffer context.
320 * @ctx: The command buffer context to initialize
331 * vmw_cmdbuf_ctx_submit: Submit command buffers from a command buffer
334 * @man: The command buffer manager.
335 * @ctx: The command buffer context.
337 * Submits command buffers to hardware until there are no more command
338 * buffers to submit or the hardware can't handle more command buffers.
368 * vmw_cmdbuf_ctx_process - Process a command buffer context.
370 * @man: The command buffer manager.
371 * @ctx: The command buffer context.
372 * @notempty: Pass back count of non-empty command submitted lists.
374 * Submit command buffers to hardware if possible, and process finished
400 WARN_ONCE(true, "Command buffer error.\n"); in vmw_cmdbuf_ctx_process()
410 WARN_ONCE(true, "Command buffer header error.\n"); in vmw_cmdbuf_ctx_process()
414 WARN_ONCE(true, "Undefined command buffer status.\n"); in vmw_cmdbuf_ctx_process()
426 * vmw_cmdbuf_man_process - Process all command buffer contexts and
429 * @man: The command buffer manager.
432 * command buffers left that are not submitted to hardware, Make sure
463 * vmw_cmdbuf_ctx_add - Schedule a command buffer for submission on a
464 * command buffer context
466 * @man: The command buffer manager.
468 * @cb_context: The command buffer context to use.
470 * This function adds @header to the "submitted" queue of the command
471 * buffer context identified by @cb_context. It then calls the command buffer
488 * vmw_cmdbuf_irqthread - The main part of the command buffer interrupt
491 * @man: Pointer to the command buffer manager.
494 * command buffer processor to free finished buffers and submit any
506 * command buffer errors.
510 * Restarting the command buffer context after an error requires process
541 VMW_DEBUG_USER("Unknown command causing device error.\n"); in vmw_cmdbuf_work_func()
542 VMW_DEBUG_USER("Command buffer offset is %lu\n", in vmw_cmdbuf_work_func()
549 VMW_DEBUG_USER("Command \"%s\" causing device error.\n", in vmw_cmdbuf_work_func()
551 VMW_DEBUG_USER("Command buffer offset is %lu\n", in vmw_cmdbuf_work_func()
553 VMW_DEBUG_USER("Command size is %lu\n", in vmw_cmdbuf_work_func()
584 DRM_ERROR("Failed preempting command buffer contexts\n"); in vmw_cmdbuf_work_func()
588 /* Move preempted command buffers to the preempted queue. */ in vmw_cmdbuf_work_func()
592 * Add the preempted queue after the command buffer in vmw_cmdbuf_work_func()
598 * Finally add all command buffers first in the submitted in vmw_cmdbuf_work_func()
610 DRM_ERROR("Failed restarting command buffer contexts\n"); in vmw_cmdbuf_work_func()
622 * vmw_cmdbuf_man_idle - Check whether the command buffer manager is idle.
624 * @man: The command buffer manager.
625 * @check_preempted: Check also the preempted queue for pending command buffers.
653 * __vmw_cmdbuf_cur_flush - Flush the current command buffer for small kernel
654 * command submissions
656 * @man: The command buffer manager.
658 * Flushes the current command buffer without allocating a new one. A new one
685 * vmw_cmdbuf_cur_flush - Flush the current command buffer for small kernel
686 * command submissions
688 * @man: The command buffer manager.
691 * Flushes the current command buffer without allocating a new one. A new one
709 * vmw_cmdbuf_idle - Wait for command buffer manager idle.
711 * @man: The command buffer manager.
715 * Wait until the command buffer manager has processed all command buffers,
756 * @man: The command buffer manager.
788 * @man: The command buffer manager.
853 * vmw_cmdbuf_space_pool - Set up a command buffer header with command buffer
856 * @man: The command buffer manager.
908 * vmw_cmdbuf_space_inline - Set up a command buffer header with
909 * inline command buffer space.
911 * @man: The command buffer manager.
944 * vmw_cmdbuf_alloc - Allocate a command buffer header complete with
945 * command buffer space.
947 * @man: The command buffer manager.
952 * Returns a pointer to command buffer space if successful. Otherwise
989 * command buffer.
991 * @man: The command buffer manager.
996 * Returns a pointer to command buffer space if successful. Otherwise
1039 * vmw_cmdbuf_commit_cur - Commit commands in the current command buffer.
1041 * @man: The command buffer manager.
1043 * @flush: Whether to flush the command buffer immediately.
1062 * vmw_cmdbuf_reserve - Reserve space for commands in a command buffer.
1064 * @man: The command buffer manager.
1068 * @header: Header of the command buffer. NULL if the current command buffer
1071 * Returns a pointer to command buffer space if successful. Otherwise
1094 * vmw_cmdbuf_commit - Commit commands in a command buffer.
1096 * @man: The command buffer manager.
1098 * @header: Header of the command buffer. NULL if the current command buffer
1100 * @flush: Whether to flush the command buffer immediately.
1124 * vmw_cmdbuf_send_device_command - Send a command through the device context.
1126 * @man: The command buffer manager.
1127 * @command: Pointer to the command to send.
1128 * @size: Size of the command.
1130 * Synchronously sends a device context command.
1133 const void *command, in vmw_cmdbuf_send_device_command() argument
1143 memcpy(cmd, command, size); in vmw_cmdbuf_send_device_command()
1152 DRM_ERROR("Device context command failed with status %d\n", in vmw_cmdbuf_send_device_command()
1161 * vmw_cmdbuf_preempt - Send a preempt command through the device
1164 * @man: The command buffer manager.
1165 * @context: Device context to pass command through.
1167 * Synchronously sends a preempt command.
1185 * vmw_cmdbuf_startstop - Send a start / stop command through the device
1188 * @man: The command buffer manager.
1192 * Synchronously sends a device start / stop context command.
1210 * vmw_cmdbuf_set_pool_size - Set command buffer manager sizes
1212 * @man: The command buffer manager.
1215 * Set the size and allocate the main command buffer space pool.
1216 * If successful, this enables large command submissions.
1217 * Note that this function requires that rudimentary command
1238 * DMA memory failed. If we can have command buffers in a in vmw_cmdbuf_set_pool_size()
1270 * needs to wait for space and we block on further command in vmw_cmdbuf_set_pool_size()
1275 "Using command buffers with %s pool.\n", in vmw_cmdbuf_set_pool_size()
1290 * vmw_cmdbuf_man_create: Create a command buffer manager and enable it for
1291 * inline command buffer submissions only.
1296 * on failure. The command buffer manager will be enabled for submissions of
1351 DRM_ERROR("Failed starting command buffer contexts\n"); in vmw_cmdbuf_man_create()
1369 * @man: Pointer to a command buffer manager.
1373 * only small command buffer submissions of size VMW_CMDBUF_INLINE_SIZE or
1374 * less are allowed, and the default size of the command buffer for small kernel
1396 * vmw_cmdbuf_man_destroy - Take down a command buffer manager.
1398 * @man: Pointer to a command buffer manager.
1400 * This function idles and then destroys a command buffer manager.
1408 DRM_ERROR("Failed stopping command buffer contexts.\n"); in vmw_cmdbuf_man_destroy()