On Wed, Mar 30, 2016 at 10:27:02AM -0700, Mark Brown wrote:
On Wed, Mar 30, 2016 at 06:13:14PM +0100, Charles Keepax wrote:
On Wed, Mar 30, 2016 at 09:36:50AM -0700, Mark Brown wrote:
Doesn't this mean that the appropriate fix is to terminate the DPCM routing at the first back end DAI so we're not trying to DPCM outside the SoC?
I think (not 100% certain) you can have multiple backends connected to a single front end, which makes it hard to know when to stop or even if it is assured that all the backends will be before any other spurious DAIs in the widget list.
You can have multiple backends connected but they shouldn't be chained together, they should be connected in parallel. We can tell if we're walking a node that's a backend, why would we walk the graph beyond that?
Ah ok apologies, I misunderstood your suggestion. I thought you meant aborting the widget list search in dpcm_add_paths, but you actually mean aborting the graph walk in snd_soc_dapm_dai_get_connnected_widgets. That looks totally like it would work, although it needs a bit of thought as I guess the original intention was for get_connected_widgets to be pretty generic, but it does only have the single user.
I will get Piotr to have a look at respinning the patch, when he returns.
Thanks, Charles