| From f56de445519933c0aeeb8af04179f219acd65900 Mon Sep 17 00:00:00 2001 |
| From: Jaska Uimonen <jaska.uimonen@intel.com> |
| Date: Fri, 27 Sep 2019 15:14:08 -0500 |
| Subject: [PATCH] ASoC: intel: sof_rt5682: add remove function to disable jack |
| |
| commit 6ba5041c23c1062d4e8287b2b76a1181538c6df1 upstream. |
| |
| When removing sof module the rt5682 jack handler will oops |
| if jack detection is not disabled. So add remove function, |
| which disables the jack detection. |
| |
| Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com> |
| Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| Link: https://lore.kernel.org/r/20190927201408.925-5-pierre-louis.bossart@linux.intel.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c |
| index 3343dbcd506f..ba65e59dddab 100644 |
| --- a/sound/soc/intel/boards/sof_rt5682.c |
| +++ b/sound/soc/intel/boards/sof_rt5682.c |
| @@ -547,8 +547,24 @@ static int sof_audio_probe(struct platform_device *pdev) |
| &sof_audio_card_rt5682); |
| } |
| |
| +static int sof_rt5682_remove(struct platform_device *pdev) |
| +{ |
| + struct snd_soc_card *card = platform_get_drvdata(pdev); |
| + struct snd_soc_component *component = NULL; |
| + |
| + for_each_card_components(card, component) { |
| + if (!strcmp(component->name, rt5682_component[0].name)) { |
| + snd_soc_component_set_jack(component, NULL, NULL); |
| + break; |
| + } |
| + } |
| + |
| + return 0; |
| +} |
| + |
| static struct platform_driver sof_audio = { |
| .probe = sof_audio_probe, |
| + .remove = sof_rt5682_remove, |
| .driver = { |
| .name = "sof_rt5682", |
| .pm = &snd_soc_pm_ops, |
| -- |
| 2.7.4 |
| |