linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] ASoC: add mclk-fs support to audio graph card
@ 2017-11-09 14:07 Olivier Moysan
  2017-11-09 14:07 ` [PATCH 1/2] ASoC: add mclk-fs to audio graph card binding Olivier Moysan
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Olivier Moysan @ 2017-11-09 14:07 UTC (permalink / raw)
  To: linux-arm-kernel

The aim of these patches is to port mclk-fs property to audio graph card, 
as originally implemented in simple card.

Olivier Moysan (2):
  ASoC: add mclk-fs to audio graph card binding
  ASoC: add mclk-fs support to audio graph card

 .../devicetree/bindings/sound/audio-graph-card.txt |  1 +
 sound/soc/generic/audio-graph-card.c               | 47 ++++++++++++++++++----
 2 files changed, 40 insertions(+), 8 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] ASoC: add mclk-fs to audio graph card binding
  2017-11-09 14:07 [PATCH 0/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
@ 2017-11-09 14:07 ` Olivier Moysan
  2017-11-09 14:07 ` [PATCH 2/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
  2017-11-09 23:54 ` [alsa-devel] [PATCH 0/2] " Kuninori Morimoto
  2 siblings, 0 replies; 4+ messages in thread
From: Olivier Moysan @ 2017-11-09 14:07 UTC (permalink / raw)
  To: linux-arm-kernel

Add mclk-fs support to audio graph card
as initially supported in simple card.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
---
 Documentation/devicetree/bindings/sound/audio-graph-card.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-card.txt
index 6e6720a..d04ea3b 100644
--- a/Documentation/devicetree/bindings/sound/audio-graph-card.txt
+++ b/Documentation/devicetree/bindings/sound/audio-graph-card.txt
@@ -17,6 +17,7 @@ Below are same as Simple-Card.
 - bitclock-master
 - bitclock-inversion
 - frame-inversion
+- mclk-fs
 - dai-tdm-slot-num
 - dai-tdm-slot-width
 - clocks / system-clock-frequency
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ASoC: add mclk-fs support to audio graph card
  2017-11-09 14:07 [PATCH 0/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
  2017-11-09 14:07 ` [PATCH 1/2] ASoC: add mclk-fs to audio graph card binding Olivier Moysan
@ 2017-11-09 14:07 ` Olivier Moysan
  2017-11-09 23:54 ` [alsa-devel] [PATCH 0/2] " Kuninori Morimoto
  2 siblings, 0 replies; 4+ messages in thread
From: Olivier Moysan @ 2017-11-09 14:07 UTC (permalink / raw)
  To: linux-arm-kernel

Add mclk-fs support to audio graph card
as it was previously implemented in simple card.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
---
 sound/soc/generic/audio-graph-card.c | 47 ++++++++++++++++++++++++++++++------
 1 file changed, 39 insertions(+), 8 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 488c52f..1b61642 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -29,7 +29,9 @@ struct graph_card_data {
 	struct graph_dai_props {
 		struct asoc_simple_dai cpu_dai;
 		struct asoc_simple_dai codec_dai;
+		unsigned int mclk_fs;
 	} *dai_props;
+	unsigned int mclk_fs;
 	struct snd_soc_dai_link *dai_link;
 	struct gpio_desc *pa_gpio;
 };
@@ -95,9 +97,43 @@ static void asoc_graph_card_shutdown(struct snd_pcm_substream *substream)
 	asoc_simple_card_clk_disable(&dai_props->codec_dai);
 }
 
+static int asoc_graph_card_hw_params(struct snd_pcm_substream *substream,
+				     struct snd_pcm_hw_params *params)
+{
+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
+	struct snd_soc_dai *codec_dai = rtd->codec_dai;
+	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+	struct graph_card_data *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct graph_dai_props *dai_props = graph_priv_to_props(priv, rtd->num);
+	unsigned int mclk, mclk_fs = 0;
+	int ret = 0;
+
+	if (priv->mclk_fs)
+		mclk_fs = priv->mclk_fs;
+	else if (dai_props->mclk_fs)
+		mclk_fs = dai_props->mclk_fs;
+
+	if (mclk_fs) {
+		mclk = params_rate(params) * mclk_fs;
+		ret = snd_soc_dai_set_sysclk(codec_dai, 0, mclk,
+					     SND_SOC_CLOCK_IN);
+		if (ret && ret != -ENOTSUPP)
+			goto err;
+
+		ret = snd_soc_dai_set_sysclk(cpu_dai, 0, mclk,
+					     SND_SOC_CLOCK_OUT);
+		if (ret && ret != -ENOTSUPP)
+			goto err;
+	}
+	return 0;
+err:
+	return ret;
+}
+
 static const struct snd_soc_ops asoc_graph_card_ops = {
 	.startup = asoc_graph_card_startup,
 	.shutdown = asoc_graph_card_shutdown,
+	.hw_params = asoc_graph_card_hw_params,
 };
 
 static int asoc_graph_card_dai_init(struct snd_soc_pcm_runtime *rtd)
@@ -146,10 +182,7 @@ static int asoc_graph_card_dai_link_of(struct device_node *cpu_port,
 	if (ret < 0)
 		goto dai_link_of_err;
 
-	/*
-	 * we need to consider "mclk-fs" around here
-	 * see simple-card
-	 */
+	of_property_read_u32(rcpu_ep, "mclk-fs", &dai_props->mclk_fs);
 
 	ret = asoc_simple_card_parse_graph_cpu(cpu_ep, dai_link);
 	if (ret < 0)
@@ -217,10 +250,8 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 	if (ret < 0)
 		return ret;
 
-	/*
-	 * we need to consider "mclk-fs" around here
-	 * see simple-card
-	 */
+	/* Factor to mclk, used in hw_params() */
+	of_property_read_u32(node, "mclk-fs", &priv->mclk_fs);
 
 	of_for_each_phandle(&it, rc, node, "dais", NULL, 0) {
 		ret = asoc_graph_card_dai_link_of(it.node, priv, idx++);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [alsa-devel] [PATCH 0/2] ASoC: add mclk-fs support to audio graph card
  2017-11-09 14:07 [PATCH 0/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
  2017-11-09 14:07 ` [PATCH 1/2] ASoC: add mclk-fs to audio graph card binding Olivier Moysan
  2017-11-09 14:07 ` [PATCH 2/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
@ 2017-11-09 23:54 ` Kuninori Morimoto
  2 siblings, 0 replies; 4+ messages in thread
From: Kuninori Morimoto @ 2017-11-09 23:54 UTC (permalink / raw)
  To: linux-arm-kernel


Hi

> The aim of these patches is to port mclk-fs property to audio graph card, 
> as originally implemented in simple card.
> 
> Olivier Moysan (2):
>   ASoC: add mclk-fs to audio graph card binding
>   ASoC: add mclk-fs support to audio graph card
> 
>  .../devicetree/bindings/sound/audio-graph-card.txt |  1 +
>  sound/soc/generic/audio-graph-card.c               | 47 ++++++++++++++++++----
>  2 files changed, 40 insertions(+), 8 deletions(-)

For all patches
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-11-09 23:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-09 14:07 [PATCH 0/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
2017-11-09 14:07 ` [PATCH 1/2] ASoC: add mclk-fs to audio graph card binding Olivier Moysan
2017-11-09 14:07 ` [PATCH 2/2] ASoC: add mclk-fs support to audio graph card Olivier Moysan
2017-11-09 23:54 ` [alsa-devel] [PATCH 0/2] " Kuninori Morimoto

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