mailman.alsa-project.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Sound-open-firmware

Thread Start a new thread
Download
Threads by month
  • ----- 2025 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • 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
sound-open-firmware@alsa-project.org

  • 1607 discussions
[Sound-open-firmware] [PATCH] topology: bdw-rt5640: Fix BE DAI name to match legacy driver
by Liam Girdwood 30 Mar '18

30 Mar '18
Now matches legacy driver. Signed-off-by: Liam Girdwood <liam.r.girdwood(a)linux.intel.com> --- topology/reef-bdw-rt5640.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/topology/reef-bdw-rt5640.m4 b/topology/reef-bdw-rt5640.m4 index 53c9610..0a083e4 100644 --- a/topology/reef-bdw-rt5640.m4 +++ b/topology/reef-bdw-rt5640.m4 @@ -76,14 +76,14 @@ SectionGraph."pipe-bdw-rt5640" { # playback DAI is SSP0 using 2 periods # Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-playback.m4, - 1, SSP, 0, Audio, + 1, SSP, 0, Codec, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0) # capture DAI is SSP0 using 2 periods # Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-capture.m4, - 2, SSP, 0, Audio, + 2, SSP, 0, Codec, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0) -- 2.14.1
1 0
0 0
[Sound-open-firmware] [PATCH] Revert "topology: reef-apl-nocodec: use SSP4 for playback and SSP2 for both"
by Liam Girdwood 30 Mar '18

30 Mar '18
This reverts commit 0d63b75d1e74e2fcb9508fc1585db983c7fb3482. Needs multi DAI support scheduled for 1.2 Signed-off-by: Liam Girdwood <liam.r.girdwood(a)linux.intel.com> --- topology/reef-apl-nocodec.m4 | 96 ++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 43 deletions(-) diff --git a/topology/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4 index 72eff0e..78a1a4e 100644 --- a/topology/reef-apl-nocodec.m4 +++ b/topology/reef-apl-nocodec.m4 @@ -19,72 +19,82 @@ include(`dsps/bxt.m4') # # Define the pipelines # -# PCM0 ----> Volume ----> SSP4 -# PCM1 ----> Volume ----> SSP2 -# PCM2 <---- Volume <---- SSP2 +# PCM0 ----> volume ---------------+ +# |--low latency mixer ----> volume ----> SSP2 +# PCM2 ----> SRC -----> volume ----+ +# | +# Tone -----> volume ----+ +# +# PCM1 <---- Volume <---- SSP2 # -# 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_DAI_ADD(sof/pipe-volume-playback.m4, - 1, 0, 2, s16le, - 48, 1000, 0, 0, 0, 1, SSP, 4, s16le, 2) - -# Volume playback pipeline 1 on PCM 0 using max 2 channels of s16le. +# 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 # 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) +PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, + 1, 0, 2, s32le, + 48, 1000, 0, 0, 0, 1) -# Volume playback pipeline 1 on PCM 0 using max 2 channels of s16le. +# 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_DAI_ADD(sof/pipe-volume-capture.m4, - 3, 1, 2, s16le, - 48, 1000, 0, 0, 0, 1, SSP, 2, s16le, 2) +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" + + lines [ + # media 0 + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3) + #tone + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5) + ] +} # # DAI configuration # - -# 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) +# SSP port 2 is our only pipeline DAI +# # playback DAI is SSP2 using 2 periods -# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0 +# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-playback.m4, - 2, SSP, 2, SSP4-NoCodec, - PIPELINE_SOURCE_2, 2, s16le, + 1, SSP, 2, NoCodec, + PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0) # capture DAI is SSP2 using 2 periods -# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0 +# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-capture.m4, - 3, SSP, 2, SSP2-NoCodec, - PIPELINE_SINK_3, 2, s16le, + 2, SSP, 2, NoCodec, + PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0) # PCM Low Latency -PCM_PLAYBACK_ADD(Port4, 1, 0, 0, PIPELINE_PCM_1) -PCM_DUPLEX_ADD(Port2, 4, 1, 1, PIPELINE_PCM_2, PIPELINE_PCM_3) +PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # # BE configurations - overrides config in ACPI if present # -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_CONFIG(SSP, 2, NoCodec, I2S, 24, + DAI_CLOCK(mclk, 19200000, slave), + DAI_CLOCK(bclk, 2400000, slave), DAI_CLOCK(fsync, 48000, slave), - DAI_TDM(2, 16, 3, 3)) + DAI_TDM(2, 25, 3, 3)) -- 2.14.1
1 0
0 0
[Sound-open-firmware] [PATCH] APL/CNL Fix: Only send position once after copy DMA trace data on APL/CNL.
by yan.wang@linux.intel.com 30 Mar '18

30 Mar '18
From: Yan Wang <yan.wang(a)linux.intel.com> Firmware side should not send position in every trace_work() is called. Signed-off-by: Yan Wang <yan.wang(a)linux.intel.com> --- Test with: Mininow max rt5651 and APL UP^2 nocodec and CNL nocodec SOF 1.1-stable: 98d3a838cb397e91d6c032cf9b39d3748102803e SOF-Tool 1.1-stable: 78ad1ccce5ac689680adc32f8136f5bf551b0f7c https://github.com/plbossart/sound/tree/topic/sof-v4.14: c33cfed51fff5eb156dcf70ba849e6ffb3008377 --- src/include/reef/dma-trace.h | 1 + src/lib/dma-trace.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/include/reef/dma-trace.h b/src/include/reef/dma-trace.h index bf6e3f3..c5982d2 100644 --- a/src/include/reef/dma-trace.h +++ b/src/include/reef/dma-trace.h @@ -56,6 +56,7 @@ struct dma_trace_data { struct dma_sg_config config; struct dma_trace_buf dmatb; struct dma_copy dc; + uint32_t old_host_offset; uint32_t host_offset; uint32_t overflow; uint32_t messages; diff --git a/src/lib/dma-trace.c b/src/lib/dma-trace.c index d9adb6d..d7ad3d2 100644 --- a/src/lib/dma-trace.c +++ b/src/lib/dma-trace.c @@ -64,7 +64,10 @@ static uint64_t trace_work(void *data, uint64_t delay) * This function will be called once every 500ms at least even * if no new trace is filled. */ - ipc_dma_trace_send_position(); + if (d->old_host_offset != d->host_offset) { + ipc_dma_trace_send_position(); + d->old_host_offset = d->host_offset; + } #endif /* any data to copy ? */ -- 2.14.3
2 1
0 0
[Sound-open-firmware] [PATCH] Fix: Don't update avail trace size when DMA copying fails.
by yan.wang@linux.intel.com 30 Mar '18

30 Mar '18
From: Yan Wang <yan.wang(a)linux.intel.com> When DMA copying fails, its returned copy size is negative error number. So it shouldn't be used to update avail variable. Signed-off-by: Yan Wang <yan.wang(a)linux.intel.com> --- Test with: Mininow max rt5651 and APL UP^2 nocodec and CNL nocodec SOF 1.1-stable: 98d3a838cb397e91d6c032cf9b39d3748102803e SOF-Tool 1.1-stable: 78ad1ccce5ac689680adc32f8136f5bf551b0f7c https://github.com/plbossart/sound/tree/topic/sof-v4.14: c33cfed51fff5eb156dcf70ba849e6ffb3008377 --- src/lib/dma-trace.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/dma-trace.c b/src/lib/dma-trace.c index 21d1a39..d9adb6d 100644 --- a/src/lib/dma-trace.c +++ b/src/lib/dma-trace.c @@ -122,10 +122,11 @@ out: spin_lock_irq(&d->lock, flags); /* disregard any old messages and dont resend them if we overflow */ - if (d->overflow) { - buffer->avail = DMA_TRACE_LOCAL_SIZE - size; - } else { - buffer->avail -= size; + if (size > 0) { + if (d->overflow) + buffer->avail = DMA_TRACE_LOCAL_SIZE - size; + else + buffer->avail -= size; } /* DMA trace copying is done, allow reschedule */ -- 2.14.3
2 1
0 0
[Sound-open-firmware] [PATCH] dw-dma: recover dma status when release
by Xiuli Pan 30 Mar '18

30 Mar '18
From: Pan Xiuli <xiuli.pan(a)linux.intel.com> Resume pause will re-start DMA, which will cause the DMA status diff from buffer COMP. Add a release function to recover the status mainily for LLI now. This patch fixes pause/resume noise issues. Tested-by: Keyon Jie <yang.jie(a)linux.intel.com> Signed-off-by: Pan Xiuli <xiuli.pan(a)linux.intel.com> --- Test with: Mininow max rt5651 SOF 1.1-stable: 98d3a838cb397e91d6c032cf9b39d3748102803e SOF-Tool 1.1-stable: 78ad1ccce5ac689680adc32f8136f5bf551b0f7c https://github.com/plbossart/sound/tree/topic/sof-v4.14: c33cfed51fff5eb156dcf70ba849e6ffb3008377 --- src/audio/dai.c | 21 ++++++++++++++++++--- src/drivers/dw-dma.c | 16 ++++++++++------ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/audio/dai.c b/src/audio/dai.c index 79e877f..9865e02 100644 --- a/src/audio/dai.c +++ b/src/audio/dai.c @@ -558,12 +558,27 @@ static int dai_comp_trigger(struct comp_dev *dev, int cmd) switch (cmd) { case COMP_TRIGGER_START: dai_pointer_init(dev); - /* fall through */ - case COMP_TRIGGER_RELEASE: - /* only start the DAI if we are not XRUN handling */ if (dd->xrun == 0) { + /* start the DAI */ + ret = dma_start(dd->dma, dd->chan); + if (ret < 0) + return ret; + dai_trigger(dd->dai, cmd, dev->params.direction); + } else { + dd->xrun = 0; + } + /* update starting wallclock */ + platform_dai_wallclock(dev, &dd->wallclock); + break; + case COMP_TRIGGER_RELEASE: + /* only start the DAI if we are not XRUN handling */ + if (dd->xrun == 0) { + /* recover the dma status */ + ret = dma_release(dd->dma, dd->chan); + if (ret < 0) + return ret; /* start the DAI */ ret = dma_start(dd->dma, dd->chan); if (ret < 0) diff --git a/src/drivers/dw-dma.c b/src/drivers/dw-dma.c index aac524e..a21ecc5 100644 --- a/src/drivers/dw-dma.c +++ b/src/drivers/dw-dma.c @@ -430,18 +430,22 @@ out: static int dw_dma_release(struct dma *dma, int channel) { struct dma_pdata *p = dma_get_drvdata(dma); + struct dw_lli2 *lli; uint32_t flags; spin_lock_irq(&dma->lock, flags); trace_dma("Dpr"); - if (p->chan[channel].status == COMP_STATE_PAUSED) { - dw_dma_chan_reload_lli(dma, channel); - } - - /* resume and reload DMA */ - p->chan[channel].status = COMP_STATE_ACTIVE; + /* get current lli */ +#if DW_USE_HW_LLI + lli = (struct dw_lli2 *)dw_read(dma, DW_LLP(channel)); +#else + lli = p->chan[channel].lli_current; +#endif + /* get next lli and recover the lli to head for restart */ + lli = (struct dw_lli2 *)lli->llp; + p->chan[channel].lli = lli; spin_unlock_irq(&dma->lock, flags); return 0; -- 2.7.4
3 2
0 0
[Sound-open-firmware] [PATCH] topology: test: remove 2 unsupported passthrough tplg
by Keqiao.Zhang 30 Mar '18

30 Mar '18
Signed-off-by: Keqiao.Zhang <keqiao.zhang(a)linux.intel.com> --- topology/test/tplg-build.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index 5926ee7..ff2d144 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -93,8 +93,6 @@ simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 19200000 I2S simple_test nocodec src "NoCodec" s24le 2 s24le 25 24 2400000 19200000 I2S simple_test codec passthrough "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 I2S -simple_test codec passthrough "SSP2-Codec" s24le 2 s16le 20 16 1920000 19200000 I2S -simple_test codec passthrough "SSP2-Codec" s16le 2 s24le 25 24 2400000 19200000 I2S simple_test codec passthrough "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 I2S simple_test codec volume "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 I2S simple_test codec volume "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 I2S -- 2.11.0
3 2
0 0
[Sound-open-firmware] [PATCH] topology: test: add different ssp modes of topologies for test
by Keqiao.Zhang 30 Mar '18

30 Mar '18
Signed-off-by: Keqiao.Zhang <keqiao.zhang(a)linux.intel.com> --- topology/test/tplg-build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index 96f3f9f..5926ee7 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -104,14 +104,17 @@ simple_test codec src "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 I2S # for APL simple_test nocodec volume "NoCodec" s16le 4 s16le 16 16 1536000 24576000 I2S +simple_test nocodec volume "NoCodec" s16le 4 s16le 16 16 1536000 24576000 DSP_A simple_test nocodec volume "NoCodec" s24le 4 s16le 16 16 1536000 24576000 I2S simple_test nocodec volume "NoCodec" s32le 4 s16le 16 16 1536000 24576000 I2S simple_test nocodec volume "NoCodec" s16le 4 s24le 32 24 3072000 24576000 I2S simple_test nocodec volume "NoCodec" s24le 4 s24le 32 24 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s24le 4 s24le 32 24 3072000 24576000 DSP_B simple_test nocodec volume "NoCodec" s32le 4 s24le 32 24 3072000 24576000 I2S simple_test nocodec volume "NoCodec" s16le 4 s32le 32 32 3072000 24576000 I2S simple_test nocodec volume "NoCodec" s24le 4 s32le 32 32 3072000 24576000 I2S simple_test nocodec volume "NoCodec" s32le 4 s32le 32 32 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s32le 4 s32le 32 32 3072000 24576000 LEFT_J simple_test codec volume "SSP4-Codec" s16le 4 s16le 16 16 1536000 24576000 I2S simple_test nocodec volume "NoCodec" s16le 5 s16le 16 16 1536000 24576000 I2S simple_test nocodec src "NoCodec" s24le 4 s24le 32 24 3072000 24576000 I2S -- 2.11.0
2 1
0 0
[Sound-open-firmware] [PATCH] topology: ssp: add TEST_SSP_MODE for ssp to support more modes
by Keqiao.Zhang 30 Mar '18

30 Mar '18
Signed-off-by: Keqiao.Zhang <keqiao.zhang(a)linux.intel.com> --- topology/test/test-capture-ssp.m4 | 3 +- topology/test/test-playback-ssp.m4 | 3 +- topology/test/test-ssp.m4 | 3 +- topology/test/tplg-build.sh | 69 ++++++++++++++++++++------------------ 4 files changed, 42 insertions(+), 36 deletions(-) diff --git a/topology/test/test-capture-ssp.m4 b/topology/test/test-capture-ssp.m4 index 3d10d7a..78b6479 100644 --- a/topology/test/test-capture-ssp.m4 +++ b/topology/test/test-capture-ssp.m4 @@ -28,6 +28,7 @@ include(`dsps/byt.m4') # TEST_SSP_BCLK - SSP BCLK in Hz # 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 # # @@ -67,7 +68,7 @@ PCM_CAPTURE_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_2) # # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample conatiner on SSP TEST_SSP_PORT # -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, I2S, TEST_SSP_DATA_BITS, +DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, TEST_SSP_MODE, TEST_SSP_DATA_BITS, DAI_CLOCK(mclk, TEST_SSP_MCLK, slave), DAI_CLOCK(bclk, TEST_SSP_BCLK, slave), DAI_CLOCK(fsync, 48000, slave), diff --git a/topology/test/test-playback-ssp.m4 b/topology/test/test-playback-ssp.m4 index ab775a4..e4b09ec 100644 --- a/topology/test/test-playback-ssp.m4 +++ b/topology/test/test-playback-ssp.m4 @@ -28,6 +28,7 @@ include(`dsps/byt.m4') # TEST_SSP_BCLK - SSP BCLK in Hz # 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 # # @@ -67,7 +68,7 @@ PCM_PLAYBACK_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1) # # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample conatiner on SSP TEST_SSP_PORT # -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, I2S, TEST_SSP_DATA_BITS, +DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, TEST_SSP_MODE, TEST_SSP_DATA_BITS, DAI_CLOCK(mclk, TEST_SSP_MCLK, slave), DAI_CLOCK(bclk, TEST_SSP_BCLK, slave), DAI_CLOCK(fsync, 48000, slave), diff --git a/topology/test/test-ssp.m4 b/topology/test/test-ssp.m4 index fa5fd29..676e19b 100644 --- a/topology/test/test-ssp.m4 +++ b/topology/test/test-ssp.m4 @@ -28,6 +28,7 @@ include(`dsps/byt.m4') # TEST_SSP_BCLK - SSP BCLK in Hz # 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 # # @@ -85,7 +86,7 @@ PCM_DUPLEX_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample conatiner on SSP TEST_SSP_PORT # -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, I2S, TEST_SSP_DATA_BITS, +DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, TEST_SSP_MODE, TEST_SSP_DATA_BITS, DAI_CLOCK(mclk, TEST_SSP_MCLK, slave), DAI_CLOCK(bclk, TEST_SSP_BCLK, slave), DAI_CLOCK(fsync, 48000, slave), diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index 5a6a8f5..96f3f9f 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -28,11 +28,13 @@ TONE_TEST=test-tone-playback-ssp # 8) dai_data_bits - SSP number of valid data bits per slot/channel # 9) dai_bclk - SSP BCLK in HZ # 10) dai_mclk - SSP MCLK in HZ +# 11) SSP mode - SSP mode e.g. I2S, LEFT_J, DSP_A and DSP_B # + function simple_test { for i in ${SIMPLE_TESTS[@]} do - TFILE="$i$5-$2-$4-$6-48k-$1" + TFILE="$i$5-${11}-$2-$4-$6-48k-$1" echo "M4 pre-processing test $i -> ${TFILE}" m4 ${M4_FLAGS} \ -DTEST_PIPE_NAME="$2" \ @@ -44,6 +46,7 @@ function simple_test { -DTEST_SSP_MCLK=${10} \ -DTEST_SSP_PHY_BITS=$7 \ -DTEST_SSP_DATA_BITS=$8 \ + -DTEST_SSP_MODE=${11} \ $i.m4 > ${TFILE}.conf echo "Compiling test $i -> ${TFILE}.tplg" alsatplg -v 1 -c ${TFILE}.conf -o ${TFILE}.tplg @@ -82,43 +85,43 @@ function tone_test { } # Pre-process the simple tests -simple_test nocodec passthrough "NoCodec" s16le 2 s16le 20 16 1920000 19200000 -simple_test nocodec passthrough "NoCodec" s24le 2 s24le 25 24 2400000 19200000 -simple_test nocodec volume "NoCodec" s16le 2 s16le 20 16 1920000 19200000 -simple_test nocodec volume "NoCodec" s24le 2 s24le 25 24 2400000 19200000 -simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 19200000 -simple_test nocodec src "NoCodec" s24le 2 s24le 25 24 2400000 19200000 +simple_test nocodec passthrough "NoCodec" s16le 2 s16le 20 16 1920000 19200000 I2S +simple_test nocodec passthrough "NoCodec" s24le 2 s24le 25 24 2400000 19200000 I2S +simple_test nocodec volume "NoCodec" s16le 2 s16le 20 16 1920000 19200000 I2S +simple_test nocodec volume "NoCodec" s24le 2 s24le 25 24 2400000 19200000 I2S +simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 19200000 I2S +simple_test nocodec src "NoCodec" s24le 2 s24le 25 24 2400000 19200000 I2S -simple_test codec passthrough "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 -simple_test codec passthrough "SSP2-Codec" s24le 2 s16le 20 16 1920000 19200000 -simple_test codec passthrough "SSP2-Codec" s16le 2 s24le 25 24 2400000 19200000 -simple_test codec passthrough "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 -simple_test codec volume "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 -simple_test codec volume "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 -simple_test codec volume "SSP2-Codec" s24le 2 s16le 20 16 1920000 19200000 -simple_test codec volume "SSP2-Codec" s16le 2 s24le 25 24 2400000 19200000 -simple_test codec src "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 +simple_test codec passthrough "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 I2S +simple_test codec passthrough "SSP2-Codec" s24le 2 s16le 20 16 1920000 19200000 I2S +simple_test codec passthrough "SSP2-Codec" s16le 2 s24le 25 24 2400000 19200000 I2S +simple_test codec passthrough "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 I2S +simple_test codec volume "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 I2S +simple_test codec volume "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 I2S +simple_test codec volume "SSP2-Codec" s24le 2 s16le 20 16 1920000 19200000 I2S +simple_test codec volume "SSP2-Codec" s16le 2 s24le 25 24 2400000 19200000 I2S +simple_test codec src "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 I2S # for APL -simple_test nocodec volume "NoCodec" s16le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s24le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s32le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s16le 4 s24le 32 24 3072000 24576000 -simple_test nocodec volume "NoCodec" s24le 4 s24le 32 24 3072000 24576000 -simple_test nocodec volume "NoCodec" s32le 4 s24le 32 24 3072000 24576000 -simple_test nocodec volume "NoCodec" s16le 4 s32le 32 32 3072000 24576000 -simple_test nocodec volume "NoCodec" s24le 4 s32le 32 32 3072000 24576000 -simple_test nocodec volume "NoCodec" s32le 4 s32le 32 32 3072000 24576000 -simple_test codec volume "SSP4-Codec" s16le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s16le 5 s16le 16 16 1536000 24576000 -simple_test nocodec src "NoCodec" s24le 4 s24le 32 24 3072000 24576000 +simple_test nocodec volume "NoCodec" s16le 4 s16le 16 16 1536000 24576000 I2S +simple_test nocodec volume "NoCodec" s24le 4 s16le 16 16 1536000 24576000 I2S +simple_test nocodec volume "NoCodec" s32le 4 s16le 16 16 1536000 24576000 I2S +simple_test nocodec volume "NoCodec" s16le 4 s24le 32 24 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s24le 4 s24le 32 24 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s32le 4 s24le 32 24 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s16le 4 s32le 32 32 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s24le 4 s32le 32 32 3072000 24576000 I2S +simple_test nocodec volume "NoCodec" s32le 4 s32le 32 32 3072000 24576000 I2S +simple_test codec volume "SSP4-Codec" s16le 4 s16le 16 16 1536000 24576000 I2S +simple_test nocodec volume "NoCodec" s16le 5 s16le 16 16 1536000 24576000 I2S +simple_test nocodec src "NoCodec" s24le 4 s24le 32 24 3072000 24576000 I2S # for CNL -simple_test nocodec volume "NoCodec" s16le 2 s16le 25 16 2400000 24000000 -simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 24000000 -simple_test nocodec volume "NoCodec" s24le 2 s24le 25 24 2400000 24000000 -simple_test nocodec volume "NoCodec" s24le 2 s16le 25 16 2400000 24000000 -simple_test nocodec src "NoCodec" s24le 4 s24le 25 24 2400000 24000000 +simple_test nocodec volume "NoCodec" s16le 2 s16le 25 16 2400000 24000000 I2S +simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 24000000 I2S +simple_test nocodec volume "NoCodec" s24le 2 s24le 25 24 2400000 24000000 I2S +simple_test nocodec volume "NoCodec" s24le 2 s16le 25 16 2400000 24000000 I2S +simple_test nocodec src "NoCodec" s24le 4 s24le 25 24 2400000 24000000 I2S # Tone test: Tone component only supports s32le currently tone_test codec tone "SSP2-Codec" s32le 2 s16le 20 16 1920000 19200000 -- 2.11.0
2 1
0 0
[Sound-open-firmware] [PATCH] topology: specify SSP port for NoCodec
by Keyon Jie 29 Mar '18

29 Mar '18
Add prefix 'SSPx-' for stream name 'NoCodec' to match with SOF nocodec driver. Signed-off-by: Keyon Jie <yang.jie(a)linux.intel.com> --- This shoule be merged together with driver patch: [PATCH] ASoC: SOF: nocodec: add more BE dailinks. Tested on GPMRB with: Kernel https://github.com/plbossart/sound/ #topic/sof-v4.14 c2fdacbcda40ecd23944d960d1b1c34529fd284d SOF: git://git.alsa-project.org/sound-open-firmware.git #1.1-stable eba34c566d660c227d5691dcfc010594bd5ddf3d SOFT: git://git.alsa-project.org/sound-open-firmware-tools.git #1.1-stable 739acd1e5e542b09f7b204f44350d676dacf0000 topology/reef-bxt-nocodec.m4 | 6 +++--- topology/reef-byt-nocodec.m4 | 6 +++--- topology/reef-cht-nocodec.m4 | 6 +++--- topology/test/tplg-build.sh | 44 ++++++++++++++++++++++---------------------- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/topology/reef-bxt-nocodec.m4 b/topology/reef-bxt-nocodec.m4 index 7e2b624..3ae2401 100644 --- a/topology/reef-bxt-nocodec.m4 +++ b/topology/reef-bxt-nocodec.m4 @@ -76,14 +76,14 @@ SectionGraph."pipe-bxt-nocodec" { # playback DAI is SSP2 using 2 periods # Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-playback.m4, - 1, SSP, 2, NoCodec, + 1, SSP, 2, SSP2-NoCodec, PIPELINE_SOURCE_1, 2, s24le, 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 DAI_ADD(sof/pipe-dai-capture.m4, - 2, SSP, 2, NoCodec, + 2, SSP, 2, SSP2-NoCodec, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0) @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # # BE configurations - overrides config in ACPI if present # -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24, +DAI_CONFIG(SSP, 2, SSP2-NoCodec, I2S, 24, DAI_CLOCK(mclk, 19200000, slave), DAI_CLOCK(bclk, 2400000, slave), DAI_CLOCK(fsync, 48000, slave), diff --git a/topology/reef-byt-nocodec.m4 b/topology/reef-byt-nocodec.m4 index 3be5d00..9748f21 100644 --- a/topology/reef-byt-nocodec.m4 +++ b/topology/reef-byt-nocodec.m4 @@ -76,14 +76,14 @@ SectionGraph."pipe-byt-nocodec" { # playback DAI is SSP2 using 2 periods # Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-playback.m4, - 1, SSP, 2, NoCodec, + 1, SSP, 2, SSP2-NoCodec, PIPELINE_SOURCE_1, 2, s24le, 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 DAI_ADD(sof/pipe-dai-capture.m4, - 2, SSP, 2, NoCodec, + 2, SSP, 2, SSP2-NoCodec, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0) @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # # BE configurations - overrides config in ACPI if present # -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24, +DAI_CONFIG(SSP, 2, SSP2-NoCodec, I2S, 24, DAI_CLOCK(mclk, 19200000, slave), DAI_CLOCK(bclk, 2400000, slave), DAI_CLOCK(fsync, 48000, slave), diff --git a/topology/reef-cht-nocodec.m4 b/topology/reef-cht-nocodec.m4 index 3f61e44..260af57 100644 --- a/topology/reef-cht-nocodec.m4 +++ b/topology/reef-cht-nocodec.m4 @@ -76,14 +76,14 @@ SectionGraph."pipe-cht-nocodec" { # playback DAI is SSP2 using 2 periods # Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0 DAI_ADD(sof/pipe-dai-playback.m4, - 1, SSP, 2, NoCodec, + 1, SSP, 2, SSP2-NoCodec, PIPELINE_SOURCE_1, 2, s24le, 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 DAI_ADD(sof/pipe-dai-capture.m4, - 2, SSP, 2, NoCodec, + 2, SSP, 2, SSP2-NoCodec, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0) @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # # BE configurations - overrides config in ACPI if present # -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24, +DAI_CONFIG(SSP, 2, SSP2-NoCodec, I2S, 24, DAI_CLOCK(mclk, 19200000, slave), DAI_CLOCK(bclk, 2400000, slave), DAI_CLOCK(fsync, 48000, slave), diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index 5a6a8f5..d8d5ad0 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -82,12 +82,12 @@ function tone_test { } # Pre-process the simple tests -simple_test nocodec passthrough "NoCodec" s16le 2 s16le 20 16 1920000 19200000 -simple_test nocodec passthrough "NoCodec" s24le 2 s24le 25 24 2400000 19200000 -simple_test nocodec volume "NoCodec" s16le 2 s16le 20 16 1920000 19200000 -simple_test nocodec volume "NoCodec" s24le 2 s24le 25 24 2400000 19200000 -simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 19200000 -simple_test nocodec src "NoCodec" s24le 2 s24le 25 24 2400000 19200000 +simple_test nocodec passthrough "SSP2-NoCodec" s16le 2 s16le 20 16 1920000 19200000 +simple_test nocodec passthrough "SSP2-NoCodec" s24le 2 s24le 25 24 2400000 19200000 +simple_test nocodec volume "SSP2-NoCodec" s16le 2 s16le 20 16 1920000 19200000 +simple_test nocodec volume "SSP2-NoCodec" s24le 2 s24le 25 24 2400000 19200000 +simple_test nocodec volume "SSP2-NoCodec" s16le 2 s24le 25 24 2400000 19200000 +simple_test nocodec src "SSP2-NoCodec" s24le 2 s24le 25 24 2400000 19200000 simple_test codec passthrough "SSP2-Codec" s16le 2 s16le 20 16 1920000 19200000 simple_test codec passthrough "SSP2-Codec" s24le 2 s16le 20 16 1920000 19200000 @@ -100,25 +100,25 @@ simple_test codec volume "SSP2-Codec" s16le 2 s24le 25 24 2400000 19200000 simple_test codec src "SSP2-Codec" s24le 2 s24le 25 24 2400000 19200000 # for APL -simple_test nocodec volume "NoCodec" s16le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s24le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s32le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s16le 4 s24le 32 24 3072000 24576000 -simple_test nocodec volume "NoCodec" s24le 4 s24le 32 24 3072000 24576000 -simple_test nocodec volume "NoCodec" s32le 4 s24le 32 24 3072000 24576000 -simple_test nocodec volume "NoCodec" s16le 4 s32le 32 32 3072000 24576000 -simple_test nocodec volume "NoCodec" s24le 4 s32le 32 32 3072000 24576000 -simple_test nocodec volume "NoCodec" s32le 4 s32le 32 32 3072000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s16le 4 s16le 16 16 1536000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s24le 4 s16le 16 16 1536000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s32le 4 s16le 16 16 1536000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s16le 4 s24le 32 24 3072000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s24le 4 s24le 32 24 3072000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s32le 4 s24le 32 24 3072000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s16le 4 s32le 32 32 3072000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s24le 4 s32le 32 32 3072000 24576000 +simple_test nocodec volume "SSP4-NoCodec" s32le 4 s32le 32 32 3072000 24576000 simple_test codec volume "SSP4-Codec" s16le 4 s16le 16 16 1536000 24576000 -simple_test nocodec volume "NoCodec" s16le 5 s16le 16 16 1536000 24576000 -simple_test nocodec src "NoCodec" s24le 4 s24le 32 24 3072000 24576000 +simple_test nocodec volume "SSP5-NoCodec" s16le 5 s16le 16 16 1536000 24576000 +simple_test nocodec src "SSP4-NoCodec" s24le 4 s24le 32 24 3072000 24576000 # for CNL -simple_test nocodec volume "NoCodec" s16le 2 s16le 25 16 2400000 24000000 -simple_test nocodec volume "NoCodec" s16le 2 s24le 25 24 2400000 24000000 -simple_test nocodec volume "NoCodec" s24le 2 s24le 25 24 2400000 24000000 -simple_test nocodec volume "NoCodec" s24le 2 s16le 25 16 2400000 24000000 -simple_test nocodec src "NoCodec" s24le 4 s24le 25 24 2400000 24000000 +simple_test nocodec volume "SSP2-NoCodec" s16le 2 s16le 25 16 2400000 24000000 +simple_test nocodec volume "SSP2-NoCodec" s16le 2 s24le 25 24 2400000 24000000 +simple_test nocodec volume "SSP2-NoCodec" s24le 2 s24le 25 24 2400000 24000000 +simple_test nocodec volume "SSP2-NoCodec" s24le 2 s16le 25 16 2400000 24000000 +simple_test nocodec src "SSP2-NoCodec" s24le 4 s24le 25 24 2400000 24000000 # Tone test: Tone component only supports s32le currently tone_test codec tone "SSP2-Codec" s32le 2 s16le 20 16 1920000 19200000 -- 2.14.1
2 2
0 0
[Sound-open-firmware] [PATCH] host-gw: fix hda-dma not start at pause release issue.
by Keyon Jie 29 Mar '18

29 Mar '18
We don't need stop host dma at pause, which is aligned with baytrail GPDMA. Signed-off-by: Keyon Jie <yang.jie(a)linux.intel.com> --- src/audio/host.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/audio/host.c b/src/audio/host.c index 9177d99..ac79d36 100644 --- a/src/audio/host.c +++ b/src/audio/host.c @@ -465,9 +465,6 @@ static int host_cmd(struct comp_dev *dev, int cmd, void *data) return ret; switch (cmd) { - case COMP_CMD_PAUSE: - dma_stop(hd->dma, hd->chan); - break; case COMP_CMD_STOP: ret = host_stop(dev); break; -- 2.14.1
4 3
0 0
  • ← Newer
  • 1
  • ...
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • ...
  • 161
  • Older →

HyperKitty Powered by HyperKitty version 1.3.8.