ASoC: intel: cml_rt1011_rt5682: disable jack in dailink .exit()
authorFred Oh <fred.oh@linux.intel.com>
Mon, 22 Jun 2020 15:42:41 +0000 (10:42 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 23 Jun 2020 11:25:41 +0000 (12:25 +0100)
When removing the machine driver, the rt5682 jack handler will oops if jack
detection is not disabled. The jack can be disabled in the dai link's exit().

This is symmetrical change as jack is enabled in init().

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20200622154241.29053-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/cml_rt1011_rt5682.c

index 68eff29daf8f8f2f972ccffba64da5740de822dc..189c908c4aa89fbd7b6136ecd2b65ce057a830d8 100644 (file)
@@ -161,6 +161,13 @@ static int cml_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
        return ret;
 };
 
+static void cml_rt5682_codec_exit(struct snd_soc_pcm_runtime *rtd)
+{
+       struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
+
+       snd_soc_component_set_jack(component, NULL, NULL);
+}
+
 static int cml_rt1011_spk_init(struct snd_soc_pcm_runtime *rtd)
 {
        int ret = 0;
@@ -415,6 +422,7 @@ static struct snd_soc_dai_link cml_rt1011_rt5682_dailink[] = {
                .name = "SSP0-Codec",
                .id = 0,
                .init = cml_rt5682_codec_init,
+               .exit = cml_rt5682_codec_exit,
                .ignore_pmdown_time = 1,
                .ops = &cml_rt5682_ops,
                .dpcm_playback = 1,