[Sound-open-firmware] [PATCH 2/3] topology: m4: Add DAI_OUT_SSP_LOOPBACK marco for SSP LOOPBACK dai comp

Liam Girdwood liam.r.girdwood at linux.intel.com
Tue Jun 19 12:55:51 CEST 2018


On Tue, 2018-06-19 at 17:21 +0800, Xiuli Pan wrote:
> From: Pan Xiuli <xiuli.pan at linux.intel.com>
> 
> Add new macro for SSP loobback mode support
> 
> Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
> ---
> Work with patch set:
> SOF-Kernel(6):
>   ASoC: SOF: Add debug_mode flag in sof dev
>   ASoC: SOF: debug: add debugmode debugfs for sof_dev debug_mode
>   ASoC: SOF: uapi: topology: Add SOF_TKN_DAI_SSP_LBM for ssp loopback mode
>   ASoC: SOF: add headers for lbm control callback functions
>   ASoC: SOF: add lbm kcontrol callback functions
>   ASoC: SOF: topology: Add topology handler for dai ssp loopback mode
> 
> SOF(5):
>   dai: add lbm status for dai ssp
>   dai: add get_loopback_mode function
>   DMIC: add empty get_loopback_mode function
>   SSP: support for get/set_loopback_mode functions
>   dai: add dai_cmd support for loopback mode switch
> 
> SOF-Tools(3):
>   topology: Add SOF_TKN_DAI_SSP_LBM for ssp loopback mode
>   topology: m4: Add DAI_OUT_SSP_LOOPBACK marco for SSP LOOPBACK dai comp
>   topology: test: Add loopback topology
> 
> test & santity test with:
> Mininow max rt5651 and UP2 Hifiberry PRO and CNL nocodec
> SOF master: 48d2a1c551d7b3c8f76d44f3c04dd59a37ff6a8f
> SOF-Tool master: bd7dc88231f31d385340310cef467f211a739eeb
> https://github.com/plbossart/sound/tree/topic/sof-v4.14:
> 0d51a5ed28c5e97f09b59c4cafaddfb9d3b24b77
> ---
>  topology/m4/dai.m4 | 55
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4
> index bd67413..2a202c0 100644
> --- a/topology/m4/dai.m4
> +++ b/topology/m4/dai.m4
> @@ -7,6 +7,61 @@ define(`N_DAI', DAI_NAME)
>  define(`N_DAI_OUT', DAI_NAME`.OUT')
>  define(`N_DAI_IN', DAI_NAME`.IN')
>  
> +dnl W_DAI_OUT_SSP_LOOPBACK(type, index, dai_link, format, periods_sink,
> periods_source, preload)


Why do we need to create a new DAI here ? Can we not pass in a flag for
LBM_KCTRL to the standard DAI macro ?

The standard DAI macros could then create a kcontrol if LBM flag was true.

Liam

> +define(`W_DAI_OUT_SSP_LOOPBACK',
> +`SectionVendorTuples."'N_DAI_OUT($2)`_tuples_w_comp" {'
> +`	tokens "sof_comp_tokens"'
> +`	tuples."word" {'
> +`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($5)
> +`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($6)
> +`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($7)
> +`	}'
> +`}'
> +`SectionData."'N_DAI_OUT($2)`_data_w_comp" {'
> +`	tuples "'N_DAI_OUT($2)`_tuples_w_comp"'
> +`}'
> +`SectionVendorTuples."'N_DAI_OUT($2)`_tuples_w" {'
> +`	tokens "sof_dai_tokens"'
> +`	tuples."word" {'
> +`		SOF_TKN_DAI_INDEX'	$2
> +`	}'
> +`}'
> +`SectionData."'N_DAI_OUT($2)`_data_w" {'
> +`	tuples "'N_DAI_OUT($2)`_tuples_w"'
> +`}'
> +`SectionVendorTuples."'N_DAI_OUT($2)`_tuples_str" {'
> +`	tokens "sof_dai_tokens"'
> +`	tuples."string" {'
> +`		SOF_TKN_DAI_TYPE'	"SSP"
> +`		SOF_TKN_DAI_SSP_LBM'	"TRUE"
> +`	}'
> +`}'
> +`SectionData."'N_DAI_OUT($2)`_data_str" {'
> +`	tuples "'N_DAI_OUT($2)`_tuples_str"'
> +`}'
> +`SectionVendorTuples."'N_DAI_OUT($2)`_tuples_comp_str" {'
> +`	tokens "sof_comp_tokens"'
> +`	tuples."string" {'
> +`		SOF_TKN_COMP_FORMAT'	STR($4)
> +`	}'
> +`}'
> +`SectionData."'N_DAI_OUT($2)`_data_comp_str" {'
> +`	tuples "'N_DAI_OUT($2)`_tuples_comp_str"'
> +`}'
> +`SectionWidget."'N_DAI_OUT`" {'
> +`	index "'PIPELINE_ID`"'
> +`	type "dai_in"'
> +`	stream_name' STR($3)
> +`	no_pm "true"'
> +`	data ['
> +`		"'N_DAI_OUT($2)`_data_w"'
> +`		"'N_DAI_OUT($2)`_data_w_comp"'
> +`		"'N_DAI_OUT($2)`_data_str"'
> +`		"'N_DAI_OUT($2)`_data_comp_str"'
> +`	]'
> +`}')
> +
> +
>  dnl W_DAI_OUT(type, index, dai_link, format, periods_sink, periods_source,
> preload)
>  define(`W_DAI_OUT',
>  `SectionVendorTuples."'N_DAI_OUT($2)`_tuples_w_comp" {'


More information about the Sound-open-firmware mailing list