[Sound-open-firmware] [PATCH] topology: break up topology builder m4 files into per component macros

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Mon Mar 5 23:17:12 CET 2018


This patch break up the local.m4 and build.m4 topology builder includes
into per component m4 files

Signed-off-by: Ranjani Sridharan <ranjani.sridharan at linux.intel.com>
---
 topology/m4/buffer.m4                     |  29 ++
 topology/m4/dai.m4                        | 214 ++++++++++
 topology/m4/local.m4                      | 654 ------------------------------
 topology/m4/mixer.m4                      |  43 ++
 topology/m4/mixercontrol.m4               |  49 +++
 topology/m4/pcm.m4                        | 161 ++++++++
 topology/m4/pga.m4                        |  44 ++
 topology/m4/{build.m4 => pipeline.m4}     |  60 +--
 topology/m4/src.m4                        |  41 ++
 topology/m4/tone.m4                       |  43 ++
 topology/m4/utils.m4                      |  65 +++
 topology/reef-apl-nocodec.m4              |   5 +-
 topology/reef-bdw-rt286.m4                |   5 +-
 topology/reef-bdw-rt5640.m4               |   5 +-
 topology/reef-bxt-nocodec.m4              |   5 +-
 topology/reef-byt-da7212.m4               |   5 +-
 topology/reef-byt-nocodec.m4              |   5 +-
 topology/reef-byt-rt5640.m4               |   5 +-
 topology/reef-byt-rt5645.m4               |   5 +-
 topology/reef-byt-rt5651.m4               |   5 +-
 topology/reef-cht-max98090.m4             |   5 +-
 topology/reef-cht-nocodec.m4              |   5 +-
 topology/reef-cnl-rt274.m4                |   5 +-
 topology/reef-hsw-rt5640.m4               |   5 +-
 topology/sof/pipe-dai-capture.m4          |   4 +-
 topology/sof/pipe-dai-playback.m4         |   4 +-
 topology/sof/pipe-low-latency-capture.m4  |   6 +-
 topology/sof/pipe-low-latency-playback.m4 |   7 +-
 topology/sof/pipe-passthrough-capture.m4  |   7 +-
 topology/sof/pipe-passthrough-playback.m4 |   7 +-
 topology/sof/pipe-pcm-media.m4            |   7 +-
 topology/sof/pipe-src-capture.m4          |   8 +-
 topology/sof/pipe-src-playback.m4         |   8 +-
 topology/sof/pipe-tone.m4                 |   7 +-
 topology/sof/pipe-volume-capture.m4       |   8 +-
 topology/sof/pipe-volume-playback.m4      |   8 +-
 topology/test/test-capture-ssp.m4         |   5 +-
 topology/test/test-playback-ssp.m4        |   5 +-
 topology/test/test-ssp.m4                 |   5 +-
 topology/test/test-tone-playback-ssp.m4   |   5 +-
 40 files changed, 836 insertions(+), 733 deletions(-)
 create mode 100644 topology/m4/buffer.m4
 create mode 100644 topology/m4/dai.m4
 delete mode 100644 topology/m4/local.m4
 create mode 100644 topology/m4/mixer.m4
 create mode 100644 topology/m4/mixercontrol.m4
 create mode 100644 topology/m4/pcm.m4
 create mode 100644 topology/m4/pga.m4
 rename topology/m4/{build.m4 => pipeline.m4} (76%)
 create mode 100644 topology/m4/src.m4
 create mode 100644 topology/m4/tone.m4
 create mode 100644 topology/m4/utils.m4

diff --git a/topology/m4/buffer.m4 b/topology/m4/buffer.m4
new file mode 100644
index 0000000..fc06ba0
--- /dev/null
+++ b/topology/m4/buffer.m4
@@ -0,0 +1,29 @@
+divert(-1)
+
+dnl Define the macro for buffer widget
+
+dnl Buffer name)
+define(`N_BUFFER', `BUF'PIPELINE_ID`.'$1)
+
+dnl W_BUFFER(name, size, capabilities)
+define(`W_BUFFER',
+`SectionVendorTuples."'N_BUFFER($1)`_tuples" {'
+`	tokens "sof_buffer_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_BUF_SIZE'	STR($2)
+`		SOF_TKN_BUF_CAPS'	STR($3)
+`	}'
+`}'
+`SectionData."'N_BUFFER($1)`_data" {'
+`	tuples "'N_BUFFER($1)`_tuples"'
+`}'
+`SectionWidget."'N_BUFFER($1)`" {'
+`	index "'PIPELINE_ID`"'
+`	type "buffer"'
+`	no_pm "true"'
+`	data ['
+`		"'N_BUFFER($1)`_data"'
+`	]'
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4
new file mode 100644
index 0000000..163dfab
--- /dev/null
+++ b/topology/m4/dai.m4
@@ -0,0 +1,214 @@
+divert(-1)
+
+dnl Define macros for DAI IN/OUT widgets and DAI config
+
+dnl DAI name)
+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, format, periods_sink, periods_source, preload, data)
+define(`W_DAI_OUT',
+`SectionVendorTuples."'N_DAI_OUT($2)`_tuples_w_comp" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($4)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($5)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($6)
+`	}'
+`}'
+`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'	$1
+`	}'
+`}'
+`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($3)
+`	}'
+`}'
+`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"'
+`	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"'
+`		"'$7`"'
+`	]'
+`}')
+
+dnl W_DAI_IN(type, index, format, periods_sink, periods_source, preload, data)
+define(`W_DAI_IN',
+`SectionVendorTuples."'N_DAI_IN($2)`_tuples_w_comp" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($4)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($5)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($6)
+`	}'
+`}'
+`SectionData."'N_DAI_IN($2)`_data_w_comp" {'
+`	tuples "'N_DAI_IN($2)`_tuples_w_comp"'
+`}'
+`SectionVendorTuples."'N_DAI_IN($2)`_tuples_w" {'
+`	tokens "sof_dai_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_DAI_INDEX'	$2
+`	}'
+`}'
+`SectionData."'N_DAI_IN($2)`_data_w" {'
+`	tuples "'N_DAI_IN($2)`_tuples_w"'
+`}'
+`SectionVendorTuples."'N_DAI_IN($2)`_tuples_str" {'
+`	tokens "sof_dai_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_DAI_TYPE'	$1
+`	}'
+`}'
+`SectionData."'N_DAI_IN($2)`_data_str" {'
+`	tuples "'N_DAI_IN($2)`_tuples_str"'
+`}'
+`SectionVendorTuples."'N_DAI_IN($2)`_tuples_comp_str" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_COMP_FORMAT'	STR($3)
+`	}'
+`}'
+`SectionData."'N_DAI_IN($2)`_data_comp_str" {'
+`	tuples "'N_DAI_IN($2)`_tuples_comp_str"'
+`}'
+`SectionWidget."'N_DAI_IN`" {'
+`	index "'PIPELINE_ID`"'
+`	type "dai_out"'
+`	no_pm "true"'
+`	data ['
+`		"'N_DAI_IN($2)`_data_w"'
+`		"'N_DAI_IN($2)`_data_w_comp"'
+`		"'N_DAI_IN($2)`_data_str"'
+`		"'N_DAI_IN($2)`_data_comp_str"'
+`		"'$7`"'
+`	]'
+`}')
+
+dnl D_DAI(id, playback, capture, data))
+define(`D_DAI', `SectionDAI."'N_DAI`" {'
+`	index "'PIPELINE_ID`"'
+`	id "'$1`"'
+`	playback "'$2`"'
+`	capture "'$3`"'
+`}')
+
+dnl DAI_CLOCK(clock, freq, codec_master)
+define(`DAI_CLOCK',
+	$1		STR($3)
+	$1_freq	STR($2))
+
+
+dnl DAI_TDM(slots, width, tx_mask, rx_mask)
+define(`DAI_TDM',
+`	tdm_slots	'STR($1)
+`	tdm_slot_width	'STR($2)
+`	tx_slots	'STR($3)
+`	rx_slots	'STR($4)
+)
+
+dnl DAI Config)
+define(`N_DAI_CONFIG', `DAICONFIG.'$1)
+
+dnl DAI_CONFIG(type, idx, name, format, valid bits, mclk, bclk, fsync, tdm)
+define(`DAI_CONFIG',
+`SectionHWConfig."'$1$2`" {'
+`'
+`	id		"'$2`"'
+`	format		"'$4`"'
+`'
+`	'$6
+`	'$7
+`	'$8
+`	'$9
+`}'
+`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples_str" {'
+`	tokens "sof_dai_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_DAI_TYPE'		STR($1)
+`	}'
+`}'
+`SectionData."'N_DAI_CONFIG($1$2)`_data_str" {'
+`	tuples "'N_DAI_CONFIG($1$2)`_tuples_str"'
+`}'
+`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples" {'
+`	tokens "sof_dai_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_DAI_SAMPLE_BITS'	STR($5)
+`	}'
+`}'
+`SectionData."'N_DAI_CONFIG($1$2)`_data" {'
+`	tuples "'N_DAI_CONFIG($1$2)`_tuples"'
+`}'
+`'
+`SectionBE."'$3`" {'
+`	index "0"'
+`	default_hw_conf_id	"'$2`"'
+`'
+`	hw_configs ['
+`		"'$1$2`"'
+`	]'
+`	data ['
+`		"'N_DAI_CONFIG($1$2)`_data"'
+`		"'N_DAI_CONFIG($1$2)`_data_str"'
+`	]'
+`}')
+
+dnl DAI_ADD(pipeline,
+dnl     pipe id, dai type, dai_index,
+dnl     buffer, periods, format,
+dnl     frames, deadline, priority, core)
+define(`DAI_ADD',
+`undefine(`PIPELINE_ID')'
+`undefine(`DAI_TYPE')'
+`undefine(`DAI_INDEX')'
+`undefine(`DAI_BUF')'
+`undefine(`DAI_PERIODS')'
+`undefine(`DAI_FORMAT')'
+`undefine(`SCHEDULE_FRAMES')'
+`undefine(`SCHEDULE_DEADLINE')'
+`undefine(`SCHEDULE_PRIORITY')'
+`undefine(`SCHEDULE_CORE')'
+`define(`PIPELINE_ID', $2)'
+`define(`DAI_TYPE', STR($3))'
+`define(`DAI_INDEX', STR($4))'
+`define(`DAI_BUF', $5)'
+`define(`DAI_NAME', $3$4)'
+`define(`DAI_PERIODS', $6)'
+`define(`DAI_FORMAT', $7)'
+`define(`SCHEDULE_FRAMES', $8)'
+`define(`SCHEDULE_DEADLINE', $9)'
+`define(`SCHEDULE_PRIORITY', $10)'
+`define(`SCHEDULE_CORE', $11)'
+`include($1)'
+)
+
+divert(0)dnl
diff --git a/topology/m4/local.m4 b/topology/m4/local.m4
deleted file mode 100644
index df6ea14..0000000
diff --git a/topology/m4/mixer.m4 b/topology/m4/mixer.m4
new file mode 100644
index 0000000..1f2376e
--- /dev/null
+++ b/topology/m4/mixer.m4
@@ -0,0 +1,43 @@
+divert(-1)
+
+dnl Define macro for Mixer widget
+
+dnl Mixer Name)
+define(`N_MIXER', `MIXER'PIPELINE_ID`.'$1)
+
+dnl Pipe Buffer name in pipeline (pipeline, buffer)
+define(`NPIPELINE_MIXER', `MIXER'$1`.'$2)
+
+dnl W_MIXER(name, format, periods_sink, periods_source, preload)
+define(`W_MIXER',
+`SectionVendorTuples."'N_MIXER($1)`_tuples_w" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($3)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($4)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($5)
+`	}'
+`}'
+`SectionData."'N_MIXER($1)`_data_w" {'
+`	tuples "'N_MIXER($1)`_tuples_w"'
+`}'
+`SectionVendorTuples."'N_MIXER($1)`_tuples_str" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_COMP_FORMAT'	STR($2)
+`	}'
+`}'
+`SectionData."'N_MIXER($1)`_data_str" {'
+`	tuples "'N_MIXER($1)`_tuples_str"'
+`}'
+`SectionWidget."'N_MIXER($1)`" {'
+`	index "'PIPELINE_ID`"'
+`	type "mixer"'
+`	no_pm "true"'
+`	data ['
+`		"'N_MIXER($1)`_data_w"'
+`		"'N_MIXER($1)`_data_str"'
+`	]'
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/mixercontrol.m4 b/topology/m4/mixercontrol.m4
new file mode 100644
index 0000000..77a3784
--- /dev/null
+++ b/topology/m4/mixercontrol.m4
@@ -0,0 +1,49 @@
+divert(-1)
+
+dnl Define macro for mixer control
+
+dnl KCONTROL_CHANNEL(name, reg, shift)
+define(`KCONTROL_CHANNEL',
+`channel.STR($1) {'
+`		reg STR($2)'
+`		shift STR($3)'
+`	}')
+
+dnl CONTROLMIXER_MAX(comment, value)
+define(`CONTROLMIXER_MAX',
+`#$1'
+`	max STR($2)')
+
+dnl CONTROLMIXER_TLV(comment, value)
+define(`CONTROLMIXER_TLV',
+`#$1'
+`	tlv STR($2)')
+
+dnl CONTROLMIXER_OPS(info, comment, get, put)
+define(`CONTROLMIXER_OPS',
+`ops."ctl" {'
+`		info STR($1)'
+`		#$2'
+`		get STR($3)'
+`		put STR($4)'
+`	}')
+
+dnl C_CONTROLMIXER(name, index, ops, max, invert, tlv, KCONTROL_CHANNELS)
+define(`C_CONTROLMIXER',
+`SectionControlMixer.STR($1) {'
+`'
+`	# control belongs to this index group'
+`	index STR($2)'
+`'
+`	#$7'
+`	$8'
+`	# control uses bespoke driver get/put/info ID'
+`	$3'
+`'
+`	$4'
+`	invert STR($5)'
+`	$6'
+
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/pcm.m4 b/topology/m4/pcm.m4
new file mode 100644
index 0000000..d767350
--- /dev/null
+++ b/topology/m4/pcm.m4
@@ -0,0 +1,161 @@
+divert(-1)
+
+dnl Define the macro for PCM playback/capture/capabilities
+
+dnl PCM name)
+define(`N_PCMP', `PCM'PCM_ID`P')
+define(`N_PCMC', `PCM'PCM_ID`C')
+
+dnl W_PCM_PLAYBACK(stream, dmac, dmac_chan, periods_sink, periods_source, preload)
+dnl  PCM platform configuration
+define(`W_PCM_PLAYBACK',
+`SectionVendorTuples."'N_PCMP($1)`_tuples_w_comp" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($4)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($5)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($6)
+`	}'
+`}'
+`SectionData."'N_PCMP($1)`_data_w_comp" {'
+`	tuples "'N_PCMP($1)`_tuples_w_comp"'
+`}'
+`SectionVendorTuples."'N_PCMP($1)`_tuples" {'
+`	tokens "sof_pcm_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_PCM_DMAC'	STR($2)
+`		SOF_TKN_PCM_DMAC_CHAN'	STR($3)
+`	}'
+`}'
+`SectionData."'N_PCMP($1)`_data" {'
+`	tuples "'N_PCMP($1)`_tuples"'
+`}'
+`SectionWidget."'N_PCMP`" {'
+`	index "'PIPELINE_ID`"'
+`	type "aif_in"'
+`	no_pm "true"'
+`	stream_name "'$1`"'
+`	data ['
+`		"'N_PCMP($1)`_data"'
+`		"'N_PCMP($1)`_data_w_comp"'
+`	]'
+`}')
+
+
+dnl W_PCM_CAPTURE(stream, dmac, dmac_chan, periods_sink, periods_source, preload)
+define(`W_PCM_CAPTURE',
+`SectionVendorTuples."'N_PCMC($1)`_tuples_w_comp" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($4)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($5)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($6)
+`	}'
+`}'
+`SectionData."'N_PCMC($1)`_data_w_comp" {'
+`	tuples "'N_PCMC($1)`_tuples_w_comp"'
+`}'
+`SectionVendorTuples."'N_PCMC($1)`_tuples" {'
+`	tokens "sof_pcm_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_PCM_DMAC'	STR($2)
+`		SOF_TKN_PCM_DMAC_CHAN'	STR($3)
+`	}'
+`}'
+`SectionData."'N_PCMC($1)`_data" {'
+`	tuples "'N_PCMC($1)`_tuples"'
+`}'
+`SectionWidget."'N_PCMC`" {'
+`	index "'PIPELINE_ID`"'
+`	type "aif_out"'
+`	no_pm "true"'
+`	stream_name "'$1`"'
+`	data ['
+`		"'N_PCMC($1)`_data"'
+`		"'N_PCMC($1)`_data_w_comp"'
+`	]'
+`}')
+
+dnl PCM_CAPABILITIES(name, formats, rate_min, rate_max, channels_min, channels_max, periods_min, periods_max, period_size_min, period_size_max, buffer_size_min, buffer_size_max)
+define(`PCM_CAPABILITIES',
+`SectionPCMCapabilities.STR($1) {'
+`'
+`	formats "$2"'
+`	rate_min STR($3)'
+`	rate_max STR($4)'
+`	channels_min STR($5)'
+`	channels_max STR($6)'
+`	periods_min STR($7)'
+`	periods_max STR($8)'
+`	period_size_min	STR($9)'
+`	period_size_max	STR($10)'
+`	buffer_size_min	STR($11)'
+`	buffer_size_max	STR($12)'
+`}')
+
+dnl COMP_BUFFER_SIZE( num_periods, sample_size, channels, fmames)
+define(`COMP_BUFFER_SIZE', `eval(`$1 * $2 * $3 * $4')')
+
+dnl PCM_PLAYBACK_ADD(name, pipeline, pcm_id, dai_id, playback)
+define(`PCM_PLAYBACK_ADD',
+`SectionPCM.STR($1) {'
+`'
+`	index STR($2)'
+`'
+`	# used for binding to the PCM'
+`	id STR($3)'
+`'
+`	dai.STR($1 $3) {'
+`		id STR($4)'
+`	}'
+`'
+`	pcm."playback" {'
+`'
+`		capabilities STR($5)'
+`	}'
+`}')
+
+dnl PCM_CAPTURE_ADD(name, pipeline, pcm_id, dai_id, capture)
+define(`PCM_CAPTURE_ADD',
+`SectionPCM.STR($1) {'
+`'
+`	index STR($2)'
+`'
+`	# used for binding to the PCM'
+`	id STR($3)'
+`'
+`	dai.STR($1 $3) {'
+`		id STR($4)'
+`	}'
+`'
+`	pcm."capture" {'
+`'
+`		capabilities STR($5)'
+`	}'
+`}')
+
+dnl PCM_DUPLEX_ADD(name, pipeline, pcm_id, dai_id, playback, capture)
+define(`PCM_DUPLEX_ADD',
+`SectionPCM.STR($1) {'
+`'
+`	index STR($2)'
+`'
+`	# used for binding to the PCM'
+`	id STR($3)'
+`'
+`	dai.STR($1 $3) {'
+`		id STR($4)'
+`	}'
+`'
+`	pcm."capture" {'
+`'
+`		capabilities STR($6)'
+`	}'
+`'
+`	pcm."playback" {'
+`'
+`		capabilities STR($5)'
+`	}'
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/pga.m4 b/topology/m4/pga.m4
new file mode 100644
index 0000000..f38f820
--- /dev/null
+++ b/topology/m4/pga.m4
@@ -0,0 +1,44 @@
+divert(-1)
+
+dnl Define macro for PGA widget
+
+dnl PGA name)
+define(`N_PGA', `PGA'PIPELINE_ID`.'$1)
+
+dnl W_PGA(name, format, periods_sink, periods_source, preload, kcontrol0. kcontrol1...etc)
+define(`W_PGA',
+`SectionVendorTuples."'N_PGA($1)`_tuples_w" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($3)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($4)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($5)
+`	}'
+`}'
+`SectionData."'N_PGA($1)`_data_w" {'
+`	tuples "'N_PGA($1)`_tuples_w"'
+`}'
+`SectionVendorTuples."'N_PGA($1)`_tuples_str" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_COMP_FORMAT'	STR($2)
+`	}'
+`}'
+`SectionData."'N_PGA($1)`_data_str" {'
+`	tuples "'N_PGA($1)`_tuples_str"'
+`}'
+`SectionWidget."'N_PGA($1)`" {'
+`	index "'PIPELINE_ID`"'
+`	type "pga"'
+`	no_pm "true"'
+`	data ['
+`		"'N_PGA($1)`_data_w"'
+`		"'N_PGA($1)`_data_str"'
+`	]'
+`	mixer ['
+		$6
+`	]'
+
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/build.m4 b/topology/m4/pipeline.m4
similarity index 76%
rename from topology/m4/build.m4
rename to topology/m4/pipeline.m4
index 9361219..7a91439 100644
--- a/topology/m4/build.m4
+++ b/topology/m4/pipeline.m4
@@ -1,5 +1,36 @@
 divert(-1)
 
+dnl Define macro for pipeline widget
+
+dnl Pipeline name)
+define(`N_PIPELINE', `PIPELINE.'PIPELINE_ID`.'$1)
+
+dnl W_PIPELINE(stream, deadline, priority, frames, core, timer, platform)
+define(`W_PIPELINE',
+`SectionVendorTuples."'N_PIPELINE($1)`_tuples" {'
+`	tokens "sof_sched_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_SCHED_DEADLINE'		STR($2)
+`		SOF_TKN_SCHED_PRIORITY'		STR($3)
+`		SOF_TKN_SCHED_CORE'		STR($5)
+`		SOF_TKN_SCHED_FRAMES'		STR($4)
+`		SOF_TKN_SCHED_TIMER'		STR($6)
+`	}'
+`}'
+`SectionData."'N_PIPELINE($1)`_data" {'
+`	tuples "'N_PIPELINE($1)`_tuples"'
+`}'
+`SectionWidget."'N_PIPELINE($1)`" {'
+`	index "'PIPELINE_ID`"'
+`	type "scheduler"'
+`	no_pm "true"'
+`	stream_name "'$1`"'
+`	data ['
+`		"'N_PIPELINE($1)`_data"'
+`		"'$7`"'
+`	]'
+`}')
+
 dnl PIPELINE_PCM_ADD(pipeline,
 dnl     pipe id, pcm, max channels, format,
 dnl     frames, deadline, priority, core, dmac, dmac_chan)
@@ -85,33 +116,4 @@ define(`PIPELINE_ADD',
 `include($1)'
 )
 
-dnl DAI_ADD(pipeline,
-dnl     pipe id, dai type, dai_index,
-dnl     buffer, periods, format,
-dnl     frames, deadline, priority, core)
-define(`DAI_ADD',
-`undefine(`PIPELINE_ID')'
-`undefine(`DAI_TYPE')'
-`undefine(`DAI_INDEX')'
-`undefine(`DAI_BUF')'
-`undefine(`DAI_PERIODS')'
-`undefine(`DAI_FORMAT')'
-`undefine(`SCHEDULE_FRAMES')'
-`undefine(`SCHEDULE_DEADLINE')'
-`undefine(`SCHEDULE_PRIORITY')'
-`undefine(`SCHEDULE_CORE')'
-`define(`PIPELINE_ID', $2)'
-`define(`DAI_TYPE', STR($3))'
-`define(`DAI_INDEX', STR($4))'
-`define(`DAI_BUF', $5)'
-`define(`DAI_NAME', $3$4)'
-`define(`DAI_PERIODS', $6)'
-`define(`DAI_FORMAT', $7)'
-`define(`SCHEDULE_FRAMES', $8)'
-`define(`SCHEDULE_DEADLINE', $9)'
-`define(`SCHEDULE_PRIORITY', $10)'
-`define(`SCHEDULE_CORE', $11)'
-`include($1)'
-)
-
 divert(0)dnl
diff --git a/topology/m4/src.m4 b/topology/m4/src.m4
new file mode 100644
index 0000000..aca18e3
--- /dev/null
+++ b/topology/m4/src.m4
@@ -0,0 +1,41 @@
+divert(-1)
+
+dnl Defines the macro for SRC widget
+
+dnl SRC name)
+define(`N_SRC', `SRC'PIPELINE_ID`.'$1)
+
+dnl W_SRC(name, format, periods_sink, periods_source, data, preload)
+define(`W_SRC',
+`SectionVendorTuples."'N_SRC($1)`_tuples_w" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($3)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($4)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($6)
+`	}'
+`}'
+`SectionData."'N_SRC($1)`_data_w" {'
+`	tuples "'N_SRC($1)`_tuples_w"'
+`}'
+`SectionVendorTuples."'N_SRC($1)`_tuples_str" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_COMP_FORMAT'	STR($2)
+`	}'
+`}'
+`SectionData."'N_SRC($1)`_data_str" {'
+`	tuples "'N_SRC($1)`_tuples_str"'
+`}'
+`SectionWidget."'N_SRC($1)`" {'
+`	index "'PIPELINE_ID`"'
+`	type "src"'
+`	no_pm "true"'
+`	data ['
+`		"'N_SRC($1)`_data_w"'
+`		"'N_SRC($1)`_data_str"'
+`		"'$5`"'
+`	]'
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/tone.m4 b/topology/m4/tone.m4
new file mode 100644
index 0000000..6a88b37
--- /dev/null
+++ b/topology/m4/tone.m4
@@ -0,0 +1,43 @@
+divert(-1)
+
+dnl Define macro for siggen widget
+
+dnl Tone name)
+define(`N_TONE', `TONE'PIPELINE_ID`.'$1)
+
+dnl W_TONE(name, format, periods_sink, periods_source, preload, kcontrols_list)
+define(`W_TONE',
+`SectionVendorTuples."'N_TONE($1)`_tuples_w" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."word" {'
+`		SOF_TKN_COMP_PERIOD_SINK_COUNT'		STR($3)
+`		SOF_TKN_COMP_PERIOD_SOURCE_COUNT'	STR($4)
+`		SOF_TKN_COMP_PRELOAD_COUNT'		STR($5)
+`	}'
+`}'
+`SectionData."'N_TONE($1)`_data_w" {'
+`	tuples "'N_TONE($1)`_tuples_w"'
+`}'
+`SectionVendorTuples."'N_TONE($1)`_tuples_str" {'
+`	tokens "sof_comp_tokens"'
+`	tuples."string" {'
+`		SOF_TKN_COMP_FORMAT'	STR($2)
+`	}'
+`}'
+`SectionData."'N_TONE($1)`_data_str" {'
+`	tuples "'N_TONE($1)`_tuples_str"'
+`}'
+`SectionWidget."'N_TONE($1)`" {'
+`	index "'PIPELINE_ID`"'
+`	type "siggen"'
+`	no_pm "true"'
+`	data ['
+`		"'N_TONE($1)`_data_w"'
+`		"'N_TONE($1)`_data_str"'
+`	]'
+`	mixer ['
+		$6
+`	]'
+`}')
+
+divert(0)dnl
diff --git a/topology/m4/utils.m4 b/topology/m4/utils.m4
new file mode 100644
index 0000000..e929244
--- /dev/null
+++ b/topology/m4/utils.m4
@@ -0,0 +1,65 @@
+divert(-1)
+
+define(`concat',`$1$2')
+
+define(`STR', `"'$1`"')
+
+dnl Argument iterator.
+define(`argn', `ifelse(`$1', 1, ``$2'',
+       `argn(decr(`$1'), shift(shift($@)))')')
+
+dnl Defines a list of items from a variable number of params.
+dnl Use as last argument in a macro.
+dnl The first argument specifies the number of tabs to be added for formatting
+define(`LIST_LOOP', `argn(j,$@)
+$1ifelse(i,`2', `', `define(`i', decr(i))define(`j', incr(j))$0($@)')')
+
+define(`LIST', `pushdef(`i', $#)pushdef(`j', `2')LIST_LOOP($@)popdef(i)popdef(j)')
+
+dnl Sums a list of variable arguments. Use as last argument in macro.
+define(`SUM_LOOP', `eval(argn(j,$@)
+		ifelse(i,`1', `', `define(`i', decr(i)) define(`j', incr(j)) + $0($@)'))')
+
+dnl Memory capabilities
+define(`MEMCAPS', `pushdef(`i', $#) pushdef(`j', `1') SUM_LOOP($@)')
+
+dnl create direct DAPM/pipeline link between 2 widgets)
+define(`dapm', `"$1, , $2"')
+
+dnl COMP_SAMPLE_SIZE(FMT)
+define(`COMP_SAMPLE_SIZE',
+`ifelse(
+	$1, `s16le', `2',
+	$1, `s24_4le', `4',
+	$1, `s32le', `4',
+	$1, `float', `4',
+	`4')')
+
+dnl P_GRAPH(name, CONNECTIONS)
+define(`P_GRAPH',
+`SectionGraph.STR($1) {'
+`	index STR($2)'
+`'
+`	lines ['
+`		$3'
+`	]'
+`}')
+
+dnl W_VENDORTUPLES(name, tokens, RATE_OUT)
+define(`W_VENDORTUPLES',
+`SectionVendorTuples.STR($1) {'
+`	tokens STR($2)'
+`'
+`	tuples."word" {'
+`		$3'
+`	}'
+`}')
+
+dnl W_DATA(name, tuples)
+define(`W_DATA',
+`SectionData.STR($1) {'
+`	tuples STR($2)'
+`}')
+
+divert(0) dnl
+
diff --git a/topology/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4
index d4ac613..cf0a20e 100644
--- a/topology/reef-apl-nocodec.m4
+++ b/topology/reef-apl-nocodec.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`pipeline.m4')
+include(`utils.m4')
+include(`dai.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-bdw-rt286.m4 b/topology/reef-bdw-rt286.m4
index eaba2d9..fa894f6 100644
--- a/topology/reef-bdw-rt286.m4
+++ b/topology/reef-bdw-rt286.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`pipeline.m4')
+include(`utils.m4')
+include(`dai.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-bdw-rt5640.m4 b/topology/reef-bdw-rt5640.m4
index 5d4485b..ec920a5 100644
--- a/topology/reef-bdw-rt5640.m4
+++ b/topology/reef-bdw-rt5640.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-bxt-nocodec.m4 b/topology/reef-bxt-nocodec.m4
index dbac98a..b7717d0 100644
--- a/topology/reef-bxt-nocodec.m4
+++ b/topology/reef-bxt-nocodec.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-byt-da7212.m4 b/topology/reef-byt-da7212.m4
index 840ea69..7515c63 100644
--- a/topology/reef-byt-da7212.m4
+++ b/topology/reef-byt-da7212.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-byt-nocodec.m4 b/topology/reef-byt-nocodec.m4
index 56aee22..b3ca196 100644
--- a/topology/reef-byt-nocodec.m4
+++ b/topology/reef-byt-nocodec.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`pipeline.m4')
+include(`utils.m4')
+include(`dai.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-byt-rt5640.m4 b/topology/reef-byt-rt5640.m4
index f8d0e40..9fa15a2 100644
--- a/topology/reef-byt-rt5640.m4
+++ b/topology/reef-byt-rt5640.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-byt-rt5645.m4 b/topology/reef-byt-rt5645.m4
index 023d92d..c81a4db 100644
--- a/topology/reef-byt-rt5645.m4
+++ b/topology/reef-byt-rt5645.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-byt-rt5651.m4 b/topology/reef-byt-rt5651.m4
index ccac260..96147d3 100644
--- a/topology/reef-byt-rt5651.m4
+++ b/topology/reef-byt-rt5651.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-cht-max98090.m4 b/topology/reef-cht-max98090.m4
index 3218402..5690df4 100644
--- a/topology/reef-cht-max98090.m4
+++ b/topology/reef-cht-max98090.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-cht-nocodec.m4 b/topology/reef-cht-nocodec.m4
index 24560ee..32acb62 100644
--- a/topology/reef-cht-nocodec.m4
+++ b/topology/reef-cht-nocodec.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`pipeline.m4')
+include(`utils.m4')
+include(`dai.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-cnl-rt274.m4 b/topology/reef-cnl-rt274.m4
index f91a74f..e95363b 100644
--- a/topology/reef-cnl-rt274.m4
+++ b/topology/reef-cnl-rt274.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/reef-hsw-rt5640.m4 b/topology/reef-hsw-rt5640.m4
index 663686b..1f63820 100644
--- a/topology/reef-hsw-rt5640.m4
+++ b/topology/reef-hsw-rt5640.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/sof/pipe-dai-capture.m4 b/topology/sof/pipe-dai-capture.m4
index 3699138..a5a72d0 100644
--- a/topology/sof/pipe-dai-capture.m4
+++ b/topology/sof/pipe-dai-capture.m4
@@ -1,7 +1,9 @@
 # DAI Capture connector
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 #
 # DAI definitions
diff --git a/topology/sof/pipe-dai-playback.m4 b/topology/sof/pipe-dai-playback.m4
index d35d3b1..e70998b 100644
--- a/topology/sof/pipe-dai-playback.m4
+++ b/topology/sof/pipe-dai-playback.m4
@@ -1,7 +1,9 @@
 # DAI Playback connector
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 #
 # DAI definitions
diff --git a/topology/sof/pipe-low-latency-capture.m4 b/topology/sof/pipe-low-latency-capture.m4
index 7adfd14..5619999 100644
--- a/topology/sof/pipe-low-latency-capture.m4
+++ b/topology/sof/pipe-low-latency-capture.m4
@@ -5,7 +5,11 @@
 #  host PCM_C <--B5-- volume(0C) <--B4-- source DAI0
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`pga.m4')
+include(`mixercontrol.m4')
 
 #
 # Controls
diff --git a/topology/sof/pipe-low-latency-playback.m4 b/topology/sof/pipe-low-latency-playback.m4
index 11cf07d..4a4fca9 100644
--- a/topology/sof/pipe-low-latency-playback.m4
+++ b/topology/sof/pipe-low-latency-playback.m4
@@ -20,7 +20,12 @@
 #
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`pga.m4')
+include(`mixer.m4')
+include(`mixercontrol.m4')
 
 #
 # Controls
diff --git a/topology/sof/pipe-passthrough-capture.m4 b/topology/sof/pipe-passthrough-capture.m4
index cfa357a..a13887a 100644
--- a/topology/sof/pipe-passthrough-capture.m4
+++ b/topology/sof/pipe-passthrough-capture.m4
@@ -5,8 +5,11 @@
 #  host PCM_C <-- B0 <-- sink DAI0
 
 # Include topology builder
-include(`local.m4')
-
+include(`utils.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 #
 # Components and Buffers
diff --git a/topology/sof/pipe-passthrough-playback.m4 b/topology/sof/pipe-passthrough-playback.m4
index 3218431..8a9e8ff 100644
--- a/topology/sof/pipe-passthrough-playback.m4
+++ b/topology/sof/pipe-passthrough-playback.m4
@@ -5,8 +5,11 @@
 #  host PCM_P --> B0 --> sink DAI0
 
 # Include topology builder
-include(`local.m4')
-
+include(`utils.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 #
 # Components and Buffers
diff --git a/topology/sof/pipe-pcm-media.m4 b/topology/sof/pipe-pcm-media.m4
index 0196f98..f2053b7 100644
--- a/topology/sof/pipe-pcm-media.m4
+++ b/topology/sof/pipe-pcm-media.m4
@@ -8,7 +8,12 @@
 #
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`src.m4')
+include(`buffer.m4')
+include(`pga.m4')
+include(`mixercontrol.m4')
+include(`pipeline.m4')
 
 #
 # Controls
diff --git a/topology/sof/pipe-src-capture.m4 b/topology/sof/pipe-src-capture.m4
index 824dcdb..a58eb68 100644
--- a/topology/sof/pipe-src-capture.m4
+++ b/topology/sof/pipe-src-capture.m4
@@ -5,8 +5,12 @@
 #  host PCM_P --> SRC --> sink DAI0
 
 # Include topology builder
-include(`local.m4')
-
+include(`utils.m4')
+include(`src.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 #
 # Components and Buffers
diff --git a/topology/sof/pipe-src-playback.m4 b/topology/sof/pipe-src-playback.m4
index 3009ff7..7bf8f47 100644
--- a/topology/sof/pipe-src-playback.m4
+++ b/topology/sof/pipe-src-playback.m4
@@ -5,8 +5,12 @@
 #  host PCM_P --> SRC --> sink DAI0
 
 # Include topology builder
-include(`local.m4')
-
+include(`utils.m4')
+include(`src.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`dai.m4')
+include(`pipeline.m4')
 
 #
 # Components and Buffers
diff --git a/topology/sof/pipe-tone.m4 b/topology/sof/pipe-tone.m4
index 899c426..09ed32c 100644
--- a/topology/sof/pipe-tone.m4
+++ b/topology/sof/pipe-tone.m4
@@ -8,7 +8,12 @@
 #
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`buffer.m4')
+include(`pga.m4')
+include(`tone.m4')
+include(`mixercontrol.m4')
+include(`pipeline.m4')
 
 #
 # Controls
diff --git a/topology/sof/pipe-volume-capture.m4 b/topology/sof/pipe-volume-capture.m4
index 299a0f8..5aa0d12 100644
--- a/topology/sof/pipe-volume-capture.m4
+++ b/topology/sof/pipe-volume-capture.m4
@@ -5,7 +5,13 @@
 #  host PCM_C <-- B0 <-- Volume 0 <-- B1 <-- source DAI0
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`pga.m4')
+include(`dai.m4')
+include(`mixercontrol.m4')
+include(`pipeline.m4')
 
 #
 # Controls
diff --git a/topology/sof/pipe-volume-playback.m4 b/topology/sof/pipe-volume-playback.m4
index 3e3f98e..90fe303 100644
--- a/topology/sof/pipe-volume-playback.m4
+++ b/topology/sof/pipe-volume-playback.m4
@@ -5,7 +5,13 @@
 #  host PCM_P --> B0 --> Volume 0 --> B1 --> sink DAI0
 
 # Include topology builder
-include(`local.m4')
+include(`utils.m4')
+include(`buffer.m4')
+include(`pcm.m4')
+include(`pga.m4')
+include(`dai.m4')
+include(`mixercontrol.m4')
+include(`pipeline.m4')
 
 #
 # Controls
diff --git a/topology/test/test-capture-ssp.m4 b/topology/test/test-capture-ssp.m4
index 2c808ba..8950222 100644
--- a/topology/test/test-capture-ssp.m4
+++ b/topology/test/test-capture-ssp.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`dai.m4')
+include(`utils.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/test/test-playback-ssp.m4 b/topology/test/test-playback-ssp.m4
index 093ad17..db6cb6c 100644
--- a/topology/test/test-playback-ssp.m4
+++ b/topology/test/test-playback-ssp.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`pipeline.m4')
+include(`dai.m4')
+include(`utils.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/test/test-ssp.m4 b/topology/test/test-ssp.m4
index 304aab9..01e3a02 100644
--- a/topology/test/test-ssp.m4
+++ b/topology/test/test-ssp.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`dai.m4')
+include(`utils.m4')
+include(`pipeline.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
diff --git a/topology/test/test-tone-playback-ssp.m4 b/topology/test/test-tone-playback-ssp.m4
index 2fe6693..9231316 100644
--- a/topology/test/test-tone-playback-ssp.m4
+++ b/topology/test/test-tone-playback-ssp.m4
@@ -3,8 +3,9 @@
 #
 
 # Include topology builder
-include(`local.m4')
-include(`build.m4')
+include(`pipeline.m4')
+include(`dai.m4')
+include(`utils.m4')
 
 # Include TLV library
 include(`common/tlv.m4')
-- 
2.14.1



More information about the Sound-open-firmware mailing list