[alsa-devel] [PATCH] ASoC: ti: davinci-mcasp: Protect hw_params callback against race
Peter Ujfalusi
peter.ujfalusi at ti.com
Mon Aug 12 13:46:33 CEST 2019
On 12/08/2019 14.13, Mark Brown wrote:
> On Mon, Aug 12, 2019 at 12:53:04PM +0300, Peter Ujfalusi wrote:
>> If the playback and capture of the same McASP is connected to different
>> dai link (non duplex PCM links, like with pcm3168a codec) then there is
>> a high probability of race between the two direction leaving McASP in a
>> confused state.
>>
>> Protect the hw_params() with a mutex to make sure that this is not
>> happening.
>
> This feels like something we might want to consider moving up to the
> core, though not every device is going to need it I guess it should be
> safe to do there.
soc_pcm_hw_params() is already protected by
mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass);
which (I think) gives protection for dai_links when they support both
playback and capture.
I faced with the concurrency when interfacing with pcm3168a codec, which
require two dai_links. One for playback and one for capture so they
don't share the same snd_soc_pcm_runtime.
I believe moving the
mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass);
to card level could substitute (new mutex on the card for pcm operations
probably) the need to handle this in drivers.
We would need to change soc-core/pcm/compress for this.
- Péter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
More information about the Alsa-devel
mailing list