diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2019-03-18 00:50:31 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-03-18 10:45:13 -0400 |
commit | 4346a745df4107d7ac61846f60087992e9d6e1b8 (patch) | |
tree | 4e1dc417489725abf0626c27cec25f740b920f07 /sound/soc/generic | |
parent | d2bf008ad11abc52d6e084bc109be2ee34a74a14 (diff) |
ASoC: audio-graph: add graph_parse_mclk_fs()
It is parsing mclk_fs at many places, but it should be
same operation. This patch adds graph_parse_mclk_fs()
and parse it.
This patch also renames similar function graph_get_conversion()
to graph_parse_convert().
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/generic')
-rw-r--r-- | sound/soc/generic/audio-graph-card.c | 50 |
1 files changed, 23 insertions, 27 deletions
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 733ba1e89dd6..7dd772a895e2 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c | |||
@@ -196,6 +196,24 @@ static void graph_parse_convert(struct device *dev, | |||
196 | of_node_put(node); | 196 | of_node_put(node); |
197 | } | 197 | } |
198 | 198 | ||
199 | static void graph_parse_mclk_fs(struct device_node *top, | ||
200 | struct device_node *ep, | ||
201 | struct graph_dai_props *props) | ||
202 | { | ||
203 | struct device_node *port = of_get_parent(ep); | ||
204 | struct device_node *ports = of_get_parent(port); | ||
205 | struct device_node *node = of_graph_get_port_parent(ep); | ||
206 | |||
207 | of_property_read_u32(top, "mclk-fs", &props->mclk_fs); | ||
208 | of_property_read_u32(ports, "mclk-fs", &props->mclk_fs); | ||
209 | of_property_read_u32(port, "mclk-fs", &props->mclk_fs); | ||
210 | of_property_read_u32(ep, "mclk-fs", &props->mclk_fs); | ||
211 | |||
212 | of_node_put(port); | ||
213 | of_node_put(ports); | ||
214 | of_node_put(node); | ||
215 | } | ||
216 | |||
199 | static int graph_dai_link_of_dpcm(struct graph_priv *priv, | 217 | static int graph_dai_link_of_dpcm(struct graph_priv *priv, |
200 | struct device_node *cpu_ep, | 218 | struct device_node *cpu_ep, |
201 | struct device_node *codec_ep, | 219 | struct device_node *codec_ep, |
@@ -226,13 +244,6 @@ static int graph_dai_link_of_dpcm(struct graph_priv *priv, | |||
226 | 244 | ||
227 | dev_dbg(dev, "link_of DPCM (%pOF)\n", ep); | 245 | dev_dbg(dev, "link_of DPCM (%pOF)\n", ep); |
228 | 246 | ||
229 | of_property_read_u32(top, "mclk-fs", &dai_props->mclk_fs); | ||
230 | of_property_read_u32(ports, "mclk-fs", &dai_props->mclk_fs); | ||
231 | of_property_read_u32(port, "mclk-fs", &dai_props->mclk_fs); | ||
232 | of_property_read_u32(ep, "mclk-fs", &dai_props->mclk_fs); | ||
233 | |||
234 | graph_parse_convert(dev, ep, &dai_props->adata); | ||
235 | |||
236 | of_node_put(ports); | 247 | of_node_put(ports); |
237 | of_node_put(port); | 248 | of_node_put(port); |
238 | of_node_put(node); | 249 | of_node_put(node); |
@@ -311,6 +322,9 @@ static int graph_dai_link_of_dpcm(struct graph_priv *priv, | |||
311 | "prefix"); | 322 | "prefix"); |
312 | } | 323 | } |
313 | 324 | ||
325 | graph_parse_convert(dev, ep, &dai_props->adata); | ||
326 | graph_parse_mclk_fs(top, ep, dai_props); | ||
327 | |||
314 | asoc_simple_card_canonicalize_platform(dai_link); | 328 | asoc_simple_card_canonicalize_platform(dai_link); |
315 | 329 | ||
316 | ret = asoc_simple_card_of_parse_tdm(ep, dai); | 330 | ret = asoc_simple_card_of_parse_tdm(ep, dai); |
@@ -339,10 +353,6 @@ static int graph_dai_link_of(struct graph_priv *priv, | |||
339 | struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, li->link); | 353 | struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, li->link); |
340 | struct graph_dai_props *dai_props = graph_priv_to_props(priv, li->link); | 354 | struct graph_dai_props *dai_props = graph_priv_to_props(priv, li->link); |
341 | struct device_node *top = dev->of_node; | 355 | struct device_node *top = dev->of_node; |
342 | struct device_node *cpu_port; | ||
343 | struct device_node *cpu_ports; | ||
344 | struct device_node *codec_port; | ||
345 | struct device_node *codec_ports; | ||
346 | struct asoc_simple_dai *cpu_dai; | 356 | struct asoc_simple_dai *cpu_dai; |
347 | struct asoc_simple_dai *codec_dai; | 357 | struct asoc_simple_dai *codec_dai; |
348 | int ret; | 358 | int ret; |
@@ -351,11 +361,6 @@ static int graph_dai_link_of(struct graph_priv *priv, | |||
351 | if (!li->cpu) | 361 | if (!li->cpu) |
352 | return 0; | 362 | return 0; |
353 | 363 | ||
354 | cpu_port = of_get_parent(cpu_ep); | ||
355 | cpu_ports = of_get_parent(cpu_port); | ||
356 | codec_port = of_get_parent(codec_ep); | ||
357 | codec_ports = of_get_parent(codec_port); | ||
358 | |||
359 | dev_dbg(dev, "link_of (%pOF)\n", cpu_ep); | 364 | dev_dbg(dev, "link_of (%pOF)\n", cpu_ep); |
360 | 365 | ||
361 | li->link++; | 366 | li->link++; |
@@ -366,17 +371,8 @@ static int graph_dai_link_of(struct graph_priv *priv, | |||
366 | dai_props->codec_dai = &priv->dais[li->dais++]; | 371 | dai_props->codec_dai = &priv->dais[li->dais++]; |
367 | 372 | ||
368 | /* Factor to mclk, used in hw_params() */ | 373 | /* Factor to mclk, used in hw_params() */ |
369 | of_property_read_u32(top, "mclk-fs", &dai_props->mclk_fs); | 374 | graph_parse_mclk_fs(top, cpu_ep, dai_props); |
370 | of_property_read_u32(cpu_ports, "mclk-fs", &dai_props->mclk_fs); | 375 | graph_parse_mclk_fs(top, codec_ep, dai_props); |
371 | of_property_read_u32(codec_ports, "mclk-fs", &dai_props->mclk_fs); | ||
372 | of_property_read_u32(cpu_port, "mclk-fs", &dai_props->mclk_fs); | ||
373 | of_property_read_u32(codec_port, "mclk-fs", &dai_props->mclk_fs); | ||
374 | of_property_read_u32(cpu_ep, "mclk-fs", &dai_props->mclk_fs); | ||
375 | of_property_read_u32(codec_ep, "mclk-fs", &dai_props->mclk_fs); | ||
376 | of_node_put(cpu_port); | ||
377 | of_node_put(cpu_ports); | ||
378 | of_node_put(codec_port); | ||
379 | of_node_put(codec_ports); | ||
380 | 376 | ||
381 | ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep, | 377 | ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep, |
382 | NULL, &dai_link->dai_fmt); | 378 | NULL, &dai_link->dai_fmt); |