Repository navigation
pipeline: Limit propagation of pipeline params, prepare and reset. - #1383
Conversation
|
@akloniex @lgirdwood @plbossart In general I'm a fan of such solution to treat every pipeline independently, but unfortunately currently it will break mixer topologies. We won't be able to start media pipeline, because params won't be propagated to mixer ppl. |
|
@tlauda @akloniex @lgirdwood @plbossart @tlauda and I have some discussion about this few month ago and we did not have any idea. If we have SSP2 set to be S16LE with 48K, what can we play on PCM0 and what can we play on PCM1? Now image a situation: what should be the source/sink prams for each buffer And I can also have something like: Any idea about what should be and how we handle the mixer involved pipelines? |
|
We are going to shoot us in the foot if we keep thinking in terms of continuity between FE and BE, and preloading the data from the host all the way to the DAI. The mixer may want need to remain operational and generate zeroes even in the absence of any stream. This is a classic case that is implemented by all sound servers so as to avoid pops and clicks. It's pretty common to leave the mixer/interface on for a while before deciding to tear things down. |
|
@xiulipan feature request #1280 explains how to propagate params from PCM downstream, but it does need to use a endpoint to endpoint terminology as @plbossart has mentioned rather than always FE to BE. |
|
@lgirdwood |
|
let's verify if this can be the replacement for #1365, to make KWD work. @keqiaozhang @wwittbrx |
f97ce14 to
e6924dd
Compare
|
@akloniex We might need stop propagation of pipeline trigger for different pipelines also, otherwise, KWD pipelines doesn't work, can you update your PR with that, please? |
|
since #1365 is merged, so I am fine if you don't add stop propagation of pipeline trigger to this PR. |
|
@jajanusz @akloniex I understand the direction where this is driven, but triggering and propagating params for separate connected pipelines will not happen from driver side with this schedule (this week). So as you said, we need to then fix the mixer&demux to be intelligent enough to do the proper thing... |
I prefer we do this later to avoid breaking any existed e.g. mixer component, the logic to me is that switching to better framework when it is ready, before that, suffer it. :) |
|
@jajanusz @lgirdwood Regarding Mixer topologies that are broken with this change, I will talk with @tlauda today to check how we can bypass the issues there. |
7ad5b64 to
99d756b
Compare
|
@lgirdwood @jajanusz @tlauda |
|
@akloniex cool! I was just experimenting with the same direction.... does it work? :) |
|
@akloniex there's a typo in your code, so this doesn't compile... |
8ad75d6 to
b56ca0b
Compare
b56ca0b to
d40e182
Compare
|
@lgirdwood @tlauda @mmaka1 ping |
|
@keyonjie also to see this works with kwd... |
d40e182 to
77000af
Compare
|
@lgirdwood @tlauda @mmaka1 ping, we need more reviews |
mmaka1
left a comment
There was a problem hiding this comment.
A simple test for direction change and pipeline id change to stop the propagation could fix it I guess and if I understand it correctly, the direction is the property that might be unavailable (not configured yet) while propagating and this is the reason why it tries to test the component type?
In order to handle complex topologies, we need more precise control over connected pipelines behaviour and propagation of events. Better control is accomplished by limiting propagation of events in case of mismatch between starting and desination pipelines that are connected, for example when propagating from playback pipeline to branch which endpoint is Host component, or reversely, when propagating from capture pipeline to one with Dai endpoint. Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
77000af to
c56485f
Compare
|
@mmaka1 |
In order to handle complex topologies, we need more precise control
over connected pipelines behaviour and propagation of events.
Better control is accomplished by limiting propagation of events in
case of mismatch between starting and desination pipelines that are
connected, for example when propagating from playback pipeline to branch
which endpoint is Host component, or reversely, when propagating from
capture pipeline to one with Dai endpoint.
Signed-off-by: ArturX Kloniecki arturx.kloniecki@linux.intel.com
This PR was extracted from #1275