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