|
Sound Open Firmware
|
Low-Latency (LL) scheduling domain architecture, timer/DMA drivers, and core domain operations. More...

Go to the source code of this file.
Data Structures | |
| struct | ll_schedule_domain_ops |
| Low-Latency schedule domain operations table. More... | |
| struct | ll_schedule_domain |
| Low-Latency scheduling domain instance descriptor. More... | |
Macros | |
| #define | LL_TIMER_PERIOD_US 1000ULL |
| Default Low-Latency timer scheduling period in microseconds (1000us / 1ms). | |
| #define | LL_WATCHDOG_TIMEOUT_US (2 * LL_TIMER_PERIOD_US) |
| Default Low-Latency watchdog timeout in microseconds. | |
| #define | ll_sch_domain_set_pdata(domain, data) ((domain)->priv_data = (data)) |
| Set the private data pointer of a Low-Latency scheduling domain. | |
| #define | ll_sch_domain_get_pdata(domain) ((domain)->priv_data) |
| Retrieve the private data pointer of a Low-Latency scheduling domain. | |
| #define | timer_domain_init(timer, clk) zephyr_domain_init(clk) |
Functions | |
| static struct ll_schedule_domain * | timer_domain_get (void) |
| Get the primary platform timer scheduling domain. | |
| static struct ll_schedule_domain * | dma_domain_get (void) |
| Get the primary platform DMA scheduling domain. | |
| static struct ll_schedule_domain * | domain_init (int type, int clk, bool synchronous, const struct ll_schedule_domain_ops *ops) |
| Initialize a Low-Latency scheduling domain descriptor. | |
| static void | domain_set (struct ll_schedule_domain *domain, uint64_t start) |
| Configure the next interrupt or tick timestamp for the domain. | |
| static void | domain_clear (struct ll_schedule_domain *domain) |
| Clear/disarm the interrupt tick for the domain. | |
| static void | domain_task_cancel (struct ll_schedule_domain *domain, struct task *task) |
| Notify the domain that a task has been cancelled. | |
| static int | domain_register (struct ll_schedule_domain *domain, struct task *task, void(*handler)(void *arg), void *arg) |
| Register a real-time task with the scheduling domain. | |
| static void | domain_unregister (struct ll_schedule_domain *domain, struct task *task, uint32_t num_tasks) |
| Unregister a real-time task from the scheduling domain. | |
| static void | domain_enable (struct ll_schedule_domain *domain, int core) |
| Enable Low-Latency scheduling domain execution on the specified core. | |
| static void | domain_disable (struct ll_schedule_domain *domain, int core) |
| Disable Low-Latency scheduling domain execution on the specified core. | |
| static bool | domain_is_pending (struct ll_schedule_domain *domain, struct task *task, struct comp_dev **comp) |
| Query whether a task in the domain has pending execution work. | |
| struct ll_schedule_domain * | zephyr_ll_domain (void) |
| Retrieve the global Low-Latency timer scheduling domain descriptor on Zephyr. | |
| struct ll_schedule_domain * | zephyr_domain_init (int clk) |
| Initialize the primary timer-driven Low-Latency scheduling domain on Zephyr. | |
| int | zephyr_ll_task_sem_alloc (struct task *task) |
| Allocate a completion semaphore for a Low-Latency task. | |
| int | zephyr_ll_task_sem_free (struct task *task) |
| Free a completion semaphore for a Low-Latency task. | |
| struct ll_schedule_domain * | dma_multi_chan_domain_init (struct dma *dma_array, uint32_t num_dma, int clk, bool aggregated_irq) |
| Initialize multi-channel DMA scheduling domain. | |
| struct ll_schedule_domain * | dma_single_chan_domain_init (struct dma *dma_array, uint32_t num_dma, int clk) |
| Initialize single-channel DMA scheduling domain. | |
Low-Latency (LL) scheduling domain architecture, timer/DMA drivers, and core domain operations.