Skip to content

Commit

Permalink
ASoC: audio-graph-card: tidyup convert_rate/channel method
Browse files Browse the repository at this point in the history
Current audio-graph-card is handling "convert_rate/channel"
by many ways. But, it is not useful and readable.
We want to do is that allow having it everywere.
This patch support it.
It will be overwrote if lower node has it.

sound {
	convert-channels = <xxx>; // initial
};

codec {
	audio-graph-card,convert-channels = <xxx>; // overwrite
	ports {
		convert_channels = <xxx>; // overwrite
		port {
			convert_channels = <xxx>; // overwrite
			endpoint {
				convert_channels = <xxx>; // overwrite
			};
		};
	};
};

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Dec 14, 2018
1 parent 56eb818 commit 7ced65f
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions sound/soc/generic/audio-graph-card.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ struct graph_card_data {
struct asoc_simple_jack mic_jack;
struct snd_soc_dai_link *dai_link;
struct asoc_simple_dai *dais;
struct asoc_simple_card_data adata;
struct snd_soc_codec_conf *codec_conf;
struct gpio_desc *pa_gpio;
};
Expand Down Expand Up @@ -167,9 +166,6 @@ static int asoc_graph_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,

asoc_simple_card_convert_fixup(&dai_props->adata, params);

/* overwrite by top level adata if exist */
asoc_simple_card_convert_fixup(&priv->adata, params);

return 0;
}

Expand Down Expand Up @@ -197,6 +193,13 @@ static int asoc_graph_card_dai_link_of_dpcm(struct device_node *top,
of_property_read_u32(ports, "mclk-fs", &dai_props->mclk_fs);
of_property_read_u32(port, "mclk-fs", &dai_props->mclk_fs);
of_property_read_u32(ep, "mclk-fs", &dai_props->mclk_fs);

asoc_simple_card_parse_convert(dev, top, NULL, &dai_props->adata);
asoc_simple_card_parse_convert(dev, node, PREFIX, &dai_props->adata);
asoc_simple_card_parse_convert(dev, ports, NULL, &dai_props->adata);
asoc_simple_card_parse_convert(dev, port, NULL, &dai_props->adata);
asoc_simple_card_parse_convert(dev, ep, NULL, &dai_props->adata);

of_node_put(ports);
of_node_put(port);

Expand Down Expand Up @@ -276,8 +279,6 @@ static int asoc_graph_card_dai_link_of_dpcm(struct device_node *top,
PREFIX "prefix");
}

asoc_simple_card_parse_convert(dev, node, PREFIX, &dai_props->adata);

ret = asoc_simple_card_of_parse_tdm(ep, dai);
if (ret)
return ret;
Expand Down Expand Up @@ -409,8 +410,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
if (ret < 0)
return ret;

asoc_simple_card_parse_convert(dev, node, NULL, &priv->adata);

link_idx = 0;
dai_idx = 0;
conf_idx = 0;
Expand Down

0 comments on commit 7ced65f

Please sign in to comment.