ASoC: Intel: Add suspend_pre and resume_post for Braswell snd_soc_card
On Braswell, we need to add some machine specific setting before suspend and after resume. For example, disable/enable jack detection in codec so use snd_soc_card suspend_pre and resume_post ops for this purpose. Signed-off-by: Jin Yao <yao.jin@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3ee5990d08
commit
066d7b87fa
@ -267,6 +267,35 @@ static struct snd_soc_dai_link cht_dailink[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int cht_suspend_pre(struct snd_soc_card *card)
|
||||||
|
{
|
||||||
|
struct snd_soc_codec *codec;
|
||||||
|
|
||||||
|
list_for_each_entry(codec, &card->codec_dev_list, card_list) {
|
||||||
|
if (!strcmp(codec->component.name, "i2c-10EC5670:00")) {
|
||||||
|
dev_dbg(codec->dev, "disabling jack detect before going to suspend.\n");
|
||||||
|
rt5670_jack_suspend(codec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int cht_resume_post(struct snd_soc_card *card)
|
||||||
|
{
|
||||||
|
struct snd_soc_codec *codec;
|
||||||
|
|
||||||
|
list_for_each_entry(codec, &card->codec_dev_list, card_list) {
|
||||||
|
if (!strcmp(codec->component.name, "i2c-10EC5670:00")) {
|
||||||
|
dev_dbg(codec->dev, "enabling jack detect for resume.\n");
|
||||||
|
rt5670_jack_resume(codec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* SoC card */
|
/* SoC card */
|
||||||
static struct snd_soc_card snd_soc_card_cht = {
|
static struct snd_soc_card snd_soc_card_cht = {
|
||||||
.name = "cherrytrailcraudio",
|
.name = "cherrytrailcraudio",
|
||||||
@ -278,6 +307,8 @@ static struct snd_soc_card snd_soc_card_cht = {
|
|||||||
.num_dapm_routes = ARRAY_SIZE(cht_audio_map),
|
.num_dapm_routes = ARRAY_SIZE(cht_audio_map),
|
||||||
.controls = cht_mc_controls,
|
.controls = cht_mc_controls,
|
||||||
.num_controls = ARRAY_SIZE(cht_mc_controls),
|
.num_controls = ARRAY_SIZE(cht_mc_controls),
|
||||||
|
.suspend_pre = cht_suspend_pre,
|
||||||
|
.resume_post = cht_resume_post,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int snd_cht_mc_probe(struct platform_device *pdev)
|
static int snd_cht_mc_probe(struct platform_device *pdev)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user