Skip to content

Conversation

@RanderWang
Copy link
Collaborator

@RanderWang RanderWang commented Dec 13, 2022

It is a simple pipeline for AEC according to the requirement of chrome team. In future one capture stream will be for AEC and anther one will be sent back to user directly.
AEC pcm id is 27. Table shared by Pierre

PCM0 playback Jack Out
PCM1 capture Jack In
PCM2 playback Speaker
PCM3 capture Amplifier Reference (typically based on I/V feedback)
PCM4 capture Microphone
PCM5 playback HDMI 1
PCM6 playback HDMI 2
PCM7 playback HDMI 3
PCM8 playback HDMI 4
PCM9 RESERVED
PCM10 capture DMIC
PCM11 capture DMIC16kHz
PCM12 capture BufferedMic (aka KPB)
PCM13 playback Bluetooth
PCM14 capture Bluetooth
PCM15 RESERVED
PCM16 RESERVED
PCM17 RESERVED
PCM18 RESERVED
PCM19 RESERVED
PCM20 capture LowLatency
PCM21 capture RawPDM
PCM22 capture Ultrasonics
PCM23 capture RawPCM
PCM24 capture Voice (Communication with a human)
PCM25 capture Speech (interaction with a machine)
PCM26 capture Context (aka Acoustic Context Analysis - ACA)
PCM27 capture Reference (e.g. for AEC. May be based on I/V feedback or on playback data)
PCM28 RESERVED
PCM29 RESERVED
PCM30 playback LowLatency
PCM31 playback DeepBuffer (for low-power)
PCM32 playback Media (e.g. movies)
PCM33 playback Voice (Communication with a human)
PCM34 playback Ultrasonics

@plbossart
Copy link
Member

@RanderWang can you remind me why we need three copier.module for a simple demux functionality. Can't we just have one? Or are we missing an additional layer on top of the second copier/

sof-tgl-nocodec

@ranj063
Copy link
Collaborator

ranj063 commented Dec 13, 2022

@RanderWang can you remind me why we need three copier.module for a simple demux functionality. Can't we just have one? Or are we missing an additional layer on top of the second copier/

@plbossart this is because of the restriction with the ref FW that the gain module can only be connected to modules that are in the same pipeline as the gain module

@RanderWang RanderWang force-pushed the topology2-aec branch 3 times, most recently from f2216b5 to ead0669 Compare December 14, 2022 06:56
@RanderWang
Copy link
Collaborator Author

@plbossart updated with second capture stream

@lgirdwood
Copy link
Member

@cujomalainey table update good for you ?

@lgirdwood
Copy link
Member

@dbaluta fyi

@RanderWang
Copy link
Collaborator Author

rebase to latest code

@RanderWang RanderWang requested a review from bardliao December 16, 2022 08:07
@RanderWang
Copy link
Collaborator Author

update for bard`s comments

@RanderWang
Copy link
Collaborator Author

wrap commit message to 75 char per line

@RanderWang
Copy link
Collaborator Author

updated based on Pierre's advice
(1) change Reference to Raw
(2) remove host components in DMIC definition.

Copy link
Member

@plbossart plbossart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

couple more comments to make this PR shiny-clean. Thanks @RanderWang

@RanderWang RanderWang force-pushed the topology2-aec branch 3 times, most recently from ee2c6c9 to a2bc134 Compare February 3, 2023 05:17
@RanderWang
Copy link
Collaborator Author

@lgirdwood it is good for me now. Only known issue on SDW, please check #7037 ipc timed out for 0x13020003 |GLB_SET_PIPELINE_STATE on TGLU_RVP_SDW_IPC4ZPH). Thanks @lyakh put great effort on this PR!

@lyakh
Copy link
Collaborator

lyakh commented Feb 3, 2023

@RanderWang haven't you forgotten to update tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf too with num_source_audio_formats and num_sink_audio_formats?

RanderWang and others added 4 commits February 3, 2023 16:49
This patch will support multiple capture streams with DMIC. The pcm stream
is composed of two pipelines: (1) copier host <- gain <- copier module
(2) copier module <-gain <- copier DMIC. We need to use copier module
to connect two pipelines because of the restriction with the ref FW that
the gain module can only be connected to modules that are in the same
pipeline

Signed-off-by: Rander Wang <rander.wang@intel.com>
Currently copier components of the module type are used in pairs -
one on each pipeline, connecting to each other. This isn't necessary.
It's enough to have one such copier component on the side, that does
forking. Add a single-copier capture pipeline variane and switch
DMIC over to it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The second capture stream can be used as a reference stream for user.

Signed-off-by: Rander Wang <rander.wang@intel.com>
Use the simplified pipeline with just one module-type copier
connecting two pipelines.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
@RanderWang RanderWang force-pushed the topology2-aec branch 2 times, most recently from 7d09363 to b71a112 Compare February 3, 2023 08:56
@RanderWang
Copy link
Collaborator Author

@RanderWang haven't you forgotten to update tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf too with num_source_audio_formats and num_sink_audio_formats?

Thanks! fix it.

@lyakh
Copy link
Collaborator

lyakh commented Feb 3, 2023

why have tests failed this time - on all of HDA, SDW and nocodec? I see an "IPC timed out" only in one of them?

@kv2019i
Copy link
Collaborator

kv2019i commented Feb 3, 2023

Hmm, the tests still do not look good. One issue is known, this one https://sof-ci.01.org/sofpr/PR6783/build3698/devicetest/index.html?model=ADLP_RVP_NOCODEC_IPC4ZPH&testcase=multiple-pause-resume-5 is this #6864

But there are multiple other failures in https://sof-ci.01.org/sofpr/PR6783/build3698/devicetest/index.html that do not have the above signature and these don't happen in mainline. I checked #7037 but I don't see "ipc timed out for 0x13020003" in logs of the failed cases.

I do see #7025 passed the tests, so not sure what to make of it. Does this PR make cause existing bugs to be hit at higher reproduction rate? I'll kick off SOF_CI once more to get a bit more statistical data on this.

@kv2019i
Copy link
Collaborator

kv2019i commented Feb 3, 2023

SOFCI TEST

@RanderWang
Copy link
Collaborator Author

@kv2019i , this PR is a copy of #7025. I don't find any error after retest now

@lgirdwood
Copy link
Member

Tests looking good, but 3 DUTs were not available. Will rerun again in an hour.

Insert a second copier into the DMIC0 stream to generate a total of
three PCMs from it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
@keqiaozhang
Copy link
Collaborator

SOFCI TEST

@RanderWang
Copy link
Collaborator Author

SOFCI TEST

@RanderWang
Copy link
Collaborator Author

@lgirdwood @kv2019i only one failed: SDW. I checked the topology, as I know this PR doesn't affect it. @lyakh how about your idea ? Thanks!

@lyakh
Copy link
Collaborator

lyakh commented Feb 6, 2023

@lgirdwood @kv2019i only one failed: SDW. I checked the topology, as I know this PR doesn't affect it. @lyakh how about your idea ? Thanks!

I'm pretty certain https://sof-ci.01.org/sofpr/PR6783/build3727/devicetest/index.html?model=TGLU_RVP_SDW_IPC4ZPH&testcase=check-suspend-resume-with-playback is unrelated to this PR for reasons:

  1. this PR touches only capture, the failure is with playback
  2. the failure is where we often get failures - with suspend-resume
  3. the failure is a timeout, not an actual run-time error

@kv2019i kv2019i requested a review from plbossart February 6, 2023 09:21
@kv2019i
Copy link
Collaborator

kv2019i commented Feb 6, 2023

Thanks @RanderWang and @lyakh . The latest test results look good and together with the analysis, I think this is good to go. @plbossart good to go now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants