|
Sound Open Firmware
|


Go to the source code of this file.
Data Structures | |
| struct | pipeline |
| struct | pipeline_walk_context |
| struct | pipeline_data |
| struct | pipeline_task |
| Task type registered by pipelines. More... | |
| struct | create_pipeline_params |
| For storing IPC payload data. More... | |
Macros | |
| #define | PPL_STATUS_PATH_STOP 1 |
| #define | PPL_STATUS_PATH_TERMINATE 2 |
| #define | PPL_STATUS_SCHEDULED 2 |
| #define | PPL_CONN_DIR_COMP_TO_BUFFER 0 |
| #define | PPL_CONN_DIR_BUFFER_TO_COMP 1 |
| #define | PPL_DIR_DOWNSTREAM 0 |
| #define | PPL_DIR_UPSTREAM 1 |
| #define | pipeline_task_get(t) |
Functions | |
| struct pipeline * | pipeline_new (struct k_heap *heap, uint32_t pipeline_id, uint32_t priority, uint32_t comp_id, struct create_pipeline_params *pparams) |
| Creates a new pipeline. | |
| int | pipeline_free (struct pipeline *p) |
| Free's a pipeline. | |
| int | pipeline_connect (struct comp_dev *comp, struct comp_buffer *buffer, int dir) |
| Connect components in a pipeline. | |
| void | pipeline_disconnect (struct comp_dev *comp, struct comp_buffer *buffer, int dir) |
| Creates a new pipeline. | |
| int | pipeline_complete (struct pipeline *p, struct comp_dev *source, struct comp_dev *sink) |
| Completes a pipeline. | |
| void | pipeline_posn_init (struct sof *sof) |
| Initializes pipeline position structure. | |
| int | pipeline_reset (struct pipeline *p, struct comp_dev *host_cd) |
| Resets the pipeline and free runtime resources. | |
| int | pipeline_for_each_comp (struct comp_dev *current, struct pipeline_walk_context *ctx, int dir) |
| Walks the pipeline graph for each component. | |
| struct comp_dev * | pipeline_get_dai_comp (uint32_t pipeline_id, int dir) |
| Walks pipeline graph to find dai component. | |
| static uint32_t | pipeline_id (struct pipeline *p) |
| Retrieves pipeline id from pipeline. | |
| int | pipeline_params (struct pipeline *p, struct comp_dev *cd, struct sof_ipc_pcm_params *params) |
| Creates a new pipeline. | |
| int | pipeline_prepare (struct pipeline *p, struct comp_dev *cd) |
| Prepares pipeline for processing. | |
| int | pipeline_trigger (struct pipeline *p, struct comp_dev *host, int cmd) |
| Trigger pipeline - IPC context. | |
| int | pipeline_trigger_run (struct pipeline *p, struct comp_dev *host, int cmd) |
| Trigger pipeline - either IPC or pipeline task context. | |
| int | pipeline_copy (struct pipeline *p) |
| Copy data along a pipeline. | |
| void | pipeline_get_timestamp (struct pipeline *p, struct comp_dev *host_dev, struct sof_ipc_stream_posn *posn) |
| Get time pipeline timestamps from host to dai. | |
| static bool | pipeline_is_same_sched_comp (struct pipeline *current, struct pipeline *previous) |
| Checks if two pipelines have the same scheduling component. | |
| static bool | pipeline_is_timer_driven (struct pipeline *p) |
| Is pipeline is scheduled with timer. | |
| static bool | pipeline_is_this_cpu (struct pipeline *p) |
| Is pipeline is scheduled on this core. | |
| int | pipeline_comp_ll_task_init (struct pipeline *p) |
| Init an LL task for a pipeline. | |
| void | pipeline_comp_ll_task_free (struct pipeline *p) |
| Free the LL tasks owned by a pipeline. | |
| int | pipeline_comp_dp_task_init (struct comp_dev *comp) |
| Init a DP task for a component. | |
| void | pipeline_schedule_copy (struct pipeline *p, uint64_t start) |
| Schedule a pipeline copy to run after a delay. | |
| void | pipeline_comp_trigger_sched_comp (struct pipeline *p, struct comp_dev *comp, struct pipeline_walk_context *ctx) |
| Trigger pipeline's scheduling component. | |
| void | pipeline_schedule_triggered (struct pipeline_walk_context *ctx, int cmd) |
| Schedule all triggered pipelines. | |
| void | pipeline_schedule_config (struct pipeline *p, uint32_t sched_id, uint32_t core, uint32_t period, uint32_t period_mips, uint32_t frames_per_sched, uint32_t time_domain) |
| Configure pipeline scheduling. | |
| int | pipeline_xrun_recover (struct pipeline *p) |
| Recover the pipeline from a XRUN condition. | |
| int | pipeline_xrun_handle_trigger (struct pipeline *p, int cmd) |
| Perform xrun recovery. | |
| void | pipeline_xrun (struct pipeline *p, struct comp_dev *dev, int32_t bytes) |
| notify host that we have XRUN. | |
| int | pipeline_xrun_set_limit (struct pipeline *p, uint32_t xrun_limit_usecs) |
| Set tolerance for pipeline xrun handling. | |
| void | pipeline_comp_copy_error_notify (const struct comp_dev *component, int error_code) |
| Sends an ipc notification that an error occurred in the module's processing function. | |
| #define pipeline_task_get | ( | t | ) |
| #define PPL_CONN_DIR_BUFFER_TO_COMP 1 |
| #define PPL_CONN_DIR_COMP_TO_BUFFER 0 |
| #define PPL_DIR_DOWNSTREAM 0 |
| #define PPL_DIR_UPSTREAM 1 |
| #define PPL_STATUS_PATH_STOP 1 |
| #define PPL_STATUS_PATH_TERMINATE 2 |
| #define PPL_STATUS_SCHEDULED 2 |
| void pipeline_comp_copy_error_notify | ( | const struct comp_dev * | component, |
| int | error_code ) |
Sends an ipc notification that an error occurred in the module's processing function.
| [in] | component | The component in which the error occurred. |
| [in] | error_code | Error code. |
| int pipeline_comp_dp_task_init | ( | struct comp_dev * | comp | ) |
Init a DP task for a component.
| [in] | comp | a component the task is created for |
| void pipeline_comp_ll_task_free | ( | struct pipeline * | p | ) |
Free the LL tasks owned by a pipeline.
| [in] | p | pipeline. |
| int pipeline_comp_ll_task_init | ( | struct pipeline * | p | ) |
Init an LL task for a pipeline.
| [in] | p | pipeline. |
| void pipeline_comp_trigger_sched_comp | ( | struct pipeline * | p, |
| struct comp_dev * | comp, | ||
| struct pipeline_walk_context * | ctx ) |
Trigger pipeline's scheduling component.
| [in] | p | pipeline. |
| [in,out] | comp | Pipeline component device. |
| [in] | ctx | Pipeline graph walk context. |
Completes a pipeline.
| [in] | p | pipeline. |
| [in] | source | Pipeline component device. |
| [in] | sink | Pipeline component device. |
| int pipeline_connect | ( | struct comp_dev * | comp, |
| struct comp_buffer * | buffer, | ||
| int | dir ) |
Connect components in a pipeline.
| [in] | comp | connecting component. |
| [in] | buffer | connecting buffer. |
| [in] | dir | Connection direction. |
| int pipeline_copy | ( | struct pipeline * | p | ) |
Copy data along a pipeline.
| [in] | p | pipeline. |
| void pipeline_disconnect | ( | struct comp_dev * | comp, |
| struct comp_buffer * | buffer, | ||
| int | dir ) |
Creates a new pipeline.
| [in] | comp | connecting component. |
| [in] | buffer | connecting buffer. |
| [in] | dir | Connection direction. |
| int pipeline_for_each_comp | ( | struct comp_dev * | current, |
| struct pipeline_walk_context * | ctx, | ||
| int | dir ) |
Walks the pipeline graph for each component.
| [in] | current | Current pipeline component. |
| [in] | ctx | Pipeline graph walk context. |
| [in] | dir | Walk direction. |
| int pipeline_free | ( | struct pipeline * | p | ) |
Free's a pipeline.
| [in] | p | pipeline. |
| struct comp_dev * pipeline_get_dai_comp | ( | uint32_t | pipeline_id, |
| int | dir ) |
Walks pipeline graph to find dai component.
| [in] | pipeline_id | is the start pipeline id. |
| [in] | dir | is the direction of the traversal. |
| void pipeline_get_timestamp | ( | struct pipeline * | p, |
| struct comp_dev * | host_dev, | ||
| struct sof_ipc_stream_posn * | posn ) |
Get time pipeline timestamps from host to dai.
| [in] | p | pipeline. |
| [in] | host_dev | Host DMA component. |
| [in,out] | posn | Pipeline stream position. |
|
inlinestatic |
Retrieves pipeline id from pipeline.
| p | pipeline. |
|
inlinestatic |
Checks if two pipelines have the same scheduling component.
| [in] | current | This pipeline. |
| [in] | previous | Other pipeline. |
|
inlinestatic |
Is pipeline is scheduled on this core.
| [in] | p | pipeline. |
|
inlinestatic |
Is pipeline is scheduled with timer.
| [in] | p | pipeline. |
| struct pipeline * pipeline_new | ( | struct k_heap * | heap, |
| uint32_t | pipeline_id, | ||
| uint32_t | priority, | ||
| uint32_t | comp_id, | ||
| struct create_pipeline_params * | pparams ) |
Creates a new pipeline.
| [in] | heap | Heap to allocate the pipeline on, or NULL for default. |
| [in] | pipeline_id | Pipeline ID number. |
| [in] | priority | Pipeline scheduling priority. |
| [in] | comp_id | Pipeline component ID number. |
| [in] | pparams | Pipeline parameters from IPC payload, maybe NULL. |
| int pipeline_params | ( | struct pipeline * | p, |
| struct comp_dev * | cd, | ||
| struct sof_ipc_pcm_params * | params ) |
Creates a new pipeline.
| [in] | p | pipeline. |
| [in] | cd | Pipeline component device. |
| [in] | params | Pipeline parameters. |
| void pipeline_posn_init | ( | struct sof * | sof | ) |
Initializes pipeline position structure.
| [in,out] | sof | Pointer to sof structure. |
Prepares pipeline for processing.
| [in] | p | pipeline. |
| [in,out] | cd | Pipeline component device. |
Resets the pipeline and free runtime resources.
| [in] | p | pipeline. |
| [in] | host_cd | Host DMA component device. |
| void pipeline_schedule_config | ( | struct pipeline * | p, |
| uint32_t | sched_id, | ||
| uint32_t | core, | ||
| uint32_t | period, | ||
| uint32_t | period_mips, | ||
| uint32_t | frames_per_sched, | ||
| uint32_t | time_domain ) |
Configure pipeline scheduling.
| [in] | p | pipeline. |
| [in] | sched_id | Scheduling component ID. |
| [in] | core | DSP core pipeline runs on. |
| [in] | period | Pipeline scheduling period in us. |
| [in] | period_mips | Pipeline worst case MCPS per period. |
| [in] | frames_per_sched | Pipeline frames processed per schedule. |
| [in] | time_domain | Pipeline scheduling time domain. |
| void pipeline_schedule_copy | ( | struct pipeline * | p, |
| uint64_t | start ) |
Schedule a pipeline copy to run after a delay.
| [in] | p | pipeline. |
| [in] | start | Pipeline start time in microseconds. |
| void pipeline_schedule_triggered | ( | struct pipeline_walk_context * | ctx, |
| int | cmd ) |
Schedule all triggered pipelines.
| [in] | ctx | Pipeline graph walk context. |
| [in] | cmd | Trigger command. |
Trigger pipeline - IPC context.
| [in] | p | pipeline. |
| [in] | host | Host DMA component. |
| [in] | cmd | Pipeline trigger command. |
Trigger pipeline - either IPC or pipeline task context.
| [in] | p | pipeline. |
| [in] | host | Host DMA component. |
| [in] | cmd | Pipeline trigger command. |
notify host that we have XRUN.
| [in] | p | pipeline. |
| [in] | dev | Pipeline component device. |
| [in] | bytes | Number of bytes we have over or under run. |
| int pipeline_xrun_handle_trigger | ( | struct pipeline * | p, |
| int | cmd ) |
Perform xrun recovery.
| [in] | p | pipeline. |
| [in] | cmd | Trigger command. |
| int pipeline_xrun_recover | ( | struct pipeline * | p | ) |
Recover the pipeline from a XRUN condition.
| [in] | p | pipeline. |
| int pipeline_xrun_set_limit | ( | struct pipeline * | p, |
| uint32_t | xrun_limit_usecs ) |
Set tolerance for pipeline xrun handling.
| [in] | p | pipeline. |
| [in] | xrun_limit_usecs | Limit in micro secs that pipeline will tolerate. |