static int asoc_simple_card_dai_init(struct snd_soc_pcm_runtime *rtd) { struct simple_card_data *priv = snd_soc_card_get_drvdata(rtd->card); struct snd_soc_dai *codec = rtd->codec_dai; struct snd_soc_dai *cpu = rtd->cpu_dai; struct simple_dai_props *dai_props = simple_priv_to_props(priv, rtd->num); int ret; ret = asoc_simple_card_init_dai(codec, &dai_props->codec_dai); if (ret < 0) return ret; ret = asoc_simple_card_init_dai(cpu, &dai_props->cpu_dai); if (ret < 0) return ret; ret = asoc_simple_card_init_hp(rtd->card, &priv->hp_jack, PREFIX); if (ret < 0) return ret; ret = asoc_simple_card_init_mic(rtd->card, &priv->hp_jack, PREFIX); if (ret < 0) return ret; return 0; }
static int simple_soc_probe(struct snd_soc_card *card) { struct simple_priv *priv = snd_soc_card_get_drvdata(card); int ret; ret = asoc_simple_card_init_hp(card, &priv->hp_jack, PREFIX); if (ret < 0) return ret; ret = asoc_simple_card_init_mic(card, &priv->mic_jack, PREFIX); if (ret < 0) return ret; return 0; }