audioreach: i2s-capture: Add i2s capture subgraph support
Add I2S Capture subgraph support and provide the support for LPAIF_SDR type. Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
This commit is contained in:
parent
81db8581a0
commit
68ddd71b35
3 changed files with 108 additions and 0 deletions
|
|
@ -57,6 +57,8 @@ define(`LPAIF_INTF_TYPE_RXTX', `1') dnl
|
|||
define(`LPAIF_INTF_TYPE_WSA',`2') dnl
|
||||
define(`LPAIF_INTF_TYPE_VA', `3') dnl
|
||||
define(`LPAIF_INTF_TYPE_AXI', `4') dnl
|
||||
define(`LPAIF_INTF_TYPE_AUD', `5') dnl
|
||||
define(`LPAIF_INTF_TYPE_SDR', `6') dnl
|
||||
define(`I2S_INTF_TYPE_PRIMARY', `0') dnl
|
||||
define(`I2S_INTF_TYPE_SECONDARY', `1') dnl
|
||||
define(`I2S_INTF_TYPE_TERTIARY', `2') dnl
|
||||
|
|
|
|||
|
|
@ -40,3 +40,43 @@ define(`AR_MODULE_I2S_RX',
|
|||
` "NAME_PREFIX.i2s_rx$1_data"'
|
||||
` ]'
|
||||
`}') dnl
|
||||
dnl
|
||||
dnl AR_MODULE_I2S_TX(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, src-port, dst-port,
|
||||
dnl hw-if-type, hw-if-idx, fmt, sd-line-idx, dev-name, dst-iid)
|
||||
define(`AR_MODULE_I2S_TX',
|
||||
`'
|
||||
`SectionVendorTuples."NAME_PREFIX.i2s_tx$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_I2S_SOURCE)'
|
||||
` AR_TKN_U32_MODULE_MAX_IP_PORTS STR($5)'
|
||||
` AR_TKN_U32_MODULE_MAX_OP_PORTS STR($6)'
|
||||
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($7)'
|
||||
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($8)'
|
||||
` AR_TKN_U32_MODULE_SRC_INSTANCE_ID STR($4)'
|
||||
` AR_TKN_U32_MODULE_DST_INSTANCE_ID STR($14)'
|
||||
` AR_TKN_U32_MODULE_HW_IF_TYPE STR($9)'
|
||||
` AR_TKN_U32_MODULE_HW_IF_IDX STR($10)'
|
||||
` AR_TKN_U32_MODULE_FMT_DATA STR($11)'
|
||||
` AR_TKN_U32_MODULE_SD_LINE_IDX STR($12)'
|
||||
` }'
|
||||
`}'
|
||||
`'
|
||||
`SectionData."NAME_PREFIX.i2s_tx$1_data" {'
|
||||
` tuples "NAME_PREFIX.i2s_tx$1_tuples"'
|
||||
`}'
|
||||
`'
|
||||
`SectionWidget."NAME_PREFIX.i2s_tx$1" {'
|
||||
` index STR($1)'
|
||||
` type "aif_out"'
|
||||
` no_pm "true"'
|
||||
` stream_name "$15 MI2S Capture"'
|
||||
` subseq "10"'
|
||||
` data ['
|
||||
` "NAME_PREFIX.sub_graph$2_data"'
|
||||
` "NAME_PREFIX.container$3_data"'
|
||||
` "NAME_PREFIX.i2s_tx$1_data"'
|
||||
` ]'
|
||||
`}') dnl
|
||||
|
|
|
|||
66
audioreach/subgraph-device-i2s-capture.m4
Normal file
66
audioreach/subgraph-device-i2s-capture.m4
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# 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_i2s.m4') dnl
|
||||
include(`util/mixer.m4') dnl
|
||||
dnl
|
||||
#
|
||||
# SubGraph for Device Backend
|
||||
#
|
||||
# ___________________________
|
||||
# | Sub Graph |
|
||||
# [KControl]->| [DEVICE-TX] <- [LOGGER] |
|
||||
# Switch |__________________________|
|
||||
undefine(`I2S_MODULE_IID') dnl
|
||||
undefine(`LOG_MODULE_IID') dnl
|
||||
undefine(`SG_INDEX') dnl
|
||||
undefine(`CONTAINER_INDEX') dnl
|
||||
undefine(`MOD_INDEX') dnl
|
||||
|
||||
undefine(`DEVICE_PERF_MODE') dnl
|
||||
undefine(`DEVICE_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_RECORD) 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(`DEVICE_DOMAIN_ID', APM_PROC_DOMAIN_ID_ADSP) dnl'
|
||||
define(`CONT_STACK_SIZE', 8192) dnl'
|
||||
|
||||
define(`I2S_MODULE_IID', MOD_IID_START) dnl
|
||||
define(`LOG_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_CAPTURE_ROUTE(stream-index, dai-id)
|
||||
define(`DEVICE_CAPTURE_ROUTE',
|
||||
`'
|
||||
`SectionGraph."NAME_PREFIX.$1 $2 Graph" {'
|
||||
` index STR($1)'
|
||||
` lines ['
|
||||
` "NAME_PREFIX.i2s_tx$1, , $2 MI2S Capture"'
|
||||
` "NAME_PREFIX.logger$1, , NAME_PREFIX.i2s_tx$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_I2S_TX(MOD_INDEX, SG_INDEX, CONTAINER_INDEX,I2S_MODULE_IID, 0, 1, 1, 2, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT, DEVICE_SD_LINE_IDX, `DEVICE_NAME', LOG_MODULE_IID)
|
||||
|
||||
AR_MODULE_LOG( MOD_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 1, 2, 0x000019ab, 1, 0, NONE_IID)
|
||||
dnl kcontrol switch
|
||||
DEVICE_CAPTURE_MIXER(SG_INDEX, `MIXER_PREFIX')
|
||||
DEVICE_CAPTURE_ROUTE(MOD_INDEX, `DEVICE_NAME')
|
||||
Loading…
Add table
Add a link
Reference in a new issue