Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: audio-graph-card: add asoc_graph_card_get_conversion()

audio-graph-card is now supporting normal sound and DPCM sound.
For DPCM sound, original sound card (= audio-graph-scu) had been
supported 1 CPU : 1 Codec connection which uses hw_params_fixup()
for convert-rate/channel.
But, merged audio-graph-card is completely forgeting about it.

To re-support 1 CPU : 1 Codec DPCM for hw_params_fixup(),
it need to judge whether it is DPCM by checking convert-rate/channel.
For this purpose, this patch adds asoc_graph_card_get_conversion()
as preparation

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Kuninori Morimoto and committed by
Mark Brown
40dfae16 a0c426fe

+17 -5
+17 -5
sound/soc/generic/audio-graph-card.c
··· 169 169 return 0; 170 170 } 171 171 172 + static void asoc_graph_card_get_conversion(struct device *dev, 173 + struct device_node *ep, 174 + struct asoc_simple_card_data *adata) 175 + { 176 + struct device_node *top = dev->of_node; 177 + struct device_node *port = of_get_parent(ep); 178 + struct device_node *ports = of_get_parent(port); 179 + struct device_node *node = of_graph_get_port_parent(ep); 180 + 181 + asoc_simple_card_parse_convert(dev, top, NULL, adata); 182 + asoc_simple_card_parse_convert(dev, node, PREFIX, adata); 183 + asoc_simple_card_parse_convert(dev, ports, NULL, adata); 184 + asoc_simple_card_parse_convert(dev, port, NULL, adata); 185 + asoc_simple_card_parse_convert(dev, ep, NULL, adata); 186 + } 187 + 172 188 static int asoc_graph_card_dai_link_of_dpcm(struct device_node *top, 173 189 struct device_node *cpu_ep, 174 190 struct device_node *codec_ep, ··· 210 194 of_property_read_u32(port, "mclk-fs", &dai_props->mclk_fs); 211 195 of_property_read_u32(ep, "mclk-fs", &dai_props->mclk_fs); 212 196 213 - asoc_simple_card_parse_convert(dev, top, NULL, &dai_props->adata); 214 - asoc_simple_card_parse_convert(dev, node, PREFIX, &dai_props->adata); 215 - asoc_simple_card_parse_convert(dev, ports, NULL, &dai_props->adata); 216 - asoc_simple_card_parse_convert(dev, port, NULL, &dai_props->adata); 217 - asoc_simple_card_parse_convert(dev, ep, NULL, &dai_props->adata); 197 + asoc_graph_card_get_conversion(dev, ep, &dai_props->adata); 218 198 219 199 of_node_put(ports); 220 200 of_node_put(port);