Lines Matching full:buffer
45 * struct vmw_cmdbuf_context - Command buffer context queues
63 * struct vmw_cmdbuf_man - Command buffer manager
65 * @cur_mutex: Mutex protecting the command buffer used for incremental small
68 * main pool buffer space.
72 * @work: A struct work_struct implementeing command buffer error handling.
75 * @ctx: Array of command buffer context queues. The queues and the context
79 * @mm: Range manager for the command buffer space. Manager allocations and
81 * @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.
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.
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.
147 * buffer submission.
148 * @cmd: Pointer to the command buffer space of this buffer.
149 * @size: Size of the command buffer space of this buffer.
150 * @reserved: Reserved 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. */
297 * vmw_cmdbuf_header_submit: Submit a command buffer to hardware.
299 * @header: The header of the buffer to submit.
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.
367 * vmw_cmdbuf_ctx_process - Process a command buffer context.
369 * @man: The command buffer manager.
370 * @ctx: The command buffer context.
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.
462 * vmw_cmdbuf_ctx_add - Schedule a command buffer for submission on a
463 * command buffer context
465 * @man: The command buffer manager.
466 * @header: The header of the buffer to submit.
467 * @cb_context: The command buffer context to use.
470 * buffer context identified by @cb_context. It then calls the command buffer
471 * manager processing to potentially submit the buffer to hardware.
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
541 VMW_DEBUG_USER("Command buffer offset is %lu\n", in vmw_cmdbuf_work_func()
550 VMW_DEBUG_USER("Command buffer offset is %lu\n", in vmw_cmdbuf_work_func()
583 DRM_ERROR("Failed preempting command buffer contexts\n"); in vmw_cmdbuf_work_func()
591 * Add the preempted queue after the command buffer 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.
652 * __vmw_cmdbuf_cur_flush - Flush the current command buffer for small kernel
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
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,
753 * vmw_cmdbuf_try_alloc - Try to allocate buffer space from the main pool.
755 * @man: The command buffer manager.
759 * Try to allocate buffer space from the main pool. Returns true if succeeded.
785 * vmw_cmdbuf_alloc_space - Allocate buffer space from the main pool.
787 * @man: The command buffer manager.
792 * This function allocates buffer space from the main pool, and if there is
852 * vmw_cmdbuf_space_pool - Set up a command buffer header with command buffer
855 * @man: The command buffer manager.
857 * @size: The requested size of the buffer space.
907 * vmw_cmdbuf_space_inline - Set up a command buffer header with
908 * inline command buffer space.
910 * @man: The command buffer manager.
912 * @size: The requested size of the buffer space.
943 * vmw_cmdbuf_alloc - Allocate a command buffer header complete with
944 * command buffer space.
946 * @man: The command buffer manager.
947 * @size: The requested size of the buffer space.
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.
1125 * @man: The command buffer manager.
1163 * @man: The command buffer manager.
1187 * @man: The command buffer manager.
1209 * vmw_cmdbuf_set_pool_size - Set command buffer manager sizes
1211 * @man: The command buffer manager.
1214 * Set the size and allocate the main command buffer space pool.
1280 * vmw_cmdbuf_man_create: Create a command buffer manager and enable it for
1281 * inline command buffer submissions only.
1285 * Returns a pointer to a cummand buffer manager to success or error pointer
1286 * on failure. The command buffer manager will be enabled for submissions of
1341 DRM_ERROR("Failed starting command buffer contexts\n"); in vmw_cmdbuf_man_create()
1357 * vmw_cmdbuf_remove_pool - Take down the main buffer space pool.
1359 * @man: Pointer to a command buffer manager.
1361 * This function removes the main buffer space pool, and should be called
1363 * only small command buffer submissions of size VMW_CMDBUF_INLINE_SIZE or
1364 * less are allowed, and the default size of the command buffer for small kernel
1383 * vmw_cmdbuf_man_destroy - Take down a command buffer manager.
1385 * @man: Pointer to a command buffer manager.
1387 * This function idles and then destroys a command buffer manager.
1395 DRM_ERROR("Failed stopping command buffer contexts.\n"); in vmw_cmdbuf_man_destroy()