Re: [PATCH] ASoC: soc-pcm: Revert "call snd_soc_component_open/close() once"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Morimoto-san,

On Fri, 21 Feb 2020, Kuninori Morimoto wrote:

> Kai Vehmanen wrote:
> > So if the primary problem is the messy rollback in case one open fails, 
> > what if we do the rollback directly in soc_pcm_components_open() and do
> > not add any additional tracking..?
> > 
> > Let me send a proposal patch for that.
> It seems the patch was not so good cleanup...
> 
> Thank you for your proposal patch. I checked it.
> But, if it rollback when error with *last,
> my opinion is original code
> (= soc_pcm_components_close() needs *last parameter)
> (= same as just revert the patch) is better.

well, I do think the original code could still need a cleanup, so the 
effort is very much welcome. Having to pass the "last" parameter to 
components_open() just so that we can clean up if errors happen, seems
a bit out of place.

But yeah, easier said than done. We have now three alternatives to solve 
this:

1. do the cleanup locally in soc_pcm_components_open()
	[PATCH] ASoC: soc-pcm: fix state tracking error in snd_soc_component_open/close()

2. revert to original implementation with "last" passed to components_open()
	[PATCH] ASoC: soc-pcm: Revert "call snd_soc_component_open/close() once"

3. implement opened/module counters
	[PATCH][RFC] ASoC: soc-component: count snd_soc_component_open/close()

... I have tested all three and they seem to work.

I still don't really like (1), but I agree (2) adds more code in total.
I worry (3) might backfire with some component-substream combinations.

So maybe we'll go with (1)? We do need to merge one of them, because 
current merged code is broken on many platforms.

Br, Kai



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux