Re: [RFC PATCH 0/3] Separate BE DAI HW constraints from FE ones

From: Codrin.Ciubotariu
Date: Tue Mar 23 2021 - 10:19:57 EST


On 23.03.2021 14:15, Jaroslav Kysela wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> Dne 23. 03. 21 v 12:43 Codrin Ciubotariu napsal(a):
>
>> To achieve this, the first thing needed is to detect whether a HW
>> constraint rule is enforced by a FE or a BE DAI. This means that
>> snd_pcm_hw_rule_add() needs to be able to differentiate between the two
>> type of DAIs. For this, the runtime pointer to struct snd_pcm_runtime is
>> replaced with a pointer to struct snd_pcm_substream, to be able to reach
>> substream->pcm->internal to differentiate between FE and BE DAIs.
>
> Think about other not-so-invasive solution. What about to use
> 'runtime->private_data' (struct snd_soc_pcm_runtime *) to determine FE / BE?
>

I think struct snd_soc_pcm_runtime * is placed in
substream->private_data, while runtime->private_data is used more by the
platform drivers. runtime->trigger_master could be an idea, but it looks
like it's initialized just before the trigger callback is called, way
after the constraint rules are added and I am not sure it can be
initialized earlier...

Best regards,
Codrin