Go to the source code of this file.
Classes | |
struct | hal_gfx_cmdlist_t_ |
Command list structure. More... | |
Macros | |
#define | CL_NOP 0x010000U |
#define | CL_PUSH 0x020000U |
#define | CL_RETURN 0x040000U |
#define | CL_ABORT 0x080000U |
#define | CL_BATCH_SHIFT 12 |
#define | CL_BATCH_LOOP 0x8000 |
#define | SUBMISSION_ID_MASK 0xffffff |
Typedefs | |
typedef struct hal_gfx_cmdlist_t_ | hal_gfx_cmdlist_t |
Command list structure. More... | |
Functions | |
hal_gfx_cmdlist_t | hal_gfx_cl_create_prealloc (hal_gfx_buffer_t *bo) |
Create a new Command List into a preallocated space. More... | |
hal_gfx_cmdlist_t | hal_gfx_cl_create_sized (int size_bytes) |
Create a new, non expandable Command List of specific size. More... | |
hal_gfx_cmdlist_t | hal_gfx_cl_create (void) |
Create a new expandable Command List. More... | |
hal_gfx_cmdlist_t | hal_gfx_cl_le_create (void) |
Create a new expandable Command List with power management mode. More... | |
void | hal_gfx_cl_destroy (hal_gfx_cmdlist_t *cl) |
Destroy/Free a Command List. More... | |
void | hal_gfx_cl_le_destroy (hal_gfx_cmdlist_t *cl) |
Destroy/Free a Command List with power management mode. More... | |
void | hal_gfx_cl_rewind (hal_gfx_cmdlist_t *cl) |
Reset position of next command to be written to the beginning. Doesn't clear the List's contents. More... | |
void | hal_gfx_cl_bind (hal_gfx_cmdlist_t *cl) |
Define in which Command List each subsequent commands are going to be inserted. More... | |
void | hal_gfx_cl_bind_circular (hal_gfx_cmdlist_t *cl) |
Define in which Command List each subsequent commands are going to be inserted. Bind this command list as Circular. It never gets full, it never expands, it may get implicitly submitted, it cannot be reused. More... | |
void | hal_gfx_cl_unbind (void) |
Unbind current bound Command List, if any. More... | |
hal_gfx_cmdlist_t * | hal_gfx_cl_get_bound (void) |
Get bound Command List. More... | |
void | hal_gfx_cl_submit_no_irq (hal_gfx_cmdlist_t *cl) |
Push command to command list, but do not trigger interrupt. More... | |
void | hal_gfx_cl_submit (hal_gfx_cmdlist_t *cl) |
Enqueue Command List to the Ring Buffer for execution. More... | |
int | hal_gfx_cl_wait (hal_gfx_cmdlist_t *cl) |
Wait for Command List to finish. More... | |
void | hal_gfx_cl_add_cmd (uint32_t reg, uint32_t data) |
Add a command to the bound Command List. More... | |
int | hal_gfx_cl_add_multiple_cmds (int cmd_no, uint32_t *cmd) |
Add multiple commands to the bound Command List. More... | |
uint32_t * | hal_gfx_cl_get_space (int cmd_no) |
Request free space from command list. More... | |
void | hal_gfx_cl_branch (hal_gfx_cmdlist_t *cl) |
Branch from the bound Command List to a different one. Return is implied. More... | |
void | hal_gfx_cl_jump (hal_gfx_cmdlist_t *cl) |
Jump from the bound Command List to a different one. No return is implied. More... | |
void | hal_gfx_cl_return (void) |
Add an explicit return command to the bound Command List. More... | |
int | hal_gfx_cl_almost_full (hal_gfx_cmdlist_t *cl) |
Returns positive number if the Command List is almost full, otherwise returns 0. More... | |
int | hal_gfx_cl_enough_space (int cmd_no) |
Check if there is enough space or expansion can be performed for required commands. More... | |