[PATCH] ASoC: qcom: common: Respect status = "disabled" on DAI link nodes

Srinivas Kandagatla srinivas.kandagatla at linaro.org
Mon Oct 25 14:33:21 CEST 2021



On 25/10/2021 11:55, Stephan Gerhold wrote:
> At the moment, the DAI link nodes in the device tree always have to be
> specified completely in each device tree. However, the available
> interfaces (e.g. Primary/Secondary/Tertiary/Quaternary MI2S) are common
> for all devices of a SoC, so the majority of the definitions can be
> placed in a common device tree include to reduce boilerplate.
> 
> Make it possible to define such stubs in device tree includes by
> respecting the "status" property for the DAI link nodes. This is
> a trivial change that just requires switching to the _available_
> OF functions that check the "status" property additionally. >
> This allows defining a stub like:
> 
> 	sound_dai_quaternary: dai-link-quaternary {
> 		link-name = "Quaternary MI2S";
> 		status = "disabled"; /* Needs extra codec configuration */
> 		cpu {
> 			sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
> 		};
> 		platform {
> 			sound-dai = <&q6routing>;
> 		};
> 	};
> 
> where the codec would be filled in by the device-specific device tree.
> 
> For existing device trees this change does not make any difference.
> A missing "status" property is treated like status = "okay".

> 
> Cc: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> Signed-off-by: Stephan Gerhold <stephan at gerhold.net>

Thanks for the patch,

Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>

--srini
> ---
>   sound/soc/qcom/common.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/qcom/common.c b/sound/soc/qcom/common.c
> index 09af00700700..2e1c618f7529 100644
> --- a/sound/soc/qcom/common.c
> +++ b/sound/soc/qcom/common.c
> @@ -44,7 +44,7 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
>   		return ret;
>   
>   	/* Populate links */
> -	num_links = of_get_child_count(dev->of_node);
> +	num_links = of_get_available_child_count(dev->of_node);
>   
>   	/* Allocate the DAI link array */
>   	card->dai_link = devm_kcalloc(dev, num_links, sizeof(*link), GFP_KERNEL);
> @@ -54,7 +54,7 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
>   	card->num_links = num_links;
>   	link = card->dai_link;
>   
> -	for_each_child_of_node(dev->of_node, np) {
> +	for_each_available_child_of_node(dev->of_node, np) {
>   		dlc = devm_kzalloc(dev, 2 * sizeof(*dlc), GFP_KERNEL);
>   		if (!dlc) {
>   			ret = -ENOMEM;
> 


More information about the Alsa-devel mailing list