[alsa-devel] [PATCH] ASoC: Intel: Add pre & post suspend calls in bxt machine
![](https://secure.gravatar.com/avatar/8fc76980774cffd56f0df0531ea82ba7.jpg?s=120&d=mm&r=g)
We need to disable jack detection before entering suspend and enable it after resume.
This was essential as headphone jack widget will always remain ON if a jack is inserted and this results in no audio after system resumes from a suspend.
Signed-off-by: Senthilnathan Veppur senthilnathanx.veppur@intel.com Signed-off-by: Vinod Koul vinod.koul@intel.com --- sound/soc/intel/boards/bxt_rt298.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
diff --git a/sound/soc/intel/boards/bxt_rt298.c b/sound/soc/intel/boards/bxt_rt298.c index 1309405b3808..b272b72e6a77 100644 --- a/sound/soc/intel/boards/bxt_rt298.c +++ b/sound/soc/intel/boards/bxt_rt298.c @@ -432,6 +432,33 @@ static int bxt_fe_startup(struct snd_pcm_substream *substream) }, };
+static int bxt_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-INT343A:00")) { + rt298_mic_detect(codec, NULL); + break; + } + } + return 0; +} + +static int bxt_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-INT343A:00")) { + rt298_mic_detect(codec, &broxton_headset); + break; + } + } + return 0; +} + + /* broxton audio machine driver for SPT + RT298S */ static struct snd_soc_card broxton_rt298 = { .name = "broxton-rt298", @@ -445,6 +472,9 @@ static int bxt_fe_startup(struct snd_pcm_substream *substream) .dapm_routes = broxton_rt298_map, .num_dapm_routes = ARRAY_SIZE(broxton_rt298_map), .fully_routed = true, + .suspend_pre = bxt_suspend_pre, + .resume_post = bxt_resume_post, + };
static int broxton_audio_probe(struct platform_device *pdev)
![](https://secure.gravatar.com/avatar/d930951cb00393ecf9c3db3a56d78fa9.jpg?s=120&d=mm&r=g)
On Fri, Dec 02, 2016 at 03:33:44PM +0530, Vinod Koul wrote:
We need to disable jack detection before entering suspend and enable it after resume.
This was essential as headphone jack widget will always remain ON if a jack is inserted and this results in no audio after system resumes from a suspend.
This needs clarification - a lot of systems do keep jack detection active during suspend and use it as a wake source in order to have things like play/pause functionality via headset available. This sounds like there's some limitation with one of the drivers in the system that is being worked around here instead.
participants (2)
-
Mark Brown
-
Vinod Koul