diff --git a/topology/m4/pipeline.m4 b/topology/m4/pipeline.m4 index 7c1f307..2115995 100644 --- a/topology/m4/pipeline.m4 +++ b/topology/m4/pipeline.m4 @@ -43,6 +43,8 @@ define(`PIPELINE_PCM_ADD', `undefine(`SCHEDULE_DEADLINE')' `undefine(`SCHEDULE_PRIORITY')' `undefine(`SCHEDULE_CORE')' +`undefine(`PCM_MIN_RATE')' +`undefine(`PCM_MAX_RATE')' `define(`PIPELINE_ID', $2)' `define(`PCM_ID', $3)' `define(`PIPELINE_CHANNELS', $4)' @@ -51,6 +53,8 @@ define(`PIPELINE_PCM_ADD', `define(`SCHEDULE_DEADLINE', $7)' `define(`SCHEDULE_PRIORITY', $8)' `define(`SCHEDULE_CORE', $9)' +`define(`PCM_MIN_RATE', $10)' +`define(`PCM_MAX_RATE', $11)' `include($1)' `DEBUG_PCM_ADD($1, $3)' ) @@ -72,6 +76,8 @@ define(`PIPELINE_PCM_DAI_ADD', `undefine(`DAI_INDEX')' `undefine(`DAI_FORMAT')' `undefine(`DAI_PERIODS')' +`undefine(`PCM_MIN_RATE')' +`undefine(`PCM_MAX_RATE')' `define(`PIPELINE_ID', $2)' `define(`PCM_ID', $3)' `define(`PIPELINE_CHANNELS', $4)' @@ -85,6 +91,8 @@ define(`PIPELINE_PCM_DAI_ADD', `define(`DAI_FORMAT', $12)' `define(`DAI_PERIODS', $13)' `define(`DAI_NAME', $10$11)' +`define(`PCM_MIN_RATE', $14)' +`define(`PCM_MAX_RATE', $15)' `include($1)' ) @@ -99,6 +107,8 @@ define(`PIPELINE_ADD', `undefine(`SCHEDULE_DEADLINE')' `undefine(`SCHEDULE_PRIORITY')' `undefine(`SCHEDULE_CORE')' +`undefine(`PCM_MIN_RATE')' +`undefine(`PCM_MAX_RATE')' `define(`PIPELINE_ID', $2)' `define(`PIPELINE_CHANNELS', $3)' `define(`PIPELINE_FORMAT', $4)' @@ -106,6 +116,8 @@ define(`PIPELINE_ADD', `define(`SCHEDULE_DEADLINE', $6)' `define(`SCHEDULE_PRIORITY', $7)' `define(`SCHEDULE_CORE', $8)' +`define(`PCM_MIN_RATE', $9)' +`define(`PCM_MAX_RATE', $10)' `include($1)' ) diff --git a/topology/sof-apl-da7219.m4 b/topology/sof-apl-da7219.m4 index 0c102fe..9004199 100644 --- a/topology/sof-apl-da7219.m4 +++ b/topology/sof-apl-da7219.m4 @@ -32,26 +32,26 @@ DEBUG_START # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 2 on PCM 1 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 2, 1, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 3 on PCM 1 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 3, 1, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 4 on PCM 0 using max 4 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 #PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, 4, 99, 4, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 8000, 192000) # # DAIs configuration diff --git a/topology/sof-apl-eq-pcm512x.m4 b/topology/sof-apl-eq-pcm512x.m4 index f1fda8d..64fd64e 100644 --- a/topology/sof-apl-eq-pcm512x.m4 +++ b/topology/sof-apl-eq-pcm512x.m4 @@ -23,11 +23,13 @@ include(`platform/intel/bxt.m4') # PCM0 ----> volume -----> SSP5 (pcm512x) # +DEBUG_START + # Low Latency playback pipeline 1 on PCM 0 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-eq-volume-playback.m4, - 1, 0, 2, s32le, - 48, 1000, 0, 0) + 1, 0, 2, s24le, + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration @@ -53,3 +55,5 @@ DAI_CONFIG(SSP, 5, 0, SSP5-Codec, SSP_CLOCK(fsync, 48000, codec_slave), SSP_TDM(2, 32, 3, 3), SSP_CONFIG_DATA(SSP, 5, 24))) + +DEBUG_END diff --git a/topology/sof-apl-hdmi.m4 b/topology/sof-apl-hdmi.m4 index 00d7c68..9148495 100644 --- a/topology/sof-apl-hdmi.m4 +++ b/topology/sof-apl-hdmi.m4 @@ -33,19 +33,19 @@ dnl frames, deadline, priority, core) # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 2 on PCM 1 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 2, 1, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 3 on PCM 2 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 3, 2, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration diff --git a/topology/sof-apl-nocodec.m4 b/topology/sof-apl-nocodec.m4 index da61ece..31760ad 100644 --- a/topology/sof-apl-nocodec.m4 +++ b/topology/sof-apl-nocodec.m4 @@ -44,79 +44,79 @@ dnl frames, deadline, priority, core) # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 2, 0, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 3 on PCM 1 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 3, 1, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 4 on PCM 1 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 4, 1, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 5 on PCM 2 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 5, 2, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 6 on PCM 2 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 6, 2, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 7 on PCM 3 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 7, 3, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 8 on PCM 3 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 8, 3, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 9 on PCM 4 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 9, 4, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 10 on PCM 4 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 10, 4, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 11 on PCM 5 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 11, 5, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 12 on PCM 5 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 12, 5, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Passthrough capture pipeline 13 on PCM 6 using max 4 channels. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, 13, 6, 4, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 8000, 192000) # # DAIs configuration diff --git a/topology/sof-apl-pcm512x.m4 b/topology/sof-apl-pcm512x.m4 index 48257ae..549f7da 100644 --- a/topology/sof-apl-pcm512x.m4 +++ b/topology/sof-apl-pcm512x.m4 @@ -29,7 +29,7 @@ DEBUG_START # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration diff --git a/topology/sof-apl-rt298.m4 b/topology/sof-apl-rt298.m4 index e6dbec8..ef80ec3 100644 --- a/topology/sof-apl-rt298.m4 +++ b/topology/sof-apl-rt298.m4 @@ -31,25 +31,25 @@ include(`platform/intel/bxt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 5 on PCM 5 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 5, 5, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 6 on PCM 6 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 6, 6, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 7 on PCM 7 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 7, 7, 2, s16le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration # diff --git a/topology/sof-apl-tdf8532.m4 b/topology/sof-apl-tdf8532.m4 index c82c1f0..b7618cd 100644 --- a/topology/sof-apl-tdf8532.m4 +++ b/topology/sof-apl-tdf8532.m4 @@ -36,61 +36,61 @@ include(`platform/intel/bxt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 1, 0, 4, s32le, - 48, 1000, 0, 0, SSP, 4, s32le, 2) + 48, 1000, 0, 0, SSP, 4, s32le, 2, 48000, 48000) # Low Latency playback pipeline 2 on PCM 1 using max 8 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 2, 1, 8, s32le, - 48, 1000, 0, 0, SSP, 2, s32le, 2) + 48, 1000, 0, 0, SSP, 2, s32le, 2, 48000, 48000) # Low Latency capture pipeline 3 on PCM 1 using max 8 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 3, 1, 8, s32le, - 48, 1000, 0, 0, SSP, 2, s32le, 2) + 48, 1000, 0, 0, SSP, 2, s32le, 2, 48000, 48000) # Low Latency playback pipeline 4 on PCM 2 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 4, 2, 2, s16le, - 48, 1000, 0, 0, SSP, 0, s16le, 2) + 48, 1000, 0, 0, SSP, 0, s16le, 2, 48000, 48000) # Low Latency capture pipeline 5 on PCM 2 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 5, 2, 2, s16le, - 48, 1000, 0, 0, SSP, 0, s16le, 2) + 48, 1000, 0, 0, SSP, 0, s16le, 2, 48000, 48000) # Low Latency capture pipeline 6 on PCM 3 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 6, 3, 2, s16le, - 48, 1000, 0, 0, SSP, 1, s16le, 2) + 48, 1000, 0, 0, SSP, 1, s16le, 2, 48000, 48000) # Low Latency playback pipeline 7 on PCM 4 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 7, 4, 2, s16le, - 48, 1000, 0, 0, SSP, 3, s16le, 2) + 48, 1000, 0, 0, SSP, 3, s16le, 2, 48000, 48000) # Low Latency capture pipeline 8 on PCM 4 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 8, 4, 2, s16le, - 48, 1000, 0, 0, SSP, 3, s16le, 2) + 48, 1000, 0, 0, SSP, 3, s16le, 2, 48000, 48000) # Low Latency playback pipeline 9 on PCM 5 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 9, 5, 2, s16le, - 48, 1000, 0, 0, SSP, 5, s16le, 2) + 48, 1000, 0, 0, SSP, 5, s16le, 2, 48000, 48000) # Low Latency capture pipeline 10 on PCM 5 using max 2 channels of s16le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 10, 5, 2, s16le, - 48, 1000, 0, 0, SSP, 5, s16le, 2) + 48, 1000, 0, 0, SSP, 5, s16le, 2, 48000, 48000) # diff --git a/topology/sof-apl-wm8804.m4 b/topology/sof-apl-wm8804.m4 index 4dc15eb..4a86552 100644 --- a/topology/sof-apl-wm8804.m4 +++ b/topology/sof-apl-wm8804.m4 @@ -27,7 +27,7 @@ include(`platform/intel/bxt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration diff --git a/topology/sof-bdw-rt286.m4 b/topology/sof-bdw-rt286.m4 index a750344..698a8b4 100644 --- a/topology/sof-bdw-rt286.m4 +++ b/topology/sof-bdw-rt286.m4 @@ -33,25 +33,25 @@ include(`platform/intel/bdw.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 96, 2000, 1, 0) + 96, 2000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-bdw-rt286" { diff --git a/topology/sof-bdw-rt5640.m4 b/topology/sof-bdw-rt5640.m4 index 454e050..6d06a5c 100644 --- a/topology/sof-bdw-rt5640.m4 +++ b/topology/sof-bdw-rt5640.m4 @@ -33,25 +33,25 @@ include(`platform/intel/bdw.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 96, 2000, 1, 0) + 96, 2000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-bdw-rt5640" { diff --git a/topology/sof-byt-da7213.m4 b/topology/sof-byt-da7213.m4 index 6008ff0..f8208fc 100644 --- a/topology/sof-byt-da7213.m4 +++ b/topology/sof-byt-da7213.m4 @@ -33,25 +33,25 @@ include(`platform/intel/byt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-byt-da7212" { diff --git a/topology/sof-byt-nocodec.m4 b/topology/sof-byt-nocodec.m4 index 6df25ca..e7dba27 100644 --- a/topology/sof-byt-nocodec.m4 +++ b/topology/sof-byt-nocodec.m4 @@ -33,25 +33,25 @@ include(`platform/intel/byt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-byt-nocodec" { diff --git a/topology/sof-byt-rt5640.m4 b/topology/sof-byt-rt5640.m4 index 2177fe3..93732d0 100644 --- a/topology/sof-byt-rt5640.m4 +++ b/topology/sof-byt-rt5640.m4 @@ -33,25 +33,25 @@ include(`platform/intel/byt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-byt-rt5640" { diff --git a/topology/sof-byt-rt5645.m4 b/topology/sof-byt-rt5645.m4 index 23f1a75..4fc9ba9 100644 --- a/topology/sof-byt-rt5645.m4 +++ b/topology/sof-byt-rt5645.m4 @@ -33,25 +33,25 @@ include(`platform/intel/byt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0 8000, 192000) # 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) + 192, 4000, 2, 0 48000, 48000) # Connect pipelines together SectionGraph."pipe-byt-rt5645" { diff --git a/topology/sof-byt-rt5651.m4 b/topology/sof-byt-rt5651.m4 index 724c34e..e165d6e 100644 --- a/topology/sof-byt-rt5651.m4 +++ b/topology/sof-byt-rt5651.m4 @@ -33,25 +33,25 @@ include(`platform/intel/byt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-byt-rt5651" { diff --git a/topology/sof-cht-max98090.m4 b/topology/sof-cht-max98090.m4 index 627181f..7d2c28a 100644 --- a/topology/sof-cht-max98090.m4 +++ b/topology/sof-cht-max98090.m4 @@ -39,19 +39,19 @@ PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-cht-max98090" { diff --git a/topology/sof-cht-nocodec.m4 b/topology/sof-cht-nocodec.m4 index dae6dca..b9f4f06 100644 --- a/topology/sof-cht-nocodec.m4 +++ b/topology/sof-cht-nocodec.m4 @@ -33,25 +33,25 @@ include(`platform/intel/cht.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-cht-nocodec" { diff --git a/topology/sof-cnl-rt274.m4 b/topology/sof-cnl-rt274.m4 index d40efc1..80c29a9 100644 --- a/topology/sof-cnl-rt274.m4 +++ b/topology/sof-cnl-rt274.m4 @@ -29,13 +29,13 @@ include(`platform/intel/cnl.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s24le, - 48, 1000, 0, 0, SSP, 0, s24le, 2) + 48, 1000, 0, 0, SSP, 0, s24le, 2, 48000, 48000) # Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s24le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 2, 0, 2, s24le, - 48, 1000, 0, 0, SSP, 0, s24le, 2) + 48, 1000, 0, 0, SSP, 0, s24le, 2, 48000, 48000) # # DAI configuration diff --git a/topology/sof-glk-da7219.m4 b/topology/sof-glk-da7219.m4 index 85f4a7e..b09e59f 100644 --- a/topology/sof-glk-da7219.m4 +++ b/topology/sof-glk-da7219.m4 @@ -34,47 +34,47 @@ include(`platform/intel/dmic.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 2 on PCM 1 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 2, 1, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 3 on PCM 1 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 3, 1, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 4 on PCM 99 using max 4 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 #PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, 4, 99, 4, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 8000, 192000) # Low Latency playback pipeline 5 on PCM 5 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 # PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 5, 5, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 6 on PCM 6 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 # PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 6, 6, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 7 on PCM 7 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 # PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 7, 7, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration diff --git a/topology/sof-hda-generic.m4 b/topology/sof-hda-generic.m4 index 079fa1b..e72280c 100644 --- a/topology/sof-hda-generic.m4 +++ b/topology/sof-hda-generic.m4 @@ -31,43 +31,43 @@ include(`platform/intel/bxt.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 3 on PCM 1 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 3, 1, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency capture pipeline 4 on PCM 1 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 4, 1, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 7 on PCM 3 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 7, 3, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 8 on PCM 4 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 8, 4, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # Low Latency playback pipeline 9 on PCM 5 using max 2 channels of s32le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, 9, 5, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # # DAIs configuration diff --git a/topology/sof-hsw-rt5640.m4 b/topology/sof-hsw-rt5640.m4 index 272cb15..40469a5 100644 --- a/topology/sof-hsw-rt5640.m4 +++ b/topology/sof-hsw-rt5640.m4 @@ -33,25 +33,25 @@ include(`platform/intel/hsw.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 0, 2, s32le, - 48, 1000, 0, 0) + 48, 1000, 0, 0, 48000, 48000) # 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 PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 1, 2, s32le, - 192, 4000, 1, 0) + 192, 4000, 1, 0, 8000, 192000) # 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) + 192, 4000, 2, 0, 48000, 48000) # Connect pipelines together SectionGraph."pipe-hsw-rt5640" { diff --git a/topology/sof-icl-nocodec.m4 b/topology/sof-icl-nocodec.m4 index 1dffe18..501c7fc 100644 --- a/topology/sof-icl-nocodec.m4 +++ b/topology/sof-icl-nocodec.m4 @@ -29,13 +29,13 @@ include(`platform/intel/icl.m4') # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4, 1, 0, 2, s24le, - 48, 1000, 0, 0, SSP, 0, s24le, 2) + 48, 1000, 0, 0, SSP, 0, s24le, 2, 48000, 48000) # Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s24le. # Schedule 48 frames per 1000us deadline on core 0 with priority 0 PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4, 2, 0, 2, s24le, - 48, 1000, 0, 0, SSP, 0, s24le, 2) + 48, 1000, 0, 0, SSP, 0, s24le, 2, 48000, 48000) # # DAI configuration diff --git a/topology/sof/pipe-eq-volume-playback.m4 b/topology/sof/pipe-eq-volume-playback.m4 index fc40c4d..d3cd3c3 100644 --- a/topology/sof/pipe-eq-volume-playback.m4 +++ b/topology/sof/pipe-eq-volume-playback.m4 @@ -2,7 +2,8 @@ # # Pipeline Endpoints for connection are :- # -# host PCM_P --> B0 --> EQ_IIR 0 --> B1 --> EQ_FIR 0 --> B2 --> Volume 0 --> B3 --> sink DAI0 +# host PCM_P --> B0 --> Volume 0 --> B1 --> EQ_IIR 0 --> B2 --> EQ_FIR 0 --> B3 --> sink DAI0 + # Include topology builder include(`utils.m4') @@ -28,6 +29,15 @@ C_CONTROLMIXER(Master Playback Volume, PIPELINE_ID, Channel register and shift for Front Left/Right, LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1))) +C_CONTROLMIXER(Test Playback Volume, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, 256 binds the mixer control to volume get/put handlers, 256, 256), + CONTROLMIXER_MAX(, 32), + false, + CONTROLMIXER_TLV(TLV 32 steps from -90dB to +6dB for 3dB, vtlv_m90s3), + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1))) + + # EQ initial parameters, in this case flat response CONTROLBYTES_PRIV(EQIIR_priv, ` bytes "0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,' @@ -75,6 +85,9 @@ W_PCM_PLAYBACK(PCM_ID, Passthrough Playback, 2, 0, 2) # "Volume" has 2 source and 2 sink periods W_PGA(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "Master Playback Volume PIPELINE_ID")) +# "Volume" has 2 source and 2 sink periods +W_PGA(1, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "Test Playback Volume PIPELINE_ID")) + # "EQ 0" has 2 sink period and 2 source periods W_EQ_IIR(0, PIPELINE_FORMAT, 2, 2, 2, LIST(` ', "EQIIR")) @@ -92,34 +105,37 @@ W_BUFFER(2, COMP_BUFFER_SIZE(2, COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, SCHEDULE_FRAMES), PLATFORM_HOST_MEM_CAP) W_BUFFER(3, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, SCHEDULE_FRAMES), + PLATFORM_DAI_MEM_CAP) +W_BUFFER(4, COMP_BUFFER_SIZE(2, COMP_SAMPLE_SIZE(DAI_FORMAT), PIPELINE_CHANNELS, SCHEDULE_FRAMES), PLATFORM_DAI_MEM_CAP) # # Pipeline Graph # -# host host PCM_P --> B0 --> EQ_IIR 0 --> B1 --> EQ_FIR 0 --> B2 --> Volume 0 --> B3 --> sink DAI0 +# host PCM_P --> B0 --> Volume 0 --> B1 --> EQ_IIR 0 --> B2 --> EQ_FIR 0 --> B3 --> sink DAI0 P_GRAPH(pipe-pass-vol-playback-PIPELINE_ID, PIPELINE_ID, LIST(` ', `dapm(N_PCMP(PCM_ID), Passthrough Playback PCM_ID)', `dapm(N_BUFFER(0), N_PCMP(PCM_ID))', - `dapm(N_EQ_IIR(0), N_BUFFER(0))', - `dapm(N_BUFFER(1), N_EQ_IIR(0))', - `dapm(N_EQ_FIR(0), N_BUFFER(1))', - `dapm(N_BUFFER(2), N_EQ_FIR(0))', - `dapm(N_PGA(0), N_BUFFER(2))', - `dapm(N_BUFFER(3), N_PGA(0))')) + `dapm(N_PGA(0), N_BUFFER(0))', + `dapm(N_BUFFER(1), N_PGA(0))', + `dapm(N_EQ_IIR(0), N_BUFFER(1))', + `dapm(N_BUFFER(2), N_EQ_IIR(0))', + `dapm(N_EQ_FIR(0), N_BUFFER(2))', + `dapm(N_BUFFER(3), N_EQ_FIR(0))', + `dapm(N_PGA(1), N_BUFFER(3))', + `dapm(N_BUFFER(4), N_PGA(1))',)) # # Pipeline Source and Sinks # -indir(`define', concat(`PIPELINE_SOURCE_', PIPELINE_ID), N_BUFFER(3)) +indir(`define', concat(`PIPELINE_SOURCE_', PIPELINE_ID), N_BUFFER(4)) indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Playback PCM_ID) # # PCM Configuration - # -PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) - +PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-low-latency-capture.m4 b/topology/sof/pipe-low-latency-capture.m4 index 897fe05..2dcdb6d 100644 --- a/topology/sof/pipe-low-latency-capture.m4 +++ b/topology/sof/pipe-low-latency-capture.m4 @@ -64,4 +64,4 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Low Latency Capture PCM_ID # PCM Configuration # -PCM_CAPABILITIES(Low Latency Capture PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, PIPELINE_CHANNELS, 2, 4, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Low Latency Capture PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 4, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-low-latency-playback.m4 b/topology/sof/pipe-low-latency-playback.m4 index c316bf4..81b2c9b 100644 --- a/topology/sof/pipe-low-latency-playback.m4 +++ b/topology/sof/pipe-low-latency-playback.m4 @@ -115,5 +115,5 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Low Latency Playback PCM_I # PCM capabilities supported by FW -PCM_CAPABILITIES(Low Latency Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Low Latency Playback PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-passthrough-capture.m4 b/topology/sof/pipe-passthrough-capture.m4 index 5eb29a2..5ef90f2 100644 --- a/topology/sof/pipe-passthrough-capture.m4 +++ b/topology/sof/pipe-passthrough-capture.m4 @@ -44,4 +44,4 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Capture PCM_ID # PCM Configuration # -PCM_CAPABILITIES(Passthrough Capture PCM_ID, COMP_FORMAT_NAME(PIPELINE_FORMAT), 8000, 192000, 1, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Passthrough Capture PCM_ID, COMP_FORMAT_NAME(PIPELINE_FORMAT), PCM_MIN_RATE, PCM_MAX_RATE, 1, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-passthrough-playback.m4 b/topology/sof/pipe-passthrough-playback.m4 index b0ee463..7fc6241 100644 --- a/topology/sof/pipe-passthrough-playback.m4 +++ b/topology/sof/pipe-passthrough-playback.m4 @@ -44,4 +44,4 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Playback PCM_I # PCM Configuration # -PCM_CAPABILITIES(Passthrough Playback PCM_ID, COMP_FORMAT_NAME(PIPELINE_FORMAT), 48000, 48000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Passthrough Playback PCM_ID, COMP_FORMAT_NAME(PIPELINE_FORMAT), PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-pcm-media.m4 b/topology/sof/pipe-pcm-media.m4 index ae2090d..9abfcdb 100644 --- a/topology/sof/pipe-pcm-media.m4 +++ b/topology/sof/pipe-pcm-media.m4 @@ -95,7 +95,7 @@ W_PIPELINE(N_SRC(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHE # PCM capabilities supported by FW -PCM_CAPABILITIES(Media Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 8000, 192000, 2, PIPELINE_CHANNELS, 2, 32, 192, 262144, 8388608, 8388608) +PCM_CAPABILITIES(Media Playback PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 32, 192, 262144, 8388608, 8388608) # PCM Low Latency Playback and Capture SectionPCM.STR(Media Playback PCM_ID) { diff --git a/topology/sof/pipe-src-capture.m4 b/topology/sof/pipe-src-capture.m4 index e151bf0..de9f12a 100644 --- a/topology/sof/pipe-src-capture.m4 +++ b/topology/sof/pipe-src-capture.m4 @@ -61,4 +61,4 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Capture PCM_ID # PCM Configuration # -PCM_CAPABILITIES(Passthrough Capture PCM_ID, `S32_LE,S24_LE,S16_LE', 8000, 96000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Passthrough Capture PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-src-playback.m4 b/topology/sof/pipe-src-playback.m4 index 8003b50..402e7bf 100644 --- a/topology/sof/pipe-src-playback.m4 +++ b/topology/sof/pipe-src-playback.m4 @@ -61,5 +61,5 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Playback PCM_I # PCM Configuration # -PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 8000, 192000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-volume-capture.m4 b/topology/sof/pipe-volume-capture.m4 index a044ed6..4b0f56c 100644 --- a/topology/sof/pipe-volume-capture.m4 +++ b/topology/sof/pipe-volume-capture.m4 @@ -66,5 +66,5 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Capture PCM_ID # PCM Configuration # -PCM_CAPABILITIES(Passthrough Capture PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Passthrough Capture PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/sof/pipe-volume-playback.m4 b/topology/sof/pipe-volume-playback.m4 index e373adc..9cfb5e7 100644 --- a/topology/sof/pipe-volume-playback.m4 +++ b/topology/sof/pipe-volume-playback.m4 @@ -67,5 +67,5 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Playback PCM_I # PCM Configuration # -PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) +PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/topology/test/test-all.m4 b/topology/test/test-all.m4 index 518c909..57a3d8e 100644 --- a/topology/test/test-all.m4 +++ b/topology/test/test-all.m4 @@ -30,6 +30,8 @@ include(`byt.m4') # TEST_SSP_PHY_BITS - SSP physical slot size # TEST_SSP_DATA_BITS - SSP data slot size # TEST_SSP_MODE - SSP mode e.g. I2S, LEFT_J, DSP_A and DSP_B +# TEST_PCM_MIN_RATE - min samplerate pcm/pipeline supports +# TEST_PCM_MAX_RATE - max samplerate pcm/pipeline supports # # @@ -44,7 +46,8 @@ include(`byt.m4') PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-playback.m4, 1, 0, 2, TEST_PIPE_FORMAT, 48, 1000, 0, 0, - TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2) + TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2, + TEST_PCM_MIN_RATE, TEST_PCM_MAX_RATE) # Passthrough playback pipeline 2 on PCM 0 using max 2 channels of s24le. @@ -53,7 +56,8 @@ PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-playback.m4, PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-capture.m4, 2, 0, 2, TEST_PIPE_FORMAT, 48, 1000, 0, 0, - TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2) + TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2, + TEST_PCM_MIN_RATE, TEST_PCM_MAX_RATE) # # DAI configuration diff --git a/topology/test/test-capture.m4 b/topology/test/test-capture.m4 index 4e10d3d..9a8e4e8 100644 --- a/topology/test/test-capture.m4 +++ b/topology/test/test-capture.m4 @@ -45,7 +45,8 @@ include(`byt.m4') PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-capture.m4, 2, 0, 4, TEST_PIPE_FORMAT, 48, 1000, 0, 0, - TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2) + TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2, + TEST_PCM_MIN_RATE, TEST_PCM_MAX_RATE) # # DAI configuration diff --git a/topology/test/test-equalizer-playback-ssp.m4 b/topology/test/test-equalizer-playback-ssp.m4 index ab775a4..50d3946 100644 --- a/topology/test/test-equalizer-playback-ssp.m4 +++ b/topology/test/test-equalizer-playback-ssp.m4 @@ -43,7 +43,9 @@ include(`dsps/byt.m4') PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-playback.m4, 1, 0, 2, TEST_PIPE_FORMAT, 48, 1000, 0, 0, 0, 1, - SSP, TEST_SSP_PORT, TEST_SSP_FORMAT, 2) + SSP, TEST_SSP_PORT, TEST_SSP_FORMAT, 2, + TEST_PCM_MIN_RATE, TEST_PCM_MAX_RATE) + # # DAI configuration # diff --git a/topology/test/test-playback.m4 b/topology/test/test-playback.m4 index 9833ea9..8c6bb7b 100644 --- a/topology/test/test-playback.m4 +++ b/topology/test/test-playback.m4 @@ -44,7 +44,9 @@ include(`byt.m4') PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-playback.m4, 1, 0, 2, TEST_PIPE_FORMAT, 48, 1000, 0, 0, - TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2) + TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2, + TEST_PCM_MIN_RATE, TEST_PCM_MAX_RATE) + # # DAI configuration # diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index bd50593..a0a0379 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -38,10 +38,10 @@ M4_STRINGS="" function simple_test { if [ $5 == "SSP" ] then - TESTS=("${!14}") + TESTS=("${!16}") elif [ $5 == "DMIC" ] then - TESTS=("${!15}") + TESTS=("${!17}") fi for i in ${TESTS[@]} do @@ -63,6 +63,8 @@ function simple_test { -DTEST_DMIC_DUTY_MAX=${12} \ -DTEST_DMIC_SAMPLE_RATE=${13} \ -DTEST_DMIC_PDM_CONFIG=${14} \ + -DTEST_PCM_MIN_RATE=${15} \ + -DTEST_PCM_MAX_RATE=${16} \ $i.m4 > ${TFILE}.conf echo "Compiling test $i -> ${TFILE}.tplg" alsatplg -v 1 -c ${TFILE}.conf -o ${TFILE}.tplg @@ -85,6 +87,7 @@ function simple_test { -DTEST_SSP_MCLK=${11},-DTEST_SSP_PHY_BITS=$8\ -DTEST_SSP_DATA_BITS=$9,-DTEST_SSP_MODE=${12}\ -DTEST_SSP_MCLK_ID=${13},-DTEST_DAI_TYPE=$5\ + -DTEST_PCM_MIN_RATE=${14},-DTEST_PCM_MAX_RATE=${15}\ $i.m4,${TFILE}," #create input string for batch processing of conf files TEST_STRINGS+=${TFILE}"," @@ -104,7 +107,7 @@ function simple_test { -DTEST_PIPE_NAME="$2" \ -DTEST_DAI_LINK_NAME="$3" \ -DTEST_DAI_PORT=$6 \ - -DTEST_DAI_FORMAT=$7 \ +3 -DTEST_DAI_FORMAT=$7 \ -DTEST_PIPE_FORMAT=$4 \ -DTEST_SSP_BCLK=${10} \ -DTEST_SSP_MCLK=${11} \ @@ -113,6 +116,8 @@ function simple_test { -DTEST_SSP_MODE=${12} \ -DTEST_SSP_MCLK_ID=${13} \ -DTEST_DAI_TYPE=$5 \ + -DTEST_PCM_MIN_RATE=${14} \ + -DTEST_PCM_MAX_RATE=${15} \ $i.m4 > ${TFILE}.conf echo "Compiling test $i -> ${TFILE}.tplg" alsatplg -v 1 -c ${TFILE}.conf -o ${TFILE}.tplg @@ -125,20 +130,20 @@ function simple_test { echo "Preparing topology build input..." # Pre-process the simple tests -simple_test nocodec passthrough "NoCodec-2" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec passthrough "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s16le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec src "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] - -simple_test codec passthrough "SSP2-Codec" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test codec passthrough "SSP2-Codec" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test codec volume "SSP2-Codec" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test codec volume "SSP2-Codec" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test codec volume "SSP2-Codec" s24le SSP 2 s16le 20 16 1920000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test codec volume "SSP2-Codec" s16le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] -simple_test codec src "SSP2-Codec" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 SIMPLE_TESTS[@] +simple_test nocodec passthrough "NoCodec-2" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec passthrough "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s16le SSP 2 s24le 25 24 2400000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec src "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 8000 192000 SIMPLE_TESTS[@] + +simple_test codec passthrough "SSP2-Codec" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test codec passthrough "SSP2-Codec" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test codec volume "SSP2-Codec" s16le SSP 2 s16le 20 16 1920000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test codec volume "SSP2-Codec" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test codec volume "SSP2-Codec" s24le SSP 2 s16le 20 16 1920000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test codec volume "SSP2-Codec" s16le SSP 2 s24le 25 24 2400000 19200000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test codec src "SSP2-Codec" s24le SSP 2 s24le 25 24 2400000 19200000 I2S 0 8000 192000 SIMPLE_TESTS[@] # for APL APL_PROTOCOL_TESTS=(I2S LEFT_J DSP_A DSP_B) @@ -157,25 +162,38 @@ do do for mclk_id in ${MCLK_IDS[@]} do - simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] + if [ $mode == "volume" ] + then + pcm_min=48000 + pcm_max=48000 + elif [ $mode == "src" ] + then + pcm_min=8000 + pcm_max=192000 + else + pcm_min=48000 + pcm_max=48000 + fi - simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] + simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id $pcm_min $pcm_max SIMPLE_TESTS[@] + simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id $pcm_min $pcm_max SIMPLE_TESTS[@] + simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id $pcm_min $pcm_max SIMPLE_TESTS[@] + + simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id $pcm_min $pcm_max SIMPLE_TESTS[@] + simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id $pcm_min $pcm_max SIMPLE_TESTS[@] + simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id $pcm_min $pcm_max SIMPLE_TESTS[@] done done done for mclk_id in ${MCLK_IDS[@]} do - simple_test nocodec passthrough "NoCodec-${ssp}" s16le SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test nocodec passthrough "NoCodec-${ssp}" s24le SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test nocodec passthrough "NoCodec-${ssp}" s32le SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] + simple_test nocodec passthrough "NoCodec-${ssp}" s16le SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id 48000 48000 SIMPLE_TESTS[@] + simple_test nocodec passthrough "NoCodec-${ssp}" s24le SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id 48000 48000 SIMPLE_TESTS[@] + simple_test nocodec passthrough "NoCodec-${ssp}" s32le SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id 48000 48000 SIMPLE_TESTS[@] - simple_test codec passthrough "SSP${ssp}-Codec" s16le SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test codec passthrough "SSP${ssp}-Codec" s24le SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] - simple_test codec passthrough "SSP${ssp}-Codec" s32le SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id SIMPLE_TESTS[@] + simple_test codec passthrough "SSP${ssp}-Codec" s16le SSP $ssp s16le 16 16 1536000 24576000 $protocol $mclk_id 48000 48000 SIMPLE_TESTS[@] + simple_test codec passthrough "SSP${ssp}-Codec" s24le SSP $ssp s24le 32 24 3072000 24576000 $protocol $mclk_id 48000 48000 SIMPLE_TESTS[@] + simple_test codec passthrough "SSP${ssp}-Codec" s32le SSP $ssp s32le 32 32 3072000 24576000 $protocol $mclk_id 48000 48000 SIMPLE_TESTS[@] done done done @@ -188,35 +206,48 @@ do do for format in ${APL_FORMAT_TESTS[@]} do - simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 SIMPLE_TESTS[@] - simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 SIMPLE_TESTS[@] + if [ $mode == "volume" ] + then + pcm_min=48000 + pcm_max=48000 + elif [ $mode == "src" ] + then + pcm_min=8000 + pcm_max=192000 + else + pcm_min=48000 + pcm_max=48000 + fi + + simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 $pcm_min $pcm_max SIMPLE_TESTS[@] + simple_test nocodec $mode "NoCodec-${ssp}" $format SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 $pcm_min $pcm_max SIMPLE_TESTS[@] - simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 SIMPLE_TESTS[@] - simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 SIMPLE_TESTS[@] + simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 $pcm_min $pcm_max SIMPLE_TESTS[@] + simple_test codec $mode "SSP${ssp}-Codec" $format SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 $pcm_min $pcm_max SIMPLE_TESTS[@] done done - simple_test nocodec passthrough "NoCodec-${ssp}" s16le SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 SIMPLE_TESTS[@] - simple_test nocodec passthrough "NoCodec-${ssp}" s24le SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 SIMPLE_TESTS[@] + simple_test nocodec passthrough "NoCodec-${ssp}" s16le SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 48000 48000 SIMPLE_TESTS[@] + simple_test nocodec passthrough "NoCodec-${ssp}" s24le SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 48000 48000 SIMPLE_TESTS[@] - simple_test codec passthrough "SSP${ssp}-Codec" s16le SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 SIMPLE_TESTS[@] - simple_test codec passthrough "SSP${ssp}-Codec" s24le SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 SIMPLE_TESTS[@] + simple_test codec passthrough "SSP${ssp}-Codec" s16le SSP $ssp s16le 20 16 1920000 19200000 $protocol 0 48000 48000 SIMPLE_TESTS[@] + simple_test codec passthrough "SSP${ssp}-Codec" s24le SSP $ssp s24le 25 24 2400000 19200000 $protocol 0 48000 48000 SIMPLE_TESTS[@] done done # for CNL -simple_test nocodec passthrough "NoCodec-2" s16le SSP 2 s16le 25 16 2400000 24000000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec passthrough "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 24000000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s16le SSP 2 s16le 25 16 2400000 24000000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s16le SSP 2 s24le 25 24 2400000 24000000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 24000000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec volume "NoCodec-2" s24le SSP 2 s16le 25 16 2400000 24000000 I2S 0 SIMPLE_TESTS[@] -simple_test nocodec src "NoCodec-4" s24le SSP 4 s24le 25 24 2400000 24000000 I2S 0 SIMPLE_TESTS[@] +simple_test nocodec passthrough "NoCodec-2" s16le SSP 2 s16le 25 16 2400000 24000000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec passthrough "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 24000000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s16le SSP 2 s16le 25 16 2400000 24000000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s16le SSP 2 s24le 25 24 2400000 24000000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s24le SSP 2 s24le 25 24 2400000 24000000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec volume "NoCodec-2" s24le SSP 2 s16le 25 16 2400000 24000000 I2S 0 48000 48000 SIMPLE_TESTS[@] +simple_test nocodec src "NoCodec-4" s24le SSP 4 s24le 25 24 2400000 24000000 I2S 0 8000 192000 SIMPLE_TESTS[@] # Tone test: Tone component only supports s32le currently -simple_test codec tone "SSP2-Codec" s32le SSP 2 s16le 20 16 1920000 19200000 I2S 0 TONE_TEST[@] +simple_test codec tone "SSP2-Codec" s32le SSP 2 s16le 20 16 1920000 19200000 I2S 0 48000 48000 TONE_TEST[@] #Tone Test for APL -simple_test codec tone "SSP5-Codec" s32le SSP 5 s24le 32 24 3072000 24576000 I2S 0 TONE_TEST[@] -simple_test codec tone "SSP5-Codec" s32le SSP 5 s32le 32 32 3072000 24576000 I2S 0 TONE_TEST[@] +simple_test codec tone "SSP5-Codec" s32le SSP 5 s24le 32 24 3072000 24576000 I2S 0 48000 48000 TONE_TEST[@] +simple_test codec tone "SSP5-Codec" s32le SSP 5 s32le 32 32 3072000 24576000 I2S 0 48000 48000 TONE_TEST[@] # DMIC Test Topologies for APL/GLK DMIC_PDM_CONFIGS=(MONO_PDM0_MICA MONO_PDM0_MICB STEREO_PDM0 STEREO_PDM1 FOUR_CH_PDM0_PDM1) @@ -231,6 +262,7 @@ do do simple_test nocodec passthrough "DMIC0" $format DMIC 0\ $format 1 500000 4800000 40 60 $rate $pdm\ + 8000 96000\ DMIC_TEST[@] done done @@ -241,7 +273,7 @@ then echo "Batch processing m4 files..." M4_STRINGS=${M4_STRINGS%?} #m4 processing - echo $M4_STRINGS | tr " " "," | tr '\n' '\0' | xargs -P0 -d ',' -n14 bash -c 'm4 "${@:1:${#}-1}" > ${14}.conf' m4 + echo $M4_STRINGS | tr " " "," | tr '\n' '\0' | xargs -P0 -d ',' -n16 bash -c 'm4 "${@:1:${#}-1}" > ${16}.conf' m4 #execute alsatplg to create topology binary TEST_STRINGS=${TEST_STRINGS%?}