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
next prev 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).