[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