6 Aug
2012
6 Aug
'12
10:01 a.m.
At Thu, 2 Aug 2012 19:09:27 +0100, Mark Brown wrote:
+int soc_compr_set_params(struct snd_compr_stream *cstream,
struct snd_compr_params *params)
+{
- snd_soc_dai_digital_mute(codec_dai, 0);
This looks wrong - the unmute should be associated with the start of the data transfer rather than the configuration. But we don't have any other ops... can we have one, or a non-atomic trigger?
I've been thinking of the possibility for a long time. The problem is how to handle the trigger(STOP) gracefully. Maybe creating a dedicated work struct would be required. Also it'd require a new schedulable lock for the substream on the top of snd_pcm_stream_lock*(). But before adding it, we should revisit the current lock mess in the code...
Takashi