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.
61 * struct vmw_cmdbuf_man: - Command buffer manager
63 * @cur_mutex: Mutex protecting the command buffer used for incremental small
64 * kernel command submissions, @cur.
70 * @work: A struct work_struct implementeing command buffer error handling.
73 * @ctx: Array of command buffer context queues. The queues and the context
75 * @error: List of command buffers that have caused device errors.
77 * @mm: Range manager for the command buffer space. Manager allocations and
79 * @cmd_space: Buffer object for the command buffer space, unless we were
82 * @map: Pointer to command buffer space. May be a mapped buffer object or
84 * @cur: Command buffer for small kernel command submissions. Protected by
87 * @default_size: Default size for the @cur command buffer. Immutable.
88 * @max_hw_submitted: Max number of in-flight command buffers the device can
90 * @lock: Spinlock protecting command submission queues.
91 * @header: Pool of DMA memory for device command buffer headers.
93 * @dheaders: Pool of DMA memory for device command buffer headers with trailing
95 * @alloc_queue: Wait queue for processes waiting to allocate command buffer
97 * @idle_queue: Wait queue for processes waiting for command buffer idle.
100 * @using_mob: Whether the command buffer space is a MOB or a contigous DMA
104 * @handle: DMA address handle for the command buffer space if @using_mob is
106 * @size: The size of the command buffer space. Immutable.
139 * struct vmw_cmdbuf_header - Command buffer metadata
141 * @man: The command buffer manager.
142 * @cb_header: Device command buffer header, allocated from a DMA pool.
143 * @cb_context: The device command buffer context.
146 * @handle. The DMA address of @cb_header. Handed to the device on command
148 * @cmd: Pointer to the command buffer space of this buffer.
149 * @size: Size of the command buffer space of this buffer.
151 * @inline_space: Whether inline command buffer space is used.
167 * struct vmw_cmdbuf_dheader - Device command buffer header with inline
168 * command buffer space.
170 * @cb_header: Device command buffer header.
171 * @cmd: Inline command buffer space.
179 * struct vmw_cmdbuf_alloc_info - Command buffer space allocation metadata
181 * @page_size: Size of requested command buffer space in pages.
191 /* Loop over each context in the command buffer manager. */
230 * been used for the device context with inline command buffers.
297 * vmw_cmbuf_header_submit: Submit a command buffer to hardware.
317 * vmw_cmdbuf_ctx_init: Initialize a command buffer context.
319 * @ctx: The command buffer context to initialize
330 * vmw_cmdbuf_ctx_submit: Submit command buffers from a command buffer
333 * @man: The command buffer manager.
334 * @ctx: The command buffer context.
336 * Submits command buffers to hardware until there are no more command
337 * buffers to submit or the hardware can't handle more command buffers.
368 * vmw_cmdbuf_ctx_submit: Process a command buffer context.
370 * @man: The command buffer manager.
371 * @ctx: The command buffer context.
373 * Submit command buffers to hardware if possible, and process finished
399 WARN_ONCE(true, "Command buffer error.\n"); in vmw_cmdbuf_ctx_process()
409 WARN_ONCE(true, "Command buffer header error.\n"); in vmw_cmdbuf_ctx_process()
413 WARN_ONCE(true, "Undefined command buffer status.\n"); in vmw_cmdbuf_ctx_process()
425 * vmw_cmdbuf_man_process - Process all command buffer contexts and
428 * @man: The command buffer manager.
431 * command buffers left that are not submitted to hardware, Make sure
462 * vmw_cmdbuf_ctx_add - Schedule a command buffer for submission on a
463 * command buffer context
465 * @man: The command buffer manager.
467 * @cb_context: The command buffer context to use.
469 * This function adds @header to the "submitted" queue of the command
470 * buffer context identified by @cb_context. It then calls the command buffer
487 * vmw_cmdbuf_irqthread - The main part of the command buffer interrupt
490 * @man: Pointer to the command buffer manager.
493 * command buffer processor to free finished buffers and submit any
505 * command buffer errors.
509 * Restarting the command buffer context after an error requires process
540 VMW_DEBUG_USER("Unknown command causing device error.\n"); in vmw_cmdbuf_work_func()
541 VMW_DEBUG_USER("Command buffer offset is %lu\n", in vmw_cmdbuf_work_func()
548 VMW_DEBUG_USER("Command \"%s\" causing device error.\n", in vmw_cmdbuf_work_func()
550 VMW_DEBUG_USER("Command buffer offset is %lu\n", in vmw_cmdbuf_work_func()
552 VMW_DEBUG_USER("Command size is %lu\n", in vmw_cmdbuf_work_func()
583 DRM_ERROR("Failed preempting command buffer contexts\n"); in vmw_cmdbuf_work_func()
587 /* Move preempted command buffers to the preempted queue. */ in vmw_cmdbuf_work_func()
591 * Add the preempted queue after the command buffer in vmw_cmdbuf_work_func()
597 * Finally add all command buffers first in the submitted in vmw_cmdbuf_work_func()
609 DRM_ERROR("Failed restarting command buffer contexts\n"); in vmw_cmdbuf_work_func()
621 * vmw_cmdbuf_man idle - Check whether the command buffer manager is idle.
623 * @man: The command buffer manager.
624 * @check_preempted: Check also the preempted queue for pending command buffers.
652 * __vmw_cmdbuf_cur_flush - Flush the current command buffer for small kernel
653 * command submissions
655 * @man: The command buffer manager.
657 * Flushes the current command buffer without allocating a new one. A new one
684 * vmw_cmdbuf_cur_flush - Flush the current command buffer for small kernel
685 * command submissions
687 * @man: The command buffer manager.
690 * Flushes the current command buffer without allocating a new one. A new one
708 * vmw_cmdbuf_idle - Wait for command buffer manager idle.
710 * @man: The command buffer manager.
714 * Wait until the command buffer manager has processed all command buffers,
755 * @man: The command buffer manager.
787 * @man: The command buffer manager.
852 * vmw_cmdbuf_space_pool - Set up a command buffer header with command buffer
855 * @man: The command buffer manager.
907 * vmw_cmdbuf_space_inline - Set up a command buffer header with
908 * inline command buffer space.
910 * @man: The command buffer manager.
943 * vmw_cmdbuf_alloc - Allocate a command buffer header complete with
944 * command buffer space.
946 * @man: The command buffer manager.
951 * Returns a pointer to command buffer space if successful. Otherwise
988 * command buffer.
990 * @man: The command buffer manager.
995 * Returns a pointer to command buffer space if successful. Otherwise
1038 * vmw_cmdbuf_commit_cur - Commit commands in the current command buffer.
1040 * @man: The command buffer manager.
1042 * @flush: Whether to flush the command buffer immediately.
1061 * vmw_cmdbuf_reserve - Reserve space for commands in a command buffer.
1063 * @man: The command buffer manager.
1067 * @header: Header of the command buffer. NULL if the current command buffer
1070 * Returns a pointer to command buffer space if successful. Otherwise
1093 * vmw_cmdbuf_commit - Commit commands in a command buffer.
1095 * @man: The command buffer manager.
1097 * @header: Header of the command buffer. NULL if the current command buffer
1099 * @flush: Whether to flush the command buffer immediately.
1123 * vmw_cmdbuf_send_device_command - Send a command through the device context.
1125 * @man: The command buffer manager.
1126 * @command: Pointer to the command to send.
1127 * @size: Size of the command.
1129 * Synchronously sends a device context command.
1132 const void *command, in vmw_cmdbuf_send_device_command() argument
1142 memcpy(cmd, command, size); in vmw_cmdbuf_send_device_command()
1151 DRM_ERROR("Device context command failed with status %d\n", in vmw_cmdbuf_send_device_command()
1160 * vmw_cmdbuf_preempt - Send a preempt command through the device
1163 * @man: The command buffer manager.
1165 * Synchronously sends a preempt command.
1183 * vmw_cmdbuf_startstop - Send a start / stop command through the device
1186 * @man: The command buffer manager.
1189 * Synchronously sends a device start / stop context command.
1207 * vmw_cmdbuf_set_pool_size - Set command buffer manager sizes
1209 * @man: The command buffer manager.
1211 * @default_size: The default size of the command buffer for small kernel
1214 * Set the size and allocate the main command buffer space pool,
1215 * as well as the default size of the command buffer for
1216 * small kernel submissions. If successful, this enables large command
1217 * submissions. Note that this function requires that rudimentary command
1239 * DMA memory failed. If we can have command buffers in a in vmw_cmdbuf_set_pool_size()
1271 * needs to wait for space and we block on further command in vmw_cmdbuf_set_pool_size()
1275 DRM_INFO("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()