[Sound-open-firmware] [PATCH 1/3] topology: append pipeline id to PGA and control mixer
Signed-off-by: Keyon Jie yang.jie@linux.intel.com --- topology/m4/mixercontrol.m4 | 2 +- topology/sof/pipe-low-latency-capture.m4 | 2 +- topology/sof/pipe-low-latency-playback.m4 | 4 ++-- topology/sof/pipe-pcm-media.m4 | 2 +- topology/sof/pipe-tone.m4 | 4 ++-- topology/sof/pipe-volume-capture.m4 | 2 +- topology/sof/pipe-volume-playback.m4 | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/topology/m4/mixercontrol.m4 b/topology/m4/mixercontrol.m4 index 77a3784..a3423c3 100644 --- a/topology/m4/mixercontrol.m4 +++ b/topology/m4/mixercontrol.m4 @@ -30,7 +30,7 @@ define(`CONTROLMIXER_OPS',
dnl C_CONTROLMIXER(name, index, ops, max, invert, tlv, KCONTROL_CHANNELS) define(`C_CONTROLMIXER', -`SectionControlMixer.STR($1) {' +`SectionControlMixer."$1 PIPELINE_ID" {' `' ` # control belongs to this index group' ` index STR($2)' diff --git a/topology/sof/pipe-low-latency-capture.m4 b/topology/sof/pipe-low-latency-capture.m4 index 96fa3cc..39be2bc 100644 --- a/topology/sof/pipe-low-latency-capture.m4 +++ b/topology/sof/pipe-low-latency-capture.m4 @@ -32,7 +32,7 @@ C_CONTROLMIXER(PCM PCM_ID Capture Volume, PIPELINE_ID, W_PCM_CAPTURE(PCM_ID, Low Latency Capture, PIPELINE_DMAC, PIPELINE_DMAC_CHAN, 0, 2, 0)
# "Capture Volume" has 2 sink and source periods for host and DAI ping-pong -W_PGA(0, PIPELINE_FORMAT, 2, 2, 0, LIST(` ', "PCM PCM_ID Capture Volume")) +W_PGA(0, PIPELINE_FORMAT, 2, 2, 0, LIST(` ', "PCM PCM_ID Capture Volume PIPELINE_ID"))
# Capture Buffers W_BUFFER(0, COMP_BUFFER_SIZE(2, diff --git a/topology/sof/pipe-low-latency-playback.m4 b/topology/sof/pipe-low-latency-playback.m4 index b7f2d11..b40b793 100644 --- a/topology/sof/pipe-low-latency-playback.m4 +++ b/topology/sof/pipe-low-latency-playback.m4 @@ -57,10 +57,10 @@ C_CONTROLMIXER(Master Playback Volume, PIPELINE_ID, W_PCM_PLAYBACK(PCM_ID, Low Latency Playback, PIPELINE_DMAC, PIPELINE_DMAC_CHAN, 2, 0, 2)
# "Playback Volume" has 1 sink period and 2 source periods for host ping-pong -W_PGA(0, PIPELINE_FORMAT, 1, 2, 1, LIST(` ', "PCM PCM_ID Playback Volume")) +W_PGA(0, PIPELINE_FORMAT, 1, 2, 1, LIST(` ', "PCM PCM_ID Playback Volume PIPELINE_ID"))
# "Master Playback Volume" has 1 source and 2 sink periods for DAI ping-pong -W_PGA(1, PIPELINE_FORMAT, 2, 1, 1, LIST(` ', "Master Playback Volume")) +W_PGA(1, PIPELINE_FORMAT, 2, 1, 1, LIST(` ', "Master Playback Volume PIPELINE_ID"))
# Mixer 0 has 1 sink and source periods. W_MIXER(0, PIPELINE_FORMAT, 1, 1, 1) diff --git a/topology/sof/pipe-pcm-media.m4 b/topology/sof/pipe-pcm-media.m4 index 9eaa187..7f68977 100644 --- a/topology/sof/pipe-pcm-media.m4 +++ b/topology/sof/pipe-pcm-media.m4 @@ -45,7 +45,7 @@ W_DATA(media_src_conf, media_src_tokens) W_PCM_PLAYBACK(PCM_ID, Media Playback, PIPELINE_DMAC, PIPELINE_DMAC_CHAN, 2, 0, 2)
# "Playback Volume" has 2 sink period and 2 source periods for host ping-pong -W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "PCM PCM_ID Playback Volume")) +W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "PCM PCM_ID Playback Volume PIPELINE_ID"))
# "SRC 0" has 2 sink and source periods. W_SRC(0, PIPELINE_FORMAT, 2, 2, media_src_conf, 2) diff --git a/topology/sof/pipe-tone.m4 b/topology/sof/pipe-tone.m4 index 09ed32c..3cdd408 100644 --- a/topology/sof/pipe-tone.m4 +++ b/topology/sof/pipe-tone.m4 @@ -20,7 +20,7 @@ include(`pipeline.m4') #
# Volume Mixer control with max value of 32 -C_CONTROLMIXER(Tone Volume PIPELINE_ID, PIPELINE_ID, +C_CONTROLMIXER(Tone Volume, PIPELINE_ID, CONTROLMIXER_OPS(volsw, 256 binds the mixer control to volume get/put handlers, 256, 256), CONTROLMIXER_MAX(, 32), false, @@ -29,7 +29,7 @@ C_CONTROLMIXER(Tone Volume PIPELINE_ID, PIPELINE_ID, LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1)))
# Switch type Mixer Control with max value of 1 -C_CONTROLMIXER(Tone Switch PIPELINE_ID, PIPELINE_ID, +C_CONTROLMIXER(Tone Switch, PIPELINE_ID, CONTROLMIXER_OPS(volsw, 256 binds the mixer control to volume get/put handlers, 256, 256), CONTROLMIXER_MAX(max 1 indicates switch type control, 1), false, diff --git a/topology/sof/pipe-volume-capture.m4 b/topology/sof/pipe-volume-capture.m4 index 5d1c24f..b3d3206 100644 --- a/topology/sof/pipe-volume-capture.m4 +++ b/topology/sof/pipe-volume-capture.m4 @@ -34,7 +34,7 @@ C_CONTROLMIXER(Master Capture Volume, PIPELINE_ID, W_PCM_CAPTURE(PCM_ID, Passthrough Capture, PIPELINE_DMAC, PIPELINE_DMAC_CHAN, 0, 2, 2)
# "Volume" has 2 source and 2 sink periods -W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "Master Capture Volume")) +W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "Master Capture Volume PIPELINE_ID"))
# Capture Buffers W_BUFFER(0, COMP_BUFFER_SIZE(2, diff --git a/topology/sof/pipe-volume-playback.m4 b/topology/sof/pipe-volume-playback.m4 index 727490d..4b12d2a 100644 --- a/topology/sof/pipe-volume-playback.m4 +++ b/topology/sof/pipe-volume-playback.m4 @@ -34,7 +34,7 @@ C_CONTROLMIXER(Master Playback Volume, PIPELINE_ID, W_PCM_PLAYBACK(PCM_ID, Passthrough Playback, PIPELINE_DMAC, PIPELINE_DMAC_CHAN, 2, 0, 2)
# "Volume" has 2 source and 2 sink periods -W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "Master Playback Volume")) +W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "Master Playback Volume PIPELINE_ID"))
# Playback Buffers W_BUFFER(0, COMP_BUFFER_SIZE(2,
Signed-off-by: Keyon Jie yang.jie@linux.intel.com --- topology/m4/pcm.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/topology/m4/pcm.m4 b/topology/m4/pcm.m4 index f77cb01..40a3b17 100644 --- a/topology/m4/pcm.m4 +++ b/topology/m4/pcm.m4 @@ -34,7 +34,7 @@ define(`W_PCM_PLAYBACK', ` index "'PIPELINE_ID`"' ` type "aif_in"' ` no_pm "true"' -` stream_name "'$2`"' +` stream_name "'$2` '$1`"' ` data [' ` "'N_PCMP($1)`_data"' ` "'N_PCMP($1)`_data_w_comp"' @@ -69,7 +69,7 @@ define(`W_PCM_CAPTURE', ` index "'PIPELINE_ID`"' ` type "aif_out"' ` no_pm "true"' -` stream_name "'$2`"' +` stream_name "'$2` '$1`"' ` data [' ` "'N_PCMC($1)`_data"' ` "'N_PCMC($1)`_data_w_comp"'
Signed-off-by: Keyon Jie yang.jie@linux.intel.com --- topology/reef-apl-nocodec.m4 | 96 ++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 53 deletions(-)
diff --git a/topology/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4 index 78a1a4e..72eff0e 100644 --- a/topology/reef-apl-nocodec.m4 +++ b/topology/reef-apl-nocodec.m4 @@ -19,82 +19,72 @@ include(`dsps/bxt.m4') # # Define the pipelines # -# PCM0 ----> volume ---------------+ -# |--low latency mixer ----> volume ----> SSP2 -# PCM2 ----> SRC -----> volume ----+ -# | -# Tone -----> volume ----+ -# -# PCM1 <---- Volume <---- SSP2 +# PCM0 ----> Volume ----> SSP4 +# PCM1 ----> Volume ----> SSP2 +# PCM2 <---- Volume <---- SSP2 #
-# Low Latency playback pipeline 1 on PCM 0 using max 2 channels of s32le. +# Volume playback pipeline 1 on PCM 0 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 # Use DMAC 0 channel 1 for PCM audio playback data -PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, - 1, 0, 2, s32le, - 48, 1000, 0, 0, 0, 1) +PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, + 1, 0, 2, s16le, + 48, 1000, 0, 0, 0, 1, SSP, 4, s16le, 2)
-# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le. +# Volume playback pipeline 1 on PCM 0 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 -# Use DMAC 0 channel 2 for PCM audio capture data -PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, - 2, 0, 2, s32le, - 48, 1000, 0, 0, 0, 2) - -# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le. -# Schedule 96 frames per 2000us deadline on core 0 with priority 1 -# Use DMAC 0 channel 3 for PCM audio playback data -PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, - 3, 1, 2, s32le, - 96, 2000, 1, 0, 0, 3) - -# Tone Playback pipeline 5 using max 2 channels of s32le. -# Schedule 192 frames per 4000us deadline on core 0 with priority 2 -PIPELINE_ADD(sof/pipe-tone.m4, - 5, 2, s32le, - 192, 4000, 2, 0) - -# Connect pipelines together -SectionGraph."pipe-apl-nocodec" { - index "0" +# Use DMAC 0 channel 1 for PCM audio playback data +PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, + 2, 1, 2, s16le, + 48, 1000, 0, 0, 0, 1, SSP, 2, s16le, 2)
- lines [ - # media 0 - dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3) - #tone - dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5) - ] -} +# Volume playback pipeline 1 on PCM 0 using max 2 channels of s16le. +# Schedule 48 frames per 1000us deadline on core 0 with priority 0 +# Use DMAC 0 channel 2 for PCM audio capture data +PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, + 3, 1, 2, s16le, + 48, 1000, 0, 0, 0, 1, SSP, 2, s16le, 2)
# # DAI configuration # -# SSP port 2 is our only pipeline DAI -# + +# playback DAI is SSP4 using 2 periods +# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0 +DAI_ADD(sof/pipe-dai-playback.m4, + 1, SSP, 4, SSP4-NoCodec, + PIPELINE_SOURCE_1, 2, s16le, + 48, 1000, 0, 0)
# playback DAI is SSP2 using 2 periods -# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 +# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-playback.m4, - 1, SSP, 2, NoCodec, - PIPELINE_SOURCE_1, 2, s24le, + 2, SSP, 2, SSP4-NoCodec, + PIPELINE_SOURCE_2, 2, s16le, 48, 1000, 0, 0)
# capture DAI is SSP2 using 2 periods -# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 +# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-capture.m4, - 2, SSP, 2, NoCodec, - PIPELINE_SINK_2, 2, s24le, + 3, SSP, 2, SSP2-NoCodec, + PIPELINE_SINK_3, 2, s16le, 48, 1000, 0, 0)
# PCM Low Latency -PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) +PCM_PLAYBACK_ADD(Port4, 1, 0, 0, PIPELINE_PCM_1) +PCM_DUPLEX_ADD(Port2, 4, 1, 1, PIPELINE_PCM_2, PIPELINE_PCM_3)
# # BE configurations - overrides config in ACPI if present # -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24, - DAI_CLOCK(mclk, 19200000, slave), - DAI_CLOCK(bclk, 2400000, slave), +DAI_CONFIG(SSP, 2, SSP2-NoCodec, I2S, 16, + DAI_CLOCK(mclk, 24576000, slave), + DAI_CLOCK(bclk, 1536000, slave), + DAI_CLOCK(fsync, 48000, slave), + DAI_TDM(2, 16, 3, 3)) + +DAI_CONFIG(SSP, 4, SSP4-NoCodec, I2S, 16, + DAI_CLOCK(mclk, 24576000, slave), + DAI_CLOCK(bclk, 1536000, slave), DAI_CLOCK(fsync, 48000, slave), - DAI_TDM(2, 25, 3, 3)) + DAI_TDM(2, 16, 3, 3))
On Wed, 2018-03-28 at 20:43 +0800, Keyon Jie wrote:
Signed-off-by: Keyon Jie yang.jie@linux.intel.com
topology/m4/mixercontrol.m4 | 2 +- topology/sof/pipe-low-latency-capture.m4 | 2 +- topology/sof/pipe-low-latency-playback.m4 | 4 ++-- topology/sof/pipe-pcm-media.m4 | 2 +- topology/sof/pipe-tone.m4 | 4 ++-- topology/sof/pipe-volume-capture.m4 | 2 +- topology/sof/pipe-volume-playback.m4 | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-)
All applied.
Thanks
Liam
participants (2)
-
Keyon Jie
-
Liam Girdwood