devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Kuninori Morimoto
	<kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
Cc: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Linux-ALSA <alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org>,
	Simon <horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>,
	Linux-DT <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v4 7/9] ASoC: simple-card-utils: add asoc_simple_card_parse_graph_dai()
Date: Mon, 20 Mar 2017 15:26:06 -0500	[thread overview]
Message-ID: <CAL_JsqLD0VyU+4xDrfSHKCKAdppxLG2uFzPyjSyn4cU7j4B8_A@mail.gmail.com> (raw)
In-Reply-To: <87vardhgia.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>

On Mon, Mar 13, 2017 at 12:54 AM, Kuninori Morimoto
<kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org> wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
>
> simple-card already has asoc_simple_card_parse_dai(),
> but graph base parsing needs graph specific version of it.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
> ---
> v3 -> v4
>
>  - no change
>
>  include/sound/simple_card_utils.h     | 10 ++++++++++
>  sound/soc/generic/simple-card-utils.c | 36 +++++++++++++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
>
> diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
> index af58d23..efab584 100644
> --- a/include/sound/simple_card_utils.h
> +++ b/include/sound/simple_card_utils.h
> @@ -60,6 +60,16 @@ int asoc_simple_card_parse_dai(struct device_node *node,
>                                   const char *cells_name,
>                                   int *is_single_links);
>
> +#define asoc_simple_card_parse_graph_cpu(ep, dai_link)                 \
> +       asoc_simple_card_parse_graph_dai(ep, &dai_link->cpu_of_node,    \
> +                                        &dai_link->cpu_dai_name)
> +#define asoc_simple_card_parse_graph_codec(ep, dai_link)               \
> +       asoc_simple_card_parse_graph_dai(ep, &dai_link->codec_of_node,  \
> +                                        &dai_link->codec_dai_name)
> +int asoc_simple_card_parse_graph_dai(struct device_node *ep,
> +                                    struct device_node **endpoint_np,
> +                                    const char **dai_name);
> +
>  int asoc_simple_card_init_dai(struct snd_soc_dai *dai,
>                               struct asoc_simple_dai *simple_dai);
>
> diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
> index 4dfd9a2..67c3fa4 100644
> --- a/sound/soc/generic/simple-card-utils.c
> +++ b/sound/soc/generic/simple-card-utils.c
> @@ -10,6 +10,7 @@
>  #include <linux/clk.h>
>  #include <linux/module.h>
>  #include <linux/of.h>
> +#include <linux/of_graph.h>
>  #include <sound/simple_card_utils.h>
>
>  int asoc_simple_card_parse_daifmt(struct device *dev,
> @@ -174,6 +175,41 @@ int asoc_simple_card_parse_dai(struct device_node *node,
>  }
>  EXPORT_SYMBOL_GPL(asoc_simple_card_parse_dai);
>
> +int asoc_simple_card_parse_graph_dai(struct device_node *ep,
> +                                    struct device_node **dai_of_node,
> +                                    const char **dai_name)
> +{
> +       struct device_node *node;
> +       struct of_phandle_args args;
> +       int ret;
> +
> +       if (!ep)
> +               return 0;
> +       if (!dai_name)
> +               return 0;
> +
> +       /*
> +        * of_graph_get_port_parent() will call
> +        * of_node_put(). So, call of_node_get() here
> +        */
> +       of_node_get(ep);
> +       node = of_graph_get_port_parent(ep);
> +
> +       /* Get dai->name */
> +       args.np         = node;
> +       args.args[0]    = snd_soc_get_dai_id(ep);
> +       args.args_count = (of_graph_get_endpoint_count(node) > 1);

This is a bit pointless. It's not the kernel's job to validate the DT.
If you don't have a graph, then of_graph_get_port_parent would have
already failed.

> +
> +       ret = snd_soc_get_dai_name(&args, dai_name);
> +       if (ret < 0)
> +               return ret;
> +
> +       *dai_of_node = node;
> +
> +       return 0;
> +}
> +EXPORT_SYMBOL_GPL(asoc_simple_card_parse_graph_dai);
> +
>  int asoc_simple_card_init_dai(struct snd_soc_dai *dai,
>                               struct asoc_simple_dai *simple_dai)
>  {
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-03-20 20:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-13  5:46 [PATCH v4 0/9] ASoC: add OF-graph base simple-card Kuninori Morimoto
2017-03-13  5:52 ` [PATCH v4 1/9] of_graph: add of_graph_get_remote_endpoint() Kuninori Morimoto
2017-03-13  5:52 ` [PATCH v4 2/9] of_graph: add of_graph_get_port_parent() Kuninori Morimoto
2017-03-13  5:52 ` [PATCH v4 3/9] of_graph: add of_graph_get_endpoint_count() Kuninori Morimoto
     [not found]   ` <871su1iv4n.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-05-17  9:53     ` Applied "of_graph: add of_graph_get_endpoint_count()" to the asoc tree Mark Brown
2017-03-13  5:53 ` [PATCH v4 4/9] ASoC: simple-card-utils: enable "label" on asoc_simple_card_parse_card_name Kuninori Morimoto
2017-03-20 19:20   ` Rob Herring
2017-03-13  5:53 ` [PATCH v4 5/9] ASoC: soc-core: enable "dai-name" on snd_soc_of_parse_daifmt() Kuninori Morimoto
2017-03-20 19:30   ` Rob Herring
     [not found] ` <8760jdivfm.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-03-13  5:53   ` [PATCH v4 6/9] ASoC: add snd_soc_get_dai_id() Kuninori Morimoto
     [not found]     ` <87wpbthgir.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-03-20 20:20       ` Rob Herring
     [not found]         ` <CAL_JsqKx9qj=ACowGapaT5hdYcevY6urLn_ntFUxAJVrzhc2AA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-21  1:59           ` Kuninori Morimoto
     [not found]             ` <87h92nbdgy.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-04-07 19:16               ` Rob Herring
2017-04-10  0:17                 ` Kuninori Morimoto
2017-04-10  0:45                   ` Kuninori Morimoto
     [not found]                     ` <8737dh5c26.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-04-10 19:43                       ` [alsa-devel] " Rob Herring
     [not found]                         ` <CAL_JsqLp1cg_iJ1V9bk=GW6CF5BmsqkLc04D6EcQcaFaAAL+2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-10 23:59                           ` Kuninori Morimoto
2017-03-13  5:54 ` [PATCH v4 7/9] ASoC: simple-card-utils: add asoc_simple_card_parse_graph_dai() Kuninori Morimoto
     [not found]   ` <87vardhgia.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-03-20 20:26     ` Rob Herring [this message]
     [not found]       ` <CAL_JsqLD0VyU+4xDrfSHKCKAdppxLG2uFzPyjSyn4cU7j4B8_A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-21  2:03         ` Kuninori Morimoto
2017-03-13  5:54 ` [PATCH v4 8/9] ASoC: add audio-graph-card document Kuninori Morimoto
     [not found]   ` <87tw6xhghs.wl%kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
2017-03-20 19:31     ` Rob Herring
2017-05-17  9:52     ` Applied "ASoC: add audio-graph-card document" to the asoc tree Mark Brown
2017-03-13  5:54 ` [PATCH v4 9/9] ASoC: add audio-graph-card support Kuninori Morimoto
2017-03-20 20:32   ` Rob Herring
2017-03-21  2:08     ` Kuninori Morimoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAL_JsqLD0VyU+4xDrfSHKCKAdppxLG2uFzPyjSyn4cU7j4B8_A@mail.gmail.com \
    --to=robh+dt-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org \
    --cc=kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).