Sound-open-firmware
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
October 2017
- 7 participants
- 26 discussions
[Sound-open-firmware] [PATCH] topology: Allows playback and capture pipelines to share same PCM
by Liam Girdwood 02 Oct '17
by Liam Girdwood 02 Oct '17
02 Oct '17
Add support so that different playback and capture pipelines can share
the same host PCM device.
Modify board configs to use PCM0 for playback and capture.
Signed-off-by: Liam Girdwood <liam.r.girdwood(a)linux.intel.com>
---
topology/m4/local.m4 | 62 +++++++++++++++++++--------
topology/reef-apl-nocodec.m4 | 15 ++++---
topology/reef-bdw-rt286.m4 | 15 ++++---
topology/reef-bdw-rt5640.m4 | 15 ++++---
topology/reef-bxt-nocodec.m4 | 13 +++---
topology/reef-byt-nocodec.m4 | 11 +++--
topology/reef-byt-rt5640.m4 | 11 +++--
topology/reef-byt-rt5651.m4 | 11 +++--
topology/reef-cht-nocodec.m4 | 11 +++--
topology/reef-hsw-rt5640.m4 | 15 ++++---
topology/sof/pipe-low-latency-capture.m4 | 28 ++----------
topology/sof/pipe-low-latency-playback.m4 | 29 ++-----------
topology/sof/pipe-passthrough-playback.m4 | 4 +-
topology/sof/pipe-passthrough-src-playback.m4 | 4 +-
topology/sof/pipe-passthrough-vol-playback.m4 | 4 +-
topology/sof/pipe-pcm-media.m4 | 6 +--
16 files changed, 130 insertions(+), 124 deletions(-)
diff --git a/topology/m4/local.m4 b/topology/m4/local.m4
index 50c6b5d..e521267 100644
--- a/topology/m4/local.m4
+++ b/topology/m4/local.m4
@@ -67,12 +67,13 @@ define(`W_BUFFER',
`}')
dnl PCM name)
-define(`N_PCM', `PCM'PCM_ID)
+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_PCM($1)`_tuples_w_comp" {'
+`SectionVendorTuples."'N_PCMP($1)`_tuples_w_comp" {'
` tokens "sof_comp_tokens"'
` tuples."word" {'
` SOF_TKN_COMP_PERIOD_SINK_COUNT' STR($4)
@@ -80,34 +81,34 @@ define(`W_PCM_PLAYBACK',
` SOF_TKN_COMP_PRELOAD_COUNT' STR($6)
` }'
`}'
-`SectionData."'N_PCM($1)`_data_w_comp" {'
-` tuples "'N_PCM($1)`_tuples_w_comp"'
+`SectionData."'N_PCMP($1)`_data_w_comp" {'
+` tuples "'N_PCMP($1)`_tuples_w_comp"'
`}'
-`SectionVendorTuples."'N_PCM($1)`_tuples" {'
+`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_PCM($1)`_data" {'
-` tuples "'N_PCM($1)`_tuples"'
+`SectionData."'N_PCMP($1)`_data" {'
+` tuples "'N_PCMP($1)`_tuples"'
`}'
-`SectionWidget."'N_PCM`" {'
+`SectionWidget."'N_PCMP`" {'
` index "'PIPELINE_ID`"'
` type "aif_out"'
` no_pm "true"'
` stream_name "'$1`"'
` data ['
-` "'N_PCM($1)`_data"'
-` "'N_PCM($1)`_data_w_comp"'
+` "'N_PCMP($1)`_data"'
+` "'N_PCMP($1)`_data_w_comp"'
` ]'
`}')
dnl W_PCM_PLAYBACK(stream, dmac, dmac_chan, periods_sink, periods_source, preload)
define(`W_PCM_CAPTURE',
-`SectionVendorTuples."'N_PCM($1)`_tuples_w_comp" {'
+`SectionVendorTuples."'N_PCMC($1)`_tuples_w_comp" {'
` tokens "sof_comp_tokens"'
` tuples."word" {'
` SOF_TKN_COMP_PERIOD_SINK_COUNT' STR($4)
@@ -115,27 +116,27 @@ define(`W_PCM_CAPTURE',
` SOF_TKN_COMP_PRELOAD_COUNT' STR($6)
` }'
`}'
-`SectionData."'N_PCM($1)`_data_w_comp" {'
-` tuples "'N_PCM($1)`_tuples_w_comp"'
+`SectionData."'N_PCMC($1)`_data_w_comp" {'
+` tuples "'N_PCMC($1)`_tuples_w_comp"'
`}'
-`SectionVendorTuples."'N_PCM($1)`_tuples" {'
+`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_PCM($1)`_data" {'
-` tuples "'N_PCM($1)`_tuples"'
+`SectionData."'N_PCMC($1)`_data" {'
+` tuples "'N_PCMC($1)`_tuples"'
`}'
-`SectionWidget."'N_PCM`" {'
+`SectionWidget."'N_PCMC`" {'
` index "'PIPELINE_ID`"'
` type "aif_out"'
` no_pm "true"'
` stream_name "'$1`"'
` data ['
-` "'N_PCM($1)`_data"'
-` "'N_PCM($1)`_data_w_comp"'
+` "'N_PCMC($1)`_data"'
+` "'N_PCMC($1)`_data_w_comp"'
` ]'
`}')
@@ -478,5 +479,28 @@ define(`COMP_SAMPLE_SIZE',
dnl COMP_BUFFER_SIZE( num_periods, sample_size, channels, fmames)
define(`COMP_BUFFER_SIZE', `eval(`$1 * $2 * $3 * $4')')
+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/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4
index 5e497f6..96f28d5 100644
--- a/topology/reef-apl-nocodec.m4
+++ b/topology/reef-apl-nocodec.m4
@@ -36,25 +36,25 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
96, 2000, 1, 0, 0, 3)
-# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# PCM Media Playback pipeline 4 on PCM 2 using max 2 channels of s32le.
# Schedule 96 frames per 2000us deadline on core 0 with priority 1
# Use DMAC 0 channel 4 for PCM audio playback data
PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4,
- 4, 3, 2, s32le,
+ 4, 2, 2, s32le,
96, 2000, 1, 0, 0, 4)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -97,6 +97,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-bdw-rt286.m4 b/topology/reef-bdw-rt286.m4
index cb11ad6..512efe9 100644
--- a/topology/reef-bdw-rt286.m4
+++ b/topology/reef-bdw-rt286.m4
@@ -36,25 +36,25 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
96, 2000, 1, 0, 0, 3)
-# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# PCM Media Playback pipeline 4 on PCM 2 using max 2 channels of s32le.
# Schedule 96 frames per 2000us deadline on core 0 with priority 1
# Use DMAC 0 channel 4 for PCM audio playback data
PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4,
- 4, 3, 2, s32le,
+ 4, 2, 2, s32le,
96, 2000, 1, 0, 0, 4)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -97,6 +97,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-bdw-rt5640.m4 b/topology/reef-bdw-rt5640.m4
index b3c19c2..5e259a6 100644
--- a/topology/reef-bdw-rt5640.m4
+++ b/topology/reef-bdw-rt5640.m4
@@ -36,25 +36,25 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
96, 2000, 1, 0, 0, 3)
-# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# PCM Media Playback pipeline 4 on PCM 2 using max 2 channels of s32le.
# Schedule 96 frames per 2000us deadline on core 0 with priority 1
# Use DMAC 0 channel 4 for PCM audio playback data
PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4,
- 4, 3, 2, s32le,
+ 4, 2, 2, s32le,
96, 2000, 1, 0, 0, 4)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -97,6 +97,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-bxt-nocodec.m4 b/topology/reef-bxt-nocodec.m4
index 58bc6f6..e3c45c9 100644
--- a/topology/reef-bxt-nocodec.m4
+++ b/topology/reef-bxt-nocodec.m4
@@ -36,21 +36,21 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
192, 4000, 1, 0, 0, 3)
-# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# PCM Media Playback pipeline 4 on PCM 2 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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,
@@ -97,6 +97,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-byt-nocodec.m4 b/topology/reef-byt-nocodec.m4
index 5f6cd1d..3db415d 100644
--- a/topology/reef-byt-nocodec.m4
+++ b/topology/reef-byt-nocodec.m4
@@ -34,18 +34,18 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
192, 4000, 1, 0, 0, 3)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -86,6 +86,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-byt-rt5640.m4 b/topology/reef-byt-rt5640.m4
index c5e8b52..1e9bb5f 100644
--- a/topology/reef-byt-rt5640.m4
+++ b/topology/reef-byt-rt5640.m4
@@ -34,18 +34,18 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
192, 4000, 1, 0, 0, 3)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -86,6 +86,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-byt-rt5651.m4 b/topology/reef-byt-rt5651.m4
index e335d66..0867f91 100644
--- a/topology/reef-byt-rt5651.m4
+++ b/topology/reef-byt-rt5651.m4
@@ -34,18 +34,18 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
192, 4000, 1, 0, 0, 3)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -86,6 +86,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-cht-nocodec.m4 b/topology/reef-cht-nocodec.m4
index ddeb71e..195ae5c 100644
--- a/topology/reef-cht-nocodec.m4
+++ b/topology/reef-cht-nocodec.m4
@@ -34,18 +34,18 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
192, 4000, 1, 0, 0, 3)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -86,6 +86,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/reef-hsw-rt5640.m4 b/topology/reef-hsw-rt5640.m4
index efd815b..1b06828 100644
--- a/topology/reef-hsw-rt5640.m4
+++ b/topology/reef-hsw-rt5640.m4
@@ -36,25 +36,25 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4,
1, 0, 2, s32le,
48, 1000, 0, 0, 0, 1)
-# Low Latency capture pipeline 2 on PCM 1 using max 2 channels of s32le.
+# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le.
# 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, 1, 2, s32le,
+ 2, 0, 2, s32le,
48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# PCM Media Playback pipeline 3 on PCM 1 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 3, 1, 2, s32le,
192, 4000, 1, 0, 0, 3)
-# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# PCM Media Playback pipeline 4 on PCM 2 using max 2 channels of s32le.
# Schedule 192 frames per 4000us 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, 2, 2, s32le,
+ 4, 2, 2, s32le,
192, 4000, 1, 0, 0, 4)
# Tone Playback pipeline 5 using max 2 channels of s32le.
@@ -97,6 +97,9 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_2, 2, s24le,
48, 1000, 0, 0)
+# PCM Low Latency
+PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
#
# BE configurations - overrides config in ACPI if present
#
diff --git a/topology/sof/pipe-low-latency-capture.m4 b/topology/sof/pipe-low-latency-capture.m4
index 22df648..0c989a7 100644
--- a/topology/sof/pipe-low-latency-capture.m4
+++ b/topology/sof/pipe-low-latency-capture.m4
@@ -65,8 +65,8 @@ SectionGraph."pipe-ll-capture-PIPELINE_ID" {
index STR(PIPELINE_ID)
lines [
- dapm(Low Latency Capture PCM_ID, N_PCM)
- dapm(N_PCM, N_BUFFER(1))
+ dapm(Low Latency Capture PCM_ID, N_PCMC)
+ dapm(N_PCMC, N_BUFFER(1))
dapm(N_BUFFER(1), N_PGA(0))
dapm(N_PGA(0), N_BUFFER(0))
]
@@ -76,12 +76,7 @@ SectionGraph."pipe-ll-capture-PIPELINE_ID" {
# Pipeline Source and Sinks
#
indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(0))
-
-#
-# Pipeline Configuration.
-#
-
-#W_PIPELINE(N_PGA(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_ll_schedule_plat)
+indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Low Latency Capture PCM_ID)
#
# PCM Configuration
@@ -102,20 +97,3 @@ SectionPCMCapabilities.STR(Low Latency Capture PCM_ID) {
buffer_size_max "65536"
}
-# PCM Low Latency Capture
-SectionPCM.STR(PCM PCM_ID) {
-
- index STR(PIPELINE_ID)
-
- # used for binding to the PCM
- id STR(PCM_ID)
-
- dai.STR(Low Latency Capture PCM_ID) {
- id STR(PCM_ID)
- }
-
- pcm."capture" {
-
- capabilities STR(Low Latency Capture PCM_ID)
- }
-}
diff --git a/topology/sof/pipe-low-latency-playback.m4 b/topology/sof/pipe-low-latency-playback.m4
index c29165e..cd04ccf 100644
--- a/topology/sof/pipe-low-latency-playback.m4
+++ b/topology/sof/pipe-low-latency-playback.m4
@@ -125,8 +125,8 @@ SectionGraph."pipe-ll-playback-PIPELINE_ID" {
index STR(PIPELINE_ID)
lines [
- dapm(N_PCM, Low Latency Playback PCM_ID)
- dapm(N_BUFFER(0), N_PCM)
+ dapm(N_PCMP, Low Latency Playback PCM_ID)
+ dapm(N_BUFFER(0), N_PCMP)
dapm(N_PGA(0), N_BUFFER(0))
dapm(N_BUFFER(1), N_PGA(0))
dapm(N_MIXER(0), N_BUFFER(1))
@@ -141,12 +141,7 @@ SectionGraph."pipe-ll-playback-PIPELINE_ID" {
#
indir(`define', concat(`PIPELINE_SOURCE_', PIPELINE_ID), N_BUFFER(3))
indir(`define', concat(`PIPELINE_MIXER_', PIPELINE_ID), N_MIXER(0))
-
-#
-# Pipeline Configuration.
-#
-
-#W_PIPELINE(N_PGA(1), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_ll_schedule_plat)
+indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Low Latency Playback PCM_ID)
#
# PCM Configuration
@@ -168,21 +163,3 @@ SectionPCMCapabilities.STR(Low Latency Playback PCM_ID) {
buffer_size_max "65536"
}
-# PCM Low Latency Playback
-SectionPCM.STR(PCM PCM_ID) {
-
- index STR(PIPELINE_ID)
-
- # used for binding to the PCM
- id STR(PCM_ID)
-
- dai.STR(Low Latency Playback PCM_ID) {
- id STR(PCM_ID)
- }
-
- # Playback and Capture Configuration
- pcm."playback" {
-
- capabilities STR(Low Latency Playback PCM_ID)
- }
-}
diff --git a/topology/sof/pipe-passthrough-playback.m4 b/topology/sof/pipe-passthrough-playback.m4
index 46ed949..4e6e705 100644
--- a/topology/sof/pipe-passthrough-playback.m4
+++ b/topology/sof/pipe-passthrough-playback.m4
@@ -39,8 +39,8 @@ SectionGraph."pipe-pass-playback-PIPELINE_ID" {
index STR(PIPELINE_ID)
lines [
- dapm(N_PCM, Passthrough Playback PCM_ID)
- dapm(N_BUFFER(0), N_PCM)
+ dapm(N_PCMP, Passthrough Playback PCM_ID)
+ dapm(N_BUFFER(0), N_PCMP)
dapm(N_DAI_OUT, N_BUFFER(0))
]
}
diff --git a/topology/sof/pipe-passthrough-src-playback.m4 b/topology/sof/pipe-passthrough-src-playback.m4
index 0ffc2a4..3cadaf2 100644
--- a/topology/sof/pipe-passthrough-src-playback.m4
+++ b/topology/sof/pipe-passthrough-src-playback.m4
@@ -62,8 +62,8 @@ SectionGraph."pipe-pass-src-playback-PIPELINE_ID" {
index STR(PIPELINE_ID)
lines [
- dapm(N_PCM, Passthrough Playback PCM_ID)
- dapm(N_BUFFER(0), N_PCM)
+ dapm(N_PCMP, Passthrough Playback PCM_ID)
+ dapm(N_BUFFER(0), N_PCMP)
dapm(N_SRC(0), N_BUFFER(0))
dapm(N_BUFFER(1), N_SRC(0))
dapm(N_DAI_OUT, N_BUFFER(1))
diff --git a/topology/sof/pipe-passthrough-vol-playback.m4 b/topology/sof/pipe-passthrough-vol-playback.m4
index ffc9000..f0e39e8 100644
--- a/topology/sof/pipe-passthrough-vol-playback.m4
+++ b/topology/sof/pipe-passthrough-vol-playback.m4
@@ -76,8 +76,8 @@ SectionGraph."pipe-pass-vol-playback-PIPELINE_ID" {
index STR(PIPELINE_ID)
lines [
- dapm(N_PCM, Passthrough Playback PCM_ID)
- dapm(N_BUFFER(0), N_PCM)
+ dapm(N_PCMP, Passthrough Playback PCM_ID)
+ dapm(N_BUFFER(0), N_PCMP)
dapm(N_PGA(0), N_BUFFER(0))
dapm(N_BUFFER(1), N_PGA(0))
dapm(N_DAI_OUT, N_BUFFER(1))
diff --git a/topology/sof/pipe-pcm-media.m4 b/topology/sof/pipe-pcm-media.m4
index b04b353..7bfb35a 100644
--- a/topology/sof/pipe-pcm-media.m4
+++ b/topology/sof/pipe-pcm-media.m4
@@ -93,8 +93,8 @@ SectionGraph."pipe-media-PIPELINE_ID" {
index STR(PIPELINE_ID)
lines [
- dapm(N_PCM, Media Playback PCM_ID)
- dapm(N_BUFFER(0), N_PCM)
+ dapm(N_PCMP, Media Playback PCM_ID)
+ dapm(N_BUFFER(0), N_PCMP)
dapm(N_PGA(0), N_BUFFER(0))
dapm(N_BUFFER(1), N_PGA(0))
dapm(N_SRC(0), N_BUFFER(1))
@@ -134,7 +134,7 @@ SectionPCMCapabilities.STR(Media Playback PCM_ID) {
}
# PCM Low Latency Playback and Capture
-SectionPCM.STR(PCM PCM_ID) {
+SectionPCM.STR(Media Playback PCM_ID) {
index STR(PIPELINE_ID)
--
1.9.1
1
0