ASoC: Add data based control initialisation for CODECs and cards
Allow CODEC and card drivers to point to an array of controls from their driver structure rather than explicitly calling snd_soc_add_controls(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
@@ -1493,6 +1493,9 @@ static int soc_probe_codec(struct snd_soc_card *card,
|
||||
}
|
||||
}
|
||||
|
||||
if (driver->controls)
|
||||
snd_soc_add_controls(codec, driver->controls,
|
||||
driver->num_controls);
|
||||
if (driver->dapm_widgets)
|
||||
snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
|
||||
driver->num_dapm_widgets);
|
||||
@@ -1890,6 +1893,14 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card)
|
||||
}
|
||||
}
|
||||
|
||||
/* We should have a non-codec control add function but we don't */
|
||||
if (card->controls)
|
||||
snd_soc_add_controls(list_first_entry(&card->codec_dev_list,
|
||||
struct snd_soc_codec,
|
||||
card_list),
|
||||
card->controls,
|
||||
card->num_controls);
|
||||
|
||||
if (card->dapm_widgets)
|
||||
snd_soc_dapm_new_controls(&card->dapm, card->dapm_widgets,
|
||||
card->num_dapm_widgets);
|
||||
|
Reference in New Issue
Block a user