[Sound-open-firmware] [PATCH V2 2/3] topology: m4: add dai lbm kcotnrol support

Liam Girdwood liam.r.girdwood at intel.com
Wed Jun 20 13:01:41 CEST 2018


On Wed, 2018-06-20 at 17:32 +0800, Xiuli Pan wrote:
> From: Pan Xiuli <xiuli.pan at linux.intel.com>
> 
> Add a new parameter for DAI_OUT to enable DAI_LBM_KCONTROL token
> 
> Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
> 
> ---
> V2: use parameter instead of new macro
> Work with patch set:
> SOF-Kernel(7):
>   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_LBM_KCONTROL for ssp
>     loopback mode kcontrol
>   ASoC: SOF: add headers for switch control callback functions
>   ASoC: SOF: add switch kcontrol callback functions
>   ASoC: SOF: topology: Add DAI TOKEN string bool parser
>   ASoC: SOF: topology: Add topology handler for dai lbm kcontrol
> 
> 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_LBM_KCONTROL for ssp loopback mode kcontrol
>   topology: m4: add dai lbm kcotnrol support
>   topology: test: Add loopback topology
> 
> test & santity test with:
> Mininow max rt5651 and UP2 Hifiberry PRO and CNL nocodec
> SOF master: 27795ece0ff9405795cef866fc28a7ab6db20d82
> SOF-Tool master: bd7dc88231f31d385340310cef467f211a739eeb
> sof-dev: df15329163229fe3436ad914561430c20f778cf1
> 
> ---
>  topology/m4/dai.m4                | 6 ++++--
>  topology/sof/pipe-dai-playback.m4 | 2 +-
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4
> index bd67413..996f54c 100644
> --- a/topology/m4/dai.m4
> +++ b/topology/m4/dai.m4
> @@ -7,7 +7,7 @@ define(`N_DAI', DAI_NAME)
>  define(`N_DAI_OUT', DAI_NAME`.OUT')
>  define(`N_DAI_IN', DAI_NAME`.IN')
>  
> -dnl W_DAI_OUT(type, index, dai_link, format, periods_sink, periods_source,
> preload)
> +dnl W_DAI_OUT(type, index, dai_link, format, periods_sink, periods_source,
> preload, dailbmkcontrol)


Lets just call this new param "flags". It can be a bitmask. i.e. 

define(`DAI_FLAGS_KCTRL_LOOPBACK', 1)
define(`DAI_FLAGS_KCTRL_TRISTATE', 2)

etc

>  define(`W_DAI_OUT',
>  `SectionVendorTuples."'N_DAI_OUT($2)`_tuples_w_comp" {'
>  `	tokens "sof_comp_tokens"'
> @@ -33,6 +33,7 @@ define(`W_DAI_OUT',
>  `	tokens "sof_dai_tokens"'
>  `	tuples."string" {'
>  `		SOF_TKN_DAI_TYPE'	$1
> +`ifelse($8, `', `', `           SOF_TKN_DAI_LBM_KCONTROL	$8')'

and then if we change the token name to SOF_TKN_DAI_KCTRL_FLAGS we can assign it
directly and the driver can then check the flags for which kcontrols to create.

Liam

>  `	}'
>  `}'
>  `SectionData."'N_DAI_OUT($2)`_data_str" {'
> @@ -252,7 +253,7 @@ define(`DAI_CONFIG',
>  dnl DAI_ADD(pipeline,
>  dnl     pipe id, dai type, dai_index, dai_be,
>  dnl     buffer, periods, format,
> -dnl     frames, deadline, priority, core)
> +dnl     frames, deadline, priority, core, lbm_kcontrol)
>  define(`DAI_ADD',
>  `undefine(`PIPELINE_ID')'
>  `undefine(`DAI_TYPE')'
> @@ -277,6 +278,7 @@ define(`DAI_ADD',
>  `define(`SCHEDULE_DEADLINE', $10)'
>  `define(`SCHEDULE_PRIORITY', $11)'
>  `define(`SCHEDULE_CORE', $12)'
> +`define(`DAI_LBM_KCONTROL', $13)'
>  `include($1)'
>  )
>  
> diff --git a/topology/sof/pipe-dai-playback.m4 b/topology/sof/pipe-dai-
> playback.m4
> index 804b180..fda27ac 100644
> --- a/topology/sof/pipe-dai-playback.m4
> +++ b/topology/sof/pipe-dai-playback.m4
> @@ -8,7 +8,7 @@ include(`pipeline.m4')
>  #
>  # DAI definitions
>  #
> -W_DAI_OUT(DAI_TYPE, DAI_INDEX, DAI_BE, DAI_FORMAT, 0, 2, 2)
> +W_DAI_OUT(DAI_TYPE, DAI_INDEX, DAI_BE, DAI_FORMAT, 0, 2, 2, DAI_LBM_KCONTROL)
>  
>  #
>  # DAI pipeline - always use 0 for DAIs
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the Sound-open-firmware mailing list