0001
0002
0003
0004
0005
0006
0007
0008 #ifndef __SOC_CARD_H
0009 #define __SOC_CARD_H
0010
0011 enum snd_soc_card_subclass {
0012 SND_SOC_CARD_CLASS_INIT = 0,
0013 SND_SOC_CARD_CLASS_RUNTIME = 1,
0014 };
0015
0016 struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card,
0017 const char *name);
0018 int snd_soc_card_jack_new(struct snd_soc_card *card, const char *id, int type,
0019 struct snd_soc_jack *jack);
0020 int snd_soc_card_jack_new_pins(struct snd_soc_card *card, const char *id,
0021 int type, struct snd_soc_jack *jack,
0022 struct snd_soc_jack_pin *pins,
0023 unsigned int num_pins);
0024
0025 int snd_soc_card_suspend_pre(struct snd_soc_card *card);
0026 int snd_soc_card_suspend_post(struct snd_soc_card *card);
0027 int snd_soc_card_resume_pre(struct snd_soc_card *card);
0028 int snd_soc_card_resume_post(struct snd_soc_card *card);
0029
0030 int snd_soc_card_probe(struct snd_soc_card *card);
0031 int snd_soc_card_late_probe(struct snd_soc_card *card);
0032 void snd_soc_card_fixup_controls(struct snd_soc_card *card);
0033 int snd_soc_card_remove(struct snd_soc_card *card);
0034
0035 int snd_soc_card_set_bias_level(struct snd_soc_card *card,
0036 struct snd_soc_dapm_context *dapm,
0037 enum snd_soc_bias_level level);
0038 int snd_soc_card_set_bias_level_post(struct snd_soc_card *card,
0039 struct snd_soc_dapm_context *dapm,
0040 enum snd_soc_bias_level level);
0041
0042 int snd_soc_card_add_dai_link(struct snd_soc_card *card,
0043 struct snd_soc_dai_link *dai_link);
0044 void snd_soc_card_remove_dai_link(struct snd_soc_card *card,
0045 struct snd_soc_dai_link *dai_link);
0046
0047
0048 static inline void snd_soc_card_set_drvdata(struct snd_soc_card *card,
0049 void *data)
0050 {
0051 card->drvdata = data;
0052 }
0053
0054 static inline void *snd_soc_card_get_drvdata(struct snd_soc_card *card)
0055 {
0056 return card->drvdata;
0057 }
0058
0059 static inline
0060 struct snd_soc_dai *snd_soc_card_get_codec_dai(struct snd_soc_card *card,
0061 const char *dai_name)
0062 {
0063 struct snd_soc_pcm_runtime *rtd;
0064
0065 for_each_card_rtds(card, rtd) {
0066 if (!strcmp(asoc_rtd_to_codec(rtd, 0)->name, dai_name))
0067 return asoc_rtd_to_codec(rtd, 0);
0068 }
0069
0070 return NULL;
0071 }
0072
0073 #endif