123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright(c) 2021 Intel Corporation. All rights reserved.
- *
- * Authors: Cezary Rojewski <[email protected]>
- * Amadeusz Slawinski <[email protected]>
- */
- #ifndef __SOUND_SOC_INTEL_AVS_PATH_H
- #define __SOUND_SOC_INTEL_AVS_PATH_H
- #include <linux/list.h>
- #include "avs.h"
- #include "topology.h"
- struct avs_path {
- u32 dma_id;
- struct list_head ppl_list;
- u32 state;
- struct avs_tplg_path *template;
- struct avs_dev *owner;
- /* device path management */
- struct list_head node;
- };
- struct avs_path_pipeline {
- u8 instance_id;
- struct list_head mod_list;
- struct list_head binding_list;
- struct avs_tplg_pipeline *template;
- struct avs_path *owner;
- /* path pipelines management */
- struct list_head node;
- };
- struct avs_path_module {
- u16 module_id;
- u16 instance_id;
- union avs_gtw_attributes gtw_attrs;
- struct avs_tplg_module *template;
- struct avs_path_pipeline *owner;
- /* pipeline modules management */
- struct list_head node;
- };
- struct avs_path_binding {
- struct avs_path_module *source;
- u8 source_pin;
- struct avs_path_module *sink;
- u8 sink_pin;
- struct avs_tplg_binding *template;
- struct avs_path_pipeline *owner;
- /* pipeline bindings management */
- struct list_head node;
- };
- void avs_path_free(struct avs_path *path);
- struct avs_path *avs_path_create(struct avs_dev *adev, u32 dma_id,
- struct avs_tplg_path_template *template,
- struct snd_pcm_hw_params *fe_params,
- struct snd_pcm_hw_params *be_params);
- int avs_path_bind(struct avs_path *path);
- int avs_path_unbind(struct avs_path *path);
- int avs_path_reset(struct avs_path *path);
- int avs_path_pause(struct avs_path *path);
- int avs_path_run(struct avs_path *path, int trigger);
- #endif
|