[alsa-devel] [PATCH] ASoC: soc.h: add explanation of legacy/modern style of dai_link

Daniel Baluta daniel.baluta at gmail.com
Thu Jan 17 10:56:51 CET 2019


Few typos here:

On Thu, Jan 17, 2019 at 4:28 AM Kuninori Morimoto
<kuninori.morimoto.gx at renesas.com> wrote:
>
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> Current ALSA SoC is assuming 1 CPU 1 Platform (= DMA) style system.
> Because of this background, it is directly using
> xxx_name / xxx_of_node / xxx_dai_name on dai_link.
> Let's call it as legacy style here.
>
> More complex style system like multi CPU multi Platform (= DMA) will
> coming. To supporting it, we can use snd_soc_dai_link_component on
> dai_link. Let's call it as modern style here.
> But current ALSA SoC can't support it so far. Thus, we need to have
> multi CPU / multi Codec / multi Platform style in the future on ALSA SoC.
>
> Currently we already have multi Codec support. Platform is starting to
> use modern style on dai_link, but still style only. Multi Platform is
> not yet implemented. And we still don't have multi CPU support on ALSA
> SoC, and not have modern style either.
>
> Currently, if driver is using legacy style Codec/Platform, it will be
> converted to modern style on soc-core. This means, we are using glue code
> for legacy vs modern style so far on ALSA SoC.
> We can fully switch to modern style on all drivers if ALSA SoC supported
> modern style for CPU, and then, legacy style code will be removed from
> ALSA SoC.
> Untile then, we need to keep both legacy/modern style and its glue code.
> This patch adds such future plan and background on soc.h
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
>  include/sound/soc.h  | 36 ++++++++++++++++++++++++++++++++++++
>  sound/soc/soc-core.c | 20 ++++++++++++++++++--
>  2 files changed, 54 insertions(+), 2 deletions(-)
>
> diff --git a/include/sound/soc.h b/include/sound/soc.h
> index e665f11..d17e368 100644
> --- a/include/sound/soc.h
> +++ b/include/sound/soc.h
> @@ -891,6 +891,18 @@ struct snd_soc_dai_link {
>         /* config - must be set by machine driver */
>         const char *name;                       /* Codec name */
>         const char *stream_name;                /* Stream name */
> +
> +       /*
> +        *      cpu_name
> +        *      cpu_of_node
> +        *      cpu_dai_name
> +        *
> +        * These are legacy style, and will be replaced to
> +        * modern style (= snd_soc_dai_link_component) in the future,
> +        * but, not yet supported so far.
> +        * If modern style was supported for CPU, all driver will switch
> +        * to use it, and, legacy style code will be removed from ALSA SoC.
> +        */
>         /*
>          * You MAY specify the link's CPU-side device, either by device name,
>          * or by DT/OF node, but not both. If this information is omitted,
> @@ -906,6 +918,19 @@ struct snd_soc_dai_link {
>          * only, which only works well when that device exposes a single DAI.
>          */
>         const char *cpu_dai_name;
> +
> +       /*
> +        *      codec_name
> +        *      codec_of_node
> +        *      codec_dai_name
> +        *
> +        * These are legacy style, it will be converted to modern style
> +        * (= snd_soc_dai_link_component) automatically in soc-core
> +        * if driver is using legacy style.
> +        * Dirver shouldn't use both legacy and modern style in the same time.
typo Driver.

> +        * If modern style was supported for CPU, all driver will switch
> +        * to use it, and, legacy style code will be removed from ALSA SoC.
> +        */
>         /*
>          * You MUST specify the link's codec, either by device name, or by
>          * DT/OF node, but not both.
> @@ -919,6 +944,17 @@ struct snd_soc_dai_link {
>         unsigned int num_codecs;
>
>         /*
> +        *      platform_name
> +        *      platform_of_node
> +        *
> +        * These are legacy style, it will be converted to modern style
> +        * (= snd_soc_dai_link_component) automatically in soc-core
> +        * if driver is using legacy style.
> +        * Dirver shouldn't use both legacy and modern style in the same time.
typo Driver

> +        * If modern style was supported for CPU, all driver will switch
> +        * to use it, and, legacy style code will be removed from ALSA SoC.
> +        */
> +       /*
>          * You MAY specify the link's platform/PCM/DMA driver, either by
>          * device name, or by DT/OF node, but not both. Some forms of link
>          * do not need a platform.
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 4c0aaff..f01a223 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1038,9 +1038,14 @@ static int snd_soc_init_platform(struct snd_soc_card *card,
>         struct snd_soc_dai_link_component *platform = dai_link->platform;
>
>         /*
> -        * FIXME
> +        * REMOVE ME
>          *
> -        * this function should be removed in the future
> +        * This is glue code for Legacy vs Modern dai_link.
> +        * This function will be removed if all derivers are switched to
> +        * modern style dai_link.
> +        * Dirver shouldn't use both legacy and modern style in the same time.
typo Driver
> +        * see
> +        *      soc.h :: struct snd_soc_dai_link
>          */
>         /* convert Legacy platform link */
>         if (!platform || dai_link->legacy_platform) {
> @@ -1068,6 +1073,17 @@ static int snd_soc_init_platform(struct snd_soc_card *card,
>  static int snd_soc_init_multicodec(struct snd_soc_card *card,
>                                    struct snd_soc_dai_link *dai_link)
>  {
> +       /*
> +        * REMOVE ME
> +        *
> +        * This is glue code for Legacy vs Modern dai_link.
> +        * This function will be removed if all derivers are switched to
> +        * modern style dai_link.
> +        * Dirver shouldn't use both legacy and modern style in the same time.
typo driver.

> +        * see
> +        *      soc.h :: struct snd_soc_dai_link
> +        */
> +
>         /* Legacy codec/codec_dai link is a single entry in multicodec */
>         if (dai_link->codec_name || dai_link->codec_of_node ||
>             dai_link->codec_dai_name) {
> --
> 2.7.4
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


More information about the Alsa-devel mailing list