summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/rt298.c
diff options
context:
space:
mode:
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>2022-07-07 14:56:57 +0200
committerMark Brown <broonie@kernel.org>2022-07-11 14:59:06 +0100
commit9b6803ec1fe0f10942b9297d2d60ec46f2999323 (patch)
treea38835ac8078614fb5279ae447aa9bd30ac5f069 /sound/soc/codecs/rt298.c
parenteaa27e7fe43f16fe587c3e93fd5c25ce86be3c43 (diff)
downloadlinux-9b6803ec1fe0f10942b9297d2d60ec46f2999323.tar.bz2
ASoC: codecs: rt298: Fix NULL jack in interrupt
Set rt298->jack to passed value in mic_detect, otherwise when jack is set to NULL on next interrupt call, we may use freed pointer. Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20220707125701.3518263-2-amadeuszx.slawinski@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt298.c')
-rw-r--r--sound/soc/codecs/rt298.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/codecs/rt298.c b/sound/soc/codecs/rt298.c
index 266a2cc55b8d..6a615943f983 100644
--- a/sound/soc/codecs/rt298.c
+++ b/sound/soc/codecs/rt298.c
@@ -335,6 +335,8 @@ static int rt298_mic_detect(struct snd_soc_component *component,
bool mic = false;
int status = 0;
+ rt298->jack = jack;
+
/* If jack in NULL, disable HS jack */
if (!jack) {
regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x0);
@@ -344,7 +346,6 @@ static int rt298_mic_detect(struct snd_soc_component *component,
return 0;
}
- rt298->jack = jack;
regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2);
rt298_jack_detect(rt298, &hp, &mic);