[alsa-devel] [PATCH] ASoC: core: Fix snd_soc_add_card_controls to pass correct data

Stephen Warren swarren at nvidia.com
Tue Feb 14 23:56:33 CET 2012

Commit 022658b "ASoC: core: Add support for DAI and machine kcontrols."
created new functions to create controls for cards, codecs, platforms,
and DAIs. The new snd_soc_add_card_controls() passed the wrong "data" to
utility function snd_soc_add_controls(); it should be passing a codec,
but instead ended up passing the soc_card. Fix this.

Signed-off-by: Stephen Warren <swarren at nvidia.com>
 sound/soc/soc-core.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 8bd9995..e44b6f6 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2095,9 +2095,13 @@ int snd_soc_add_card_controls(struct snd_soc_card *soc_card,
 	const struct snd_kcontrol_new *controls, int num_controls)
 	struct snd_card *card = soc_card->snd_card;
+	struct snd_soc_codec *codec =
+			list_first_entry(&soc_card->codec_dev_list,
+					 struct snd_soc_codec,
+					 card_list);
 	return snd_soc_add_controls(card, soc_card->dev, controls, num_controls,
-			NULL, soc_card);
+			NULL, codec);

More information about the Alsa-devel mailing list