-
Notifications
You must be signed in to change notification settings - Fork 349
topology2: add multiple capture support with DMIC in nocodec path #6783
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@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 |
f2216b5 to
ead0669
Compare
|
@plbossart updated with second capture stream |
ead0669 to
ce56216
Compare
|
@cujomalainey table update good for you ? |
|
@dbaluta fyi |
ce56216 to
c162c7c
Compare
|
rebase to latest code |
c162c7c to
b8edfd5
Compare
|
update for bard`s comments |
b8edfd5 to
e8e58cb
Compare
|
wrap commit message to 75 char per line |
e8e58cb to
f88b43b
Compare
|
updated based on Pierre's advice |
plbossart
left a comment
There was a problem hiding this 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
ee2c6c9 to
a2bc134
Compare
|
@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! |
|
@RanderWang haven't you forgotten to update tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf too with |
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>
7d09363 to
b71a112
Compare
Thanks! fix it. |
|
why have tests failed this time - on all of HDA, SDW and nocodec? I see an "IPC timed out" only in one of them? |
|
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. |
|
SOFCI TEST |
|
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>
|
SOFCI TEST |
b71a112 to
db974a4
Compare
|
SOFCI TEST |
|
@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:
|
|
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? |

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