Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • linaro/qcomlt/audioreach-topology
  • krzysztof.kozlowski/audioreach-topology
  • neil.armstrong/audioreach-topology
3 results
Show changes
Showing
with 332 additions and 53 deletions
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_I2S_RX(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dnl AR_MODULE_I2S_RX(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl hw-if-type, hw-if-idx, fmt, sd-line-idx, dev-name) dnl hw-if-type, hw-if-idx, fmt, sd-line-idx, dev-name, dst-iid)
define(`AR_MODULE_I2S_RX', define(`AR_MODULE_I2S_RX',
`' `'
`SectionVendorTuples."NAME_PREFIX.i2s_rx$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.i2s_rx$1_tuples" {'
...@@ -15,6 +17,8 @@ define(`AR_MODULE_I2S_RX', ...@@ -15,6 +17,8 @@ define(`AR_MODULE_I2S_RX',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($16)'
` AR_TKN_U32_MODULE_HW_IF_TYPE STR($11)' ` AR_TKN_U32_MODULE_HW_IF_TYPE STR($11)'
` AR_TKN_U32_MODULE_HW_IF_IDX STR($12)' ` AR_TKN_U32_MODULE_HW_IF_IDX STR($12)'
` AR_TKN_U32_MODULE_FMT_DATA STR($13)' ` AR_TKN_U32_MODULE_FMT_DATA STR($13)'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_LOG(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dnl AR_MODULE_LOG(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl log-code, log-tap-point, log-mode) dnl log-code, log-tap-point, log-mode, dst-iid)
define(`AR_MODULE_LOG', define(`AR_MODULE_LOG',
`' `'
`SectionVendorTuples."NAME_PREFIX.logger$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.logger$1_tuples" {'
...@@ -15,6 +17,8 @@ define(`AR_MODULE_LOG', ...@@ -15,6 +17,8 @@ define(`AR_MODULE_LOG',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($14)'
` AR_TKN_U32_MODULE_LOG_CODE STR($11)' ` AR_TKN_U32_MODULE_LOG_CODE STR($11)'
` AR_TKN_U32_MODULE_LOG_TAP_POINT_ID STR($12)' ` AR_TKN_U32_MODULE_LOG_TAP_POINT_ID STR($12)'
` AR_TKN_U32_MODULE_LOG_MODE STR($13)' ` AR_TKN_U32_MODULE_LOG_MODE STR($13)'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl
dnl AR_MODULE_MFC(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dst-iid)
define(`AR_MODULE_MFC',
`'
`SectionVendorTuples."NAME_PREFIX.mfc$1_tuples" {'
` tokens "audioreach_tokens"'
`'
` tuples."word.u32_data" {'
` AR_TKN_U32_MODULE_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_ID STR(MODULE_ID_MFC)'
` AR_TKN_U32_MODULE_MAX_IP_PORTS STR($5)'
` AR_TKN_U32_MODULE_MAX_OP_PORTS STR($6)'
` AR_TKN_U32_MODULE_IN_PORTS STR($7)'
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($11)'
` }'
`}'
`'
`SectionData."NAME_PREFIX.mfc$1_data" {'
` tuples "NAME_PREFIX.mfc$1_tuples"'
`}'
`'
`SectionWidget."NAME_PREFIX.mfc$1" {'
` index STR($1)'
` type "src"'
` no_pm "true"'
` subseq "10"'
` data ['
` "NAME_PREFIX.sub_graph$2_data"'
` "NAME_PREFIX.container$3_data"'
` "NAME_PREFIX.mfc$1_data"'
` ]'
`}') dnl
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_PCMCNV(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dnl AR_MODULE_PCMCNV(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl interleave) dnl interleave, dst-iid)
define(`AR_MODULE_PCMCNV', define(`AR_MODULE_PCMCNV',
`' `'
`SectionVendorTuples."NAME_PREFIX.pcm_converter$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.pcm_converter$1_tuples" {'
...@@ -15,6 +17,8 @@ define(`AR_MODULE_PCMCNV', ...@@ -15,6 +17,8 @@ define(`AR_MODULE_PCMCNV',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($12)'
` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)' ` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)'
` }' ` }'
`}' `}'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_PCMDEC(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dnl AR_MODULE_PCMDEC(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl interleav) dnl interleav, dst-iid)
define(`AR_MODULE_PCMDEC', define(`AR_MODULE_PCMDEC',
`' `'
`SectionVendorTuples."NAME_PREFIX.pcm_decoder$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.pcm_decoder$1_tuples" {'
...@@ -15,6 +17,8 @@ define(`AR_MODULE_PCMDEC', ...@@ -15,6 +17,8 @@ define(`AR_MODULE_PCMDEC',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($12)'
` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)' ` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)'
` }' ` }'
`}' `}'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_PCMENC(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dnl AR_MODULE_PCMENC(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl interleav) dnl interleav, dst-iid)
define(`AR_MODULE_PCMENC', define(`AR_MODULE_PCMENC',
`' `'
`SectionVendorTuples."NAME_PREFIX.pcm_encoder$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.pcm_encoder$1_tuples" {'
...@@ -15,6 +17,8 @@ define(`AR_MODULE_PCMENC', ...@@ -15,6 +17,8 @@ define(`AR_MODULE_PCMENC',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($12)'
` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)' ` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)'
` }' ` }'
`}' `}'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl
dnl AR_MODULE_PLACEHOLDER_DECODER(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl interleav, dst-iid)
define(`AR_MODULE_PLACEHOLDER_DECODER',
`'
`SectionVendorTuples."NAME_PREFIX.placeholder_decoder$1_tuples" {'
` tokens "audioreach_tokens"'
`'
` tuples."word.u32_data" {'
` AR_TKN_U32_MODULE_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_ID STR(MODULE_ID_PLACEHOLDER_DECODER)'
` AR_TKN_U32_MODULE_MAX_IP_PORTS STR($5)'
` AR_TKN_U32_MODULE_MAX_OP_PORTS STR($6)'
` AR_TKN_U32_MODULE_IN_PORTS STR($7)'
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($12)'
` AR_TKN_U32_MODULE_FMT_INTERLEAVE STR($11)'
` }'
`}'
`'
`SectionData."NAME_PREFIX.placeholder_decoder$1_data" {'
` tuples "NAME_PREFIX.placeholder_decoder$1_tuples"'
`}'
`'
`SectionWidget."NAME_PREFIX.placeholder_decoder$1" {'
` index STR($1)'
` type "decoder"'
` no_pm "true"'
` subseq "10"'
` data ['
` "NAME_PREFIX.sub_graph$2_data"'
` "NAME_PREFIX.container$3_data"'
` "NAME_PREFIX.placeholder_decoder$1_data"'
` ]'
`}') dnl
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_RDSH(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, pcm-idx) dnl AR_MODULE_RDSH(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, pcm-idx, dst-iid)
define(`AR_MODULE_RDSH', define(`AR_MODULE_RDSH',
`' `'
`SectionVendorTuples."NAME_PREFIX.rdsh_ep$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.rdsh_ep$1_tuples" {'
...@@ -13,6 +15,8 @@ define(`AR_MODULE_RDSH', ...@@ -13,6 +15,8 @@ define(`AR_MODULE_RDSH',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($12)'
` }' ` }'
`}' `}'
`' `'
...@@ -24,7 +28,7 @@ define(`AR_MODULE_RDSH', ...@@ -24,7 +28,7 @@ define(`AR_MODULE_RDSH',
` index STR($1)' ` index STR($1)'
` type "aif_out"' ` type "aif_out"'
` no_pm "true"' ` no_pm "true"'
` stream_name "MultiMedia$11 Capture"' ` stream_name "`MultiMedia'eval($11 + 1)` Capture'"'
` subseq "10"' ` subseq "10"'
` data [' ` data ['
` "NAME_PREFIX.sub_graph$2_data"' ` "NAME_PREFIX.sub_graph$2_data"'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_VOL_CTRL(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dnl AR_MODULE_VOL_CTRL(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, dist-iid
define(`AR_MODULE_VOL_CTRL', define(`AR_MODULE_VOL_CTRL',
`SectionVendorTuples."NAME_PREFIX.vol_ctrl$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.vol_ctrl$1_tuples" {'
` tokens "audioreach_tokens"' ` tokens "audioreach_tokens"'
...@@ -13,6 +15,8 @@ define(`AR_MODULE_VOL_CTRL', ...@@ -13,6 +15,8 @@ define(`AR_MODULE_VOL_CTRL',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($11)'
` }' ` }'
`}' `}'
`' `'
...@@ -33,18 +37,18 @@ define(`AR_MODULE_VOL_CTRL', ...@@ -33,18 +37,18 @@ define(`AR_MODULE_VOL_CTRL',
` "NAME_PREFIX.vol_ctrl$1_data"' ` "NAME_PREFIX.vol_ctrl$1_data"'
` ]' ` ]'
` mixer [' ` mixer ['
` "MultiMedia$1 Playback Volume"' ` "`MultiMedia'eval($1 + 1)` Playback Volume'"'
` ]' ` ]'
`}' `}'
`' `'
`SectionTLV."MultiMedia$1_playback_vol_ctrl_tlv" {' `SectionTLV."`MultiMedia'eval($1 + 1)`_playback_vol_ctrl_tlv'" {'
` scale {' ` scale {'
` min "0"' ` min "0"'
` step "100"' ` step "100"'
` mute "0"' ` mute "0"'
` }' ` }'
`}' `}'
`SectionControlMixer."MultiMedia$1 Playback Volume" {' `SectionControlMixer."`MultiMedia'eval($1 + 1)` Playback Volume'" {'
` Comment "Stream Global volume"' ` Comment "Stream Global volume"'
`' `'
` # control belongs to this index group' ` # control belongs to this index group'
...@@ -70,5 +74,5 @@ define(`AR_MODULE_VOL_CTRL', ...@@ -70,5 +74,5 @@ define(`AR_MODULE_VOL_CTRL',
` get "257"' ` get "257"'
` put "257"' ` put "257"'
` }' ` }'
` tlv "MultiMedia$1_playback_vol_ctrl_tlv"' ` tlv "`MultiMedia'eval($1 + 1)`_playback_vol_ctrl_tlv'"'
`}') dnl `}') dnl
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_MODULE_WRSH(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, pcm-index) dnl AR_MODULE_WRSH(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port, pcm-index, dst-iid)
define(`AR_MODULE_WRSH', define(`AR_MODULE_WRSH',
`' `'
`SectionVendorTuples."NAME_PREFIX.wrsh_ep$1_tuples" {' `SectionVendorTuples."NAME_PREFIX.wrsh_ep$1_tuples" {'
...@@ -13,6 +15,8 @@ define(`AR_MODULE_WRSH', ...@@ -13,6 +15,8 @@ define(`AR_MODULE_WRSH',
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)' ` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)' ` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)' ` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($12)'
` }' ` }'
`}' `}'
`' `'
...@@ -24,7 +28,7 @@ define(`AR_MODULE_WRSH', ...@@ -24,7 +28,7 @@ define(`AR_MODULE_WRSH',
` index STR($1)' ` index STR($1)'
` type "aif_in"' ` type "aif_in"'
` no_pm "true"' ` no_pm "true"'
` stream_name "MultiMedia$11 Playback"' ` stream_name "`MultiMedia'eval($11 + 1)` Playback'"'
` subseq "10"' ` subseq "10"'
` data [' ` data ['
` "NAME_PREFIX.sub_graph$2_data"' ` "NAME_PREFIX.sub_graph$2_data"'
......
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
dnl STREAM_SG_PCM_ADD(stream, stream-dai-id, dnl STREAM_SG_PCM_ADD(stream, stream-dai-id,
dnl format, min-rate, max-rate, min-channels, max-hcannels, dnl format, min-rate, max-rate, min-channels, max-hcannels,
dnl sg-iid-start, cont-iid-start, mod-iid-start) dnl sg-iid-start, cont-iid-start, mod-iid-start, lpass-ver-compat)
define(`STREAM_SG_PCM_ADD', define(`STREAM_SG_PCM_ADD',
`undefine(`PCM_DAI_ID') dnl' `undefine(`PCM_DAI_ID') dnl'
`undefine(`PCM_FORMAT') dnl' `undefine(`PCM_FORMAT') dnl'
...@@ -21,5 +23,6 @@ define(`STREAM_SG_PCM_ADD', ...@@ -21,5 +23,6 @@ define(`STREAM_SG_PCM_ADD',
`define(`CONT_IID_START', `$9') dnl' `define(`CONT_IID_START', `$9') dnl'
`define(`MOD_IID_START', `$10') dnl' `define(`MOD_IID_START', `$10') dnl'
`define(`NAME_PREFIX', `stream$2') dnl' `define(`NAME_PREFIX', `stream$2') dnl'
`define(`LPASS_VER_COMPAT', `$11') dnl'
`include($1)') dnl `include($1)') dnl
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
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_placeholder_decoder.m4') dnl
include(`audioreach/module_mfc.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] |---Mixer--
# |______________________________________________________|
#
undefine(`PCM_PERF_MODE') dnl
undefine(`PCM_DIRECTION') dnl
undefine(`CONT_SENARIO_ID') dnl
undefine(`CONT_CAP') dnl
undefine(`CONT_POSITION') dnl
undefine(`PCM_DOMAIN_ID') dnl
undefine(`CONT_STACK_SIZE') dnl
define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_RX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_CD) dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM) dnl'
define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl'
define(`WRSH_MODULE_IID', MOD_IID_START) dnl
define(`PHDEC_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
define(`SG_INDEX', 1) dnl
define(`CONTAINER_INDEX', 1) dnl
define(`MOD_INDEX', 1) dnl
dnl
dnl STREAM_PLAYBACK_ROUTE(stream-index)
define(`STREAM_PLAYBACK_ROUTE',
`'
`SectionGraph."NAME_PREFIX.$2 Graph" {'
` index STR($2)'
` lines ['
` "NAME_PREFIX.placeholder_decoder$2, , NAME_PREFIX.wrsh_ep$2"'
` "NAME_PREFIX.pcm_converter$2, , NAME_PREFIX.placeholder_decoder$2"'
` "NAME_PREFIX.vol_ctrl$1, , NAME_PREFIX.pcm_converter$2"'
` "NAME_PREFIX.logger$2, , NAME_PREFIX.vol_ctrl$1"'
` ]'
`}')
dnl
AR_COMPESS_PLAYBACK(PCM_DAI_ID, PCM_FORMAT, PCM_MIN_RATE, PCM_MAX_RATE, PCM_MIN_CHANNELS, PCM_MAX_CHANNELS)
AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, APM_CONTAINER_CAP_ID_CD, 8192, APM_CONT_GRAPH_POS_STREAM, APM_PROC_DOMAIN_ID_ADSP)
AR_MODULE_WRSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, WRSH_MODULE_IID, 0, 1, 0, 0, 1, 2, PCM_DAI_ID, PHDEC_MODULE_IID)
AR_MODULE_PLACEHOLDER_DECODER(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PHDEC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED,PCMCNV_MODULE_IID)
AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_DEINTERLEAVED_UNPACKED,VOLCTRL_MODULE_IID)
AR_MODULE_VOL_CTRL(PCM_DAI_ID, SG_INDEX, CONTAINER_INDEX, VOLCTRL_MODULE_IID,1, 1, 2, 1, 1, 2,LOG_MODULE_IID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0, NONE_IID)
STREAM_PLAYBACK_MIXER(PCM_DAI_ID, SG_INDEX)
STREAM_PLAYBACK_ROUTE(PCM_DAI_ID, MOD_INDEX)
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl include(`audioreach/subgraph.m4') dnl
...@@ -28,7 +30,7 @@ undefine(`CONT_STACK_SIZE') dnl ...@@ -28,7 +30,7 @@ undefine(`CONT_STACK_SIZE') dnl
define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl' define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_RECORD) dnl' define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_RECORD) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_EP) dnl' define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_EP)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_GLOBAL_DEV)dnl' define(`CONT_POSITION', APM_CONT_GRAPH_POS_GLOBAL_DEV)dnl'
define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl' define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl' define(`CONT_STACK_SIZE', 8192) dnl'
...@@ -54,8 +56,8 @@ AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRE ...@@ -54,8 +56,8 @@ AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRE
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID) AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID)
AR_MODULE_CODEC_DMA_TX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, CDC_DMA_MODULE_IID, 0, 1, 0, 2, 0, 2, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, `DEVICE_NAME') AR_MODULE_CODEC_DMA_TX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, CDC_DMA_MODULE_IID, 0, 1, 0, 2, 1, 2, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, `DEVICE_NAME', LOG_MODULE_IID)
AR_MODULE_LOG( MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0) AR_MODULE_LOG( MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0, NONE_IID)
dnl kcontrol switch dnl kcontrol switch
DEVICE_CAPTURE_MIXER(SG_INDEX, `DEVICE_NAME') DEVICE_CAPTURE_MIXER(SG_INDEX, `DEVICE_NAME')
DEVICE_CAPTURE_ROUTE(MOD_INDEX, `DEVICE_NAME') DEVICE_CAPTURE_ROUTE(MOD_INDEX, `DEVICE_NAME')
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl include(`audioreach/subgraph.m4') dnl
include(`audioreach/container.m4') dnl include(`audioreach/container.m4') dnl
include(`audioreach/module_mfc.m4') dnl
include(`audioreach/module_log.m4') dnl include(`audioreach/module_log.m4') dnl
include(`audioreach/module_codec_dma.m4') dnl include(`audioreach/module_codec_dma.m4') dnl
include(`util/mixer.m4') dnl include(`util/mixer.m4') dnl
...@@ -27,16 +30,19 @@ undefine(`CONT_POSITION') dnl ...@@ -27,16 +30,19 @@ undefine(`CONT_POSITION') dnl
undefine(`DEVICE_DOMAIN_ID') dnl undefine(`DEVICE_DOMAIN_ID') dnl
undefine(`CONT_STACK_SIZE') dnl undefine(`CONT_STACK_SIZE') dnl
define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_RX) dnl'
define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl' define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl' define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_EP) dnl' define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_EP)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM)dnl' define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM)dnl'
define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl' define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl' define(`CONT_STACK_SIZE', 8192) dnl'
dnl dnl
define(`LOG_MODULE_IID', MOD_IID_START) dnl define(`LOG_MODULE_IID', MOD_IID_START) dnl
define(`CDC_DMA_MODULE_IID', eval(MOD_IID_START + 1)) dnl define(`MFC_MODULE_IID', eval(MOD_IID_START + 1)) dnl
define(`CDC_DMA_MODULE_IID', eval(MOD_IID_START + 2)) dnl
define(`SG_INDEX', 1) dnl define(`SG_INDEX', 1) dnl
define(`CONTAINER_INDEX', 1) dnl define(`CONTAINER_INDEX', 1) dnl
define(`MOD_INDEX', 1) dnl define(`MOD_INDEX', 1) dnl
...@@ -48,7 +54,8 @@ define(`DEVICE_PLAYBACK_ROUTE', ...@@ -48,7 +54,8 @@ define(`DEVICE_PLAYBACK_ROUTE',
` index STR($1)' ` index STR($1)'
` lines [' ` lines ['
` "NAME_PREFIX.logger$1, , $2 Audio Mixer"' ` "NAME_PREFIX.logger$1, , $2 Audio Mixer"'
` "NAME_PREFIX.codec_dma_rx$1, , NAME_PREFIX.logger$1"' ` "NAME_PREFIX.mfc$1, , NAME_PREFIX.logger$1"'
` "NAME_PREFIX.codec_dma_rx$1, , NAME_PREFIX.mfc$1"'
` "$2 Playback, , NAME_PREFIX.codec_dma_rx$1"' ` "$2 Playback, , NAME_PREFIX.codec_dma_rx$1"'
` ]' ` ]'
`}') `}')
...@@ -56,7 +63,8 @@ define(`DEVICE_PLAYBACK_ROUTE', ...@@ -56,7 +63,8 @@ define(`DEVICE_PLAYBACK_ROUTE',
AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRECTION, CONT_SENARIO_ID) AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID) AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0) AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0, MFC_MODULE_IID)
AR_MODULE_CODEC_DMA_RX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, CDC_DMA_MODULE_IID, 1, 0, 2, 0, 1, 0, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, `DEVICE_NAME') AR_MODULE_MFC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, MFC_MODULE_IID, 1, 1, 2, 1, 1, 2, CDC_DMA_MODULE_IID)
AR_MODULE_CODEC_DMA_RX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, CDC_DMA_MODULE_IID, 1, 0, 2, 0, 1, 0, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, `DEVICE_NAME', NONE_IID)
DEVICE_PLAYBACK_ROUTE(MOD_INDEX, `DEVICE_NAME') DEVICE_PLAYBACK_ROUTE(MOD_INDEX, `DEVICE_NAME')
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl
include(`audioreach/container.m4') dnl
include(`audioreach/module_log.m4') dnl
include(`audioreach/module_dp.m4') dnl
include(`util/mixer.m4') dnl
dnl
#
# SubGraph for Device Backend
#
# ______________________
# | Sub Graph |
# | [LOG] -> [DEVICE EP] |
# |______________________|
undefine(`DISPLAY_PORT_SINK_MODULE_IID') dnl
undefine(`LOG_MODULE_IID') dnl
undefine(`SG_INDEX') dnl
undefine(`CONTAINER_INDEX') dnl
undefine(`DEVICE_PERF_MODE') dnl
undefine(`DEICE_DIRECTION') dnl
undefine(`CONT_SENARIO_ID') dnl
undefine(`CONT_CAP') dnl
undefine(`CONT_POSITION') dnl
undefine(`DEVICE_DOMAIN_ID') dnl
undefine(`CONT_STACK_SIZE') dnl
define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl'
define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_EP)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM)dnl'
define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl'
dnl
define(`LOG_MODULE_IID', MOD_IID_START) dnl
define(`DISPLAY_PORT_SINK_MODULE_IID', eval(MOD_IID_START + 1)) dnl
define(`SG_INDEX', 1) dnl
define(`CONTAINER_INDEX', 1) dnl
define(`MOD_INDEX', 1) dnl
dnl
dnl DEVICE_PLAYBACK_ROUTE(stream-index, dai-id, mixer-prefix)
define(`DEVICE_PLAYBACK_ROUTE',
`'
`SectionGraph."NAME_PREFIX.$1 $2 Graph" {'
` index STR($1)'
` lines ['
` "NAME_PREFIX.logger$1, , $3 Audio Mixer"'
` "NAME_PREFIX.display_port_rx$1, , NAME_PREFIX.logger$1"'
` "$2 Playback, , NAME_PREFIX.display_port_rx$1"'
` ]'
`}')
AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0, DISPLAY_PORT_SINK_MODULE_IID)
AR_MODULE_DISPLAY_PORT_SINK(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, DISPLAY_PORT_SINK_MODULE_IID, 1, 0, 2, 0, 1, 0, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, `DEVICE_NAME', NONE_IID)
DEVICE_PLAYBACK_ROUTE(MOD_INDEX, `DEVICE_NAME', `MIXER_PREFIX')
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl include(`audioreach/subgraph.m4') dnl
...@@ -30,7 +32,7 @@ undefine(`CONT_STACK_SIZE') dnl ...@@ -30,7 +32,7 @@ undefine(`CONT_STACK_SIZE') dnl
define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`DEVICE_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl' define(`DEVICE_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl' define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_EP) dnl' define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_EP)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM)dnl' define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM)dnl'
define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl' define(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl' define(`CONT_STACK_SIZE', 8192) dnl'
...@@ -44,10 +46,10 @@ dnl ...@@ -44,10 +46,10 @@ dnl
dnl DEVICE_PLAYBACK_ROUTE(stream-index, dai-id) dnl DEVICE_PLAYBACK_ROUTE(stream-index, dai-id)
define(`DEVICE_PLAYBACK_ROUTE', define(`DEVICE_PLAYBACK_ROUTE',
`' `'
`SectionGraph."NAME_PREFIX.$1 $2 Graph" {' `SectionGraph."NAME_PREFIX.$1 $3 Graph" {'
` index STR($1)' ` index STR($1)'
` lines [' ` lines ['
` "NAME_PREFIX.logger$1, , $2 Audio Mixer"' ` "NAME_PREFIX.logger$1, , $3 Audio Mixer"'
` "NAME_PREFIX.i2s_rx$1, , NAME_PREFIX.logger$1"' ` "NAME_PREFIX.i2s_rx$1, , NAME_PREFIX.logger$1"'
` "$2 MI2S Playback, , NAME_PREFIX.i2s_rx$1"' ` "$2 MI2S Playback, , NAME_PREFIX.i2s_rx$1"'
` ]' ` ]'
...@@ -57,7 +59,7 @@ define(`DEVICE_PLAYBACK_ROUTE', ...@@ -57,7 +59,7 @@ define(`DEVICE_PLAYBACK_ROUTE',
AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRECTION, CONT_SENARIO_ID) AR_SUBGRAPH(SG_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID) AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0) AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0,I2S_MODULE_IID )
AR_MODULE_I2S_RX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, I2S_MODULE_IID, 1, 0, 2, 0, 1, 0, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, DEVICE_SD_LINE_IDX, `DEVICE_NAME') AR_MODULE_I2S_RX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, I2S_MODULE_IID, 1, 0, 2, 0, 1, 0, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, DEVICE_SD_LINE_IDX, `DEVICE_NAME', NONE_IID)
DEVICE_PLAYBACK_ROUTE(MOD_INDEX, `DEVICE_NAME', `MIXER_PREFIX') DEVICE_PLAYBACK_ROUTE(MOD_INDEX, `DEVICE_NAME', `MIXER_PREFIX')
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl include(`audioreach/subgraph.m4') dnl
include(`audioreach/container.m4') dnl include(`audioreach/container.m4') dnl
include(`audioreach/module_rdsh.m4') dnl include(`audioreach/module_rdsh.m4') dnl
include(`audioreach/module_pcmenc.m4') dnl include(`audioreach/module_pcmenc.m4') dnl
include(`audioreach/module_mfc.m4') dnl
include(`audioreach/module_pcmcnv.m4') dnl include(`audioreach/module_pcmcnv.m4') dnl
include(`audioreach/module_log.m4') dnl include(`audioreach/module_log.m4') dnl
include(`util/mixer.m4') dnl include(`util/mixer.m4') dnl
...@@ -27,15 +30,16 @@ undefine(`CONT_STACK_SIZE') dnl ...@@ -27,15 +30,16 @@ undefine(`CONT_STACK_SIZE') dnl
define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl' define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_TX) dnl'
define(`CONT_SENARIO_ID', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`CONT_SENARIO_ID', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_CD) dnl' define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_CD)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_GLOBAL_DEV) dnl' define(`CONT_POSITION', APM_CONT_GRAPH_POS_GLOBAL_DEV) dnl'
define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl' define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl' define(`CONT_STACK_SIZE', 8192) dnl'
define(`LOG_MODULE_IID', MOD_IID_START) dnl define(`LOG_MODULE_IID', MOD_IID_START) dnl
define(`PCMCNV_MODULE_IID', eval(MOD_IID_START + 1)) dnl define(`MFC_MODULE_IID', eval(MOD_IID_START + 1)) dnl
define(`PCMENC_MODULE_IID', eval(MOD_IID_START + 2)) dnl define(`PCMCNV_MODULE_IID', eval(MOD_IID_START + 2)) dnl
define(`RDSH_MODULE_IID', eval(MOD_IID_START + 3)) dnl define(`PCMENC_MODULE_IID', eval(MOD_IID_START + 3)) dnl
define(`RDSH_MODULE_IID', eval(MOD_IID_START + 4)) dnl
define(`SG_INDEX', 1) dnl define(`SG_INDEX', 1) dnl
define(`CONTAINER_INDEX', 1) dnl define(`CONTAINER_INDEX', 1) dnl
define(`MOD_INDEX', 1) dnl define(`MOD_INDEX', 1) dnl
...@@ -46,8 +50,9 @@ define(`STREAM_CAPTURE_ROUTE', ...@@ -46,8 +50,9 @@ define(`STREAM_CAPTURE_ROUTE',
`SectionGraph."NAME_PREFIX.$1 Graph" {' `SectionGraph."NAME_PREFIX.$1 Graph" {'
` index STR($1)' ` index STR($1)'
` lines [' ` lines ['
` "NAME_PREFIX.logger$1, , MultiMedia$2 Mixer"' ` "NAME_PREFIX.logger$1, , `MultiMedia'eval($2 + 1)` Mixer'"'
` "NAME_PREFIX.pcm_converter$1, , NAME_PREFIX.logger$1"' ` "NAME_PREFIX.mfc$1, , NAME_PREFIX.logger$1"'
` "NAME_PREFIX.pcm_converter$1, , NAME_PREFIX.mfc$1"'
` "NAME_PREFIX.pcm_encoder$1, , NAME_PREFIX.pcm_converter$1"' ` "NAME_PREFIX.pcm_encoder$1, , NAME_PREFIX.pcm_converter$1"'
` "NAME_PREFIX.rdsh_ep$1, , NAME_PREFIX.pcm_encoder$1"' ` "NAME_PREFIX.rdsh_ep$1, , NAME_PREFIX.pcm_encoder$1"'
` ]' ` ]'
...@@ -60,9 +65,10 @@ AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CO ...@@ -60,9 +65,10 @@ AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CO
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, PCM_DOMAIN_ID) AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, PCM_DOMAIN_ID)
dnl AR_MODULE_LOG(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-mod, src-port, dst-mod, dst-port, dnl AR_MODULE_LOG(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-mod, src-port, dst-mod, dst-port,
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0) AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0,MFC_MODULE_IID)
AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED) AR_MODULE_MFC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, MFC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCMCNV_MODULE_IID)
AR_MODULE_PCMENC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMENC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED) AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED, PCMENC_MODULE_IID)
AR_MODULE_RDSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, RDSH_MODULE_IID, 1, 0, 2, 0, 1, 0, PCM_DAI_ID) AR_MODULE_PCMENC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMENC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED, RDSH_MODULE_IID)
AR_MODULE_RDSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, RDSH_MODULE_IID, 1, 0, 2, 0, 1, 0, PCM_DAI_ID, NONE_IID)
STREAM_CAPTURE_ROUTE(MOD_INDEX, PCM_DAI_ID) STREAM_CAPTURE_ROUTE(MOD_INDEX, PCM_DAI_ID)
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl include(`audioreach/subgraph.m4') dnl
...@@ -26,7 +28,7 @@ undefine(`CONT_STACK_SIZE') dnl ...@@ -26,7 +28,7 @@ undefine(`CONT_STACK_SIZE') dnl
define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_RX) dnl' define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_RX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl' define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_CD) dnl' define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_CD)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM) dnl' define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM) dnl'
define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl' define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl' define(`CONT_STACK_SIZE', 8192) dnl'
...@@ -57,11 +59,11 @@ AR_PCM_PLAYBACK(PCM_DAI_ID, PCM_FORMAT, PCM_MIN_RATE, PCM_MAX_RATE, PCM_MIN_CHAN ...@@ -57,11 +59,11 @@ AR_PCM_PLAYBACK(PCM_DAI_ID, PCM_FORMAT, PCM_MIN_RATE, PCM_MAX_RATE, PCM_MIN_CHAN
AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CONT_SENARIO_ID) AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, APM_CONTAINER_CAP_ID_CD, 8192, APM_CONT_GRAPH_POS_STREAM, APM_PROC_DOMAIN_ID_ADSP) AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, APM_CONT_GRAPH_POS_STREAM, APM_PROC_DOMAIN_ID_ADSP)
AR_MODULE_WRSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, WRSH_MODULE_IID, 0, 1, 0, 0, 0, 2, PCM_DAI_ID) AR_MODULE_WRSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, WRSH_MODULE_IID, 0, 1, 0, 0, 0, 2, PCM_DAI_ID,PCMDEC_MODULE_IID)
AR_MODULE_PCMDEC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMDEC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED) AR_MODULE_PCMDEC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMDEC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED, PCMCNV_MODULE_IID)
AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_DEINTERLEAVED_UNPACKED) AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_DEINTERLEAVED_UNPACKED, LOG_MODULE_IID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0) AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0, NONE_IID)
STREAM_PLAYBACK_MIXER(PCM_DAI_ID, SG_INDEX) STREAM_PLAYBACK_MIXER(PCM_DAI_ID, SG_INDEX)
STREAM_PLAYBACK_ROUTE(MOD_INDEX) STREAM_PLAYBACK_ROUTE(MOD_INDEX)
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`audioreach/audioreach.m4') dnl include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl include(`audioreach/subgraph.m4') dnl
include(`audioreach/container.m4') dnl include(`audioreach/container.m4') dnl
include(`audioreach/module_wrsh.m4') dnl include(`audioreach/module_wrsh.m4') dnl
include(`audioreach/module_pcmdec.m4') dnl include(`audioreach/module_pcmdec.m4') dnl
include(`audioreach/module_mfc.m4') dnl
include(`audioreach/module_pcmcnv.m4') dnl include(`audioreach/module_pcmcnv.m4') dnl
include(`audioreach/module_vol_ctrl.m4') dnl include(`audioreach/module_vol_ctrl.m4') dnl
include(`audioreach/module_log.m4') dnl include(`audioreach/module_log.m4') dnl
...@@ -27,7 +30,7 @@ undefine(`CONT_STACK_SIZE') dnl ...@@ -27,7 +30,7 @@ undefine(`CONT_STACK_SIZE') dnl
define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl' define(`PCM_PERF_MODE', APM_SG_PERF_MODE_LOW_LATENCY) dnl'
define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_RX) dnl' define(`PCM_DIRECTION', APM_SUB_GRAPH_DIRECTION_RX) dnl'
define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl' define(`CONT_SENARIO_ID', APM_SUB_GRAPH_SID_AUDIO_PLAYBACK) dnl'
define(`CONT_CAP', APM_CONTAINER_CAP_ID_CD) dnl' define(`CONT_CAP', `ifelse(LPASS_VER_COMPAT, 110000, APM_CONTAINER_TYPE_ID_GC, APM_CONTAINER_CAP_ID_CD)') dnl'
define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM) dnl' define(`CONT_POSITION', APM_CONT_GRAPH_POS_STREAM) dnl'
define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl' define(`PCM_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
define(`CONT_STACK_SIZE', 8192) dnl' define(`CONT_STACK_SIZE', 8192) dnl'
...@@ -36,7 +39,8 @@ define(`WRSH_MODULE_IID', MOD_IID_START) dnl ...@@ -36,7 +39,8 @@ define(`WRSH_MODULE_IID', MOD_IID_START) dnl
define(`PCMDEC_MODULE_IID', eval(MOD_IID_START + 1)) dnl define(`PCMDEC_MODULE_IID', eval(MOD_IID_START + 1)) dnl
define(`PCMCNV_MODULE_IID', eval(MOD_IID_START + 2)) dnl define(`PCMCNV_MODULE_IID', eval(MOD_IID_START + 2)) dnl
define(`VOLCTRL_MODULE_IID', eval(MOD_IID_START + 3)) dnl define(`VOLCTRL_MODULE_IID', eval(MOD_IID_START + 3)) dnl
define(`LOG_MODULE_IID', eval(MOD_IID_START + 4)) dnl define(`MFC_MODULE_IID', eval(MOD_IID_START + 4)) dnl
define(`LOG_MODULE_IID', eval(MOD_IID_START + 5)) dnl
define(`SG_INDEX', 1) dnl define(`SG_INDEX', 1) dnl
define(`CONTAINER_INDEX', 1) dnl define(`CONTAINER_INDEX', 1) dnl
define(`MOD_INDEX', 1) dnl define(`MOD_INDEX', 1) dnl
...@@ -51,7 +55,8 @@ define(`STREAM_PLAYBACK_ROUTE', ...@@ -51,7 +55,8 @@ define(`STREAM_PLAYBACK_ROUTE',
` "NAME_PREFIX.pcm_decoder$2, , NAME_PREFIX.wrsh_ep$2"' ` "NAME_PREFIX.pcm_decoder$2, , NAME_PREFIX.wrsh_ep$2"'
` "NAME_PREFIX.pcm_converter$2, , NAME_PREFIX.pcm_decoder$2"' ` "NAME_PREFIX.pcm_converter$2, , NAME_PREFIX.pcm_decoder$2"'
` "NAME_PREFIX.vol_ctrl$1, , NAME_PREFIX.pcm_converter$2"' ` "NAME_PREFIX.vol_ctrl$1, , NAME_PREFIX.pcm_converter$2"'
` "NAME_PREFIX.logger$2, , NAME_PREFIX.vol_ctrl$1"' ` "NAME_PREFIX.mfc$2, , NAME_PREFIX.vol_ctrl$1"'
` "NAME_PREFIX.logger$2, , NAME_PREFIX.mfc$2"'
` ]' ` ]'
`}') `}')
...@@ -60,12 +65,13 @@ AR_PCM_PLAYBACK(PCM_DAI_ID, PCM_FORMAT, PCM_MIN_RATE, PCM_MAX_RATE, PCM_MIN_CHAN ...@@ -60,12 +65,13 @@ AR_PCM_PLAYBACK(PCM_DAI_ID, PCM_FORMAT, PCM_MIN_RATE, PCM_MAX_RATE, PCM_MIN_CHAN
AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CONT_SENARIO_ID) AR_SUBGRAPH(SG_INDEX, PCM_DAI_ID, SG_IID_START, PCM_PERF_MODE, PCM_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, APM_CONTAINER_CAP_ID_CD, 8192, APM_CONT_GRAPH_POS_STREAM, APM_PROC_DOMAIN_ID_ADSP) AR_CONTAINER(CONTAINER_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, APM_CONT_GRAPH_POS_STREAM, APM_PROC_DOMAIN_ID_ADSP)
AR_MODULE_WRSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, WRSH_MODULE_IID, 0, 1, 0, 0, 0, 2, PCM_DAI_ID) AR_MODULE_WRSH(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, WRSH_MODULE_IID, 0, 1, 0, 0, 1, 2, PCM_DAI_ID, PCMDEC_MODULE_IID)
AR_MODULE_PCMDEC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMDEC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED) AR_MODULE_PCMDEC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMDEC_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_INTERLEAVED,PCMCNV_MODULE_IID)
AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_DEINTERLEAVED_UNPACKED) AR_MODULE_PCMCNV(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, PCMCNV_MODULE_IID, 1, 1, 2, 1, 1, 2, PCM_DEINTERLEAVED_UNPACKED,VOLCTRL_MODULE_IID)
AR_MODULE_VOL_CTRL(PCM_DAI_ID, SG_INDEX, CONTAINER_INDEX, VOLCTRL_MODULE_IID,1, 1, 2, 1, 1, 2) AR_MODULE_VOL_CTRL(PCM_DAI_ID, SG_INDEX, CONTAINER_INDEX, VOLCTRL_MODULE_IID,1, 1, 2, 1, 1, 2,MFC_MODULE_IID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0) AR_MODULE_MFC(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, MFC_MODULE_IID, 1, 1, 2, 1, 1, 2, LOG_MODULE_IID)
AR_MODULE_LOG(MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019af, 1, 0, NONE_IID)
STREAM_PLAYBACK_MIXER(PCM_DAI_ID, SG_INDEX) STREAM_PLAYBACK_MIXER(PCM_DAI_ID, SG_INDEX)
STREAM_PLAYBACK_ROUTE(PCM_DAI_ID, MOD_INDEX) STREAM_PLAYBACK_ROUTE(PCM_DAI_ID, MOD_INDEX)
# Copyright, Linaro Ltd, 2023
# SPDX-License-Identifier: BSD-3-Clause
include(`util/util.m4') dnl include(`util/util.m4') dnl
dnl AR_SUBGRAPH(index, graph-id, sub-graph-id, perf-mode, dir, sid) dnl AR_SUBGRAPH(index, graph-id, sub-graph-id, perf-mode, dir, sid)
define(`AR_SUBGRAPH', define(`AR_SUBGRAPH',
......