From c8572e49060fefdf6b0f2ffa4e144fc7c3c7c376 Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla Date: Fri, 11 Jun 2021 13:39:36 +0100 Subject: [PATCH] audioreach: subgraph: add stream vol subgraph Signed-off-by: Srinivas Kandagatla --- audioreach/audioreach.m4 | 2 + audioreach/subgraph-stream-vol-playback.m4 | 51 ++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 audioreach/subgraph-stream-vol-playback.m4 diff --git a/audioreach/audioreach.m4 b/audioreach/audioreach.m4 index 224b93f..db1456c 100644 --- a/audioreach/audioreach.m4 +++ b/audioreach/audioreach.m4 @@ -77,6 +77,7 @@ define(`MODULE_ID_PLACEHOLDER_ENCODER', `0x07001008') dnl define(`MODULE_ID_PLACEHOLDER_DECODER', `0x07001009') dnl define(`MODULE_ID_I2S_SINK', `0x0700100A') dnl define(`MODULE_ID_I2S_SOURCE', `0x0700100B') dnl +define(`MODULE_ID_VOL_CTRL', `0x0700101B') dnl dnl Linux frontend dai ids define(`FRONTEND_DAI_MULTIMEDIA1', `1') dnl define(`FRONTEND_DAI_MULTIMEDIA2', `2') dnl @@ -214,3 +215,4 @@ define(`TX_CODEC_DMA_TX_5', `124') dnl define(`RX_CODEC_DMA_RX_6', `125') dnl define(`RX_CODEC_DMA_RX_7', `126') dnl define(`SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX', `256') dnl +define(`SND_SOC_AR_TPLG_VOL_CTL', `257') dnl diff --git a/audioreach/subgraph-stream-vol-playback.m4 b/audioreach/subgraph-stream-vol-playback.m4 new file mode 100644 index 0000000..7c06b6e --- /dev/null +++ b/audioreach/subgraph-stream-vol-playback.m4 @@ -0,0 +1,51 @@ +include(`audioreach/audioreach.m4') dnl +include(`util/pcm.m4') dnl +include(`audioreach/subgraph.m4') dnl +include(`audioreach/container.m4') dnl +include(`audioreach/module_wrsh.m4') dnl +include(`audioreach/module_pcmdec.m4') dnl +include(`audioreach/module_pcmcnv.m4') dnl +include(`audioreach/module_vol_ctrl.m4') dnl +include(`audioreach/module_log.m4') dnl +include(`util/mixer.m4') dnl +dnl +# SubGraph for PCM Playback +# +# ______________________________________________________ +# | Sub Graph 1 | +# | [WR_SH] -> [PCM DEC] -> [PCM CONV] -> [VOL]-> [LOG] |---KCONTROL-- +# |______________________________________________________| +# +define(`WRSH_MODULE_IID', MOD_IID_START) dnl +define(`PCMDEC_MODULE_IID', eval(MOD_IID_START + 1)) dnl +define(`PCMCNV_MODULE_IID', eval(MOD_IID_START + 2)) dnl +define(`VOLCTRL_MODULE_IID', eval(MOD_IID_START + 3)) dnl +define(`LOG_MODULE_IID', eval(MOD_IID_START + 4)) dnl +dnl +dnl STREAM_PLAYBACK_ROUTE(stream-index) +define(`STREAM_PLAYBACK_ROUTE', +`' +`SectionGraph."NAME_PREFIX.$1 Graph" {' +` index STR($1)' +` lines [' +` "NAME_PREFIX.pcm_decoder$1, , NAME_PREFIX.wrsh_ep$1"' +` "NAME_PREFIX.pcm_converter$1, , NAME_PREFIX.pcm_decoder$1"' +` "NAME_PREFIX.vol_ctrl$1, , NAME_PREFIX.pcm_converter$1"' +` "NAME_PREFIX.logger$1, , NAME_PREFIX.vol_ctrl$1"' +` ]' +`}') + +dnl +AR_PCM_PLAYBACK(PCM_DAI_ID, PCM_FORMAT, PCM_MIN_RATE, PCM_MAX_RATE, PCM_MIN_CHANNELS, PCM_MAX_CHANNELS) + +AR_SUBGRAPH(PCM_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CONT_SENARIO_ID) + +AR_CONTAINER(PCM_INDEX, CONT_IID_START, APM_CONTAINER_CAP_ID_CD, 8192, APM_CONT_GRAPH_POS_STREAM, APM_PROC_DOMAIN_ID_ADSP) + +AR_MODULE_WRSH(PCM_INDEX, PCM_INDEX, PCM_INDEX, WRSH_MODULE_IID, 0, 1, 0, 0, 0, 2) +AR_MODULE_PCMDEC(PCM_INDEX, 1, 1, PCMDEC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED) +AR_MODULE_PCMCNV(PCM_INDEX, 1, 1, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_DEINTERLEAVED_UNPACKED) +AR_MODULE_VOL_CTRL(PCM_INDEX, 1, 1, VOLCTRL_MODULE_IID,1, 1, 2, 1, 1, 2) +AR_MODULE_LOG(PCM_INDEX, 1, 1, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0) +STREAM_PLAYBACK_MIXER(PCM_INDEX) +STREAM_PLAYBACK_ROUTE(PCM_INDEX)