]> Git Repo - linux.git/commitdiff
ASoC: rt298: don't turn off HV and VREF if headset is detected
authorBard Liao <[email protected]>
Mon, 19 Mar 2018 10:07:29 +0000 (18:07 +0800)
committerMark Brown <[email protected]>
Tue, 20 Mar 2018 01:02:21 +0000 (09:02 +0800)
"HV" and "VREF" will be powered up when jack type detection process is
started and will be powered off when jack type detection process is finished.
It will generate an unexpected interrupt signal when they are powered
up during the capture process. Codec driver will do the jack type detection
process and we can't capture properly before the jack detection process is
finished. This patch will not power off the "HV" and "VREF" widgets if
headset is detected and it will solve the unexpected interrupt issue. As a
result, it will also solve the silence data captured at the beginning in
headset mic recording issue.

Signed-off-by: Bard Liao <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
sound/soc/codecs/rt298.c

index ce963768449f188a804ad86136650b5afd540024..ff52d0365cfa53ff3fd1cbd39df3019788d09936 100644 (file)
@@ -290,9 +290,10 @@ static int rt298_jack_detect(struct rt298_priv *rt298, bool *hp, bool *mic)
                regmap_read(rt298->regmap, RT298_GET_MIC1_SENSE, &buf);
                *mic = buf & 0x80000000;
        }
-
-       snd_soc_dapm_disable_pin(dapm, "HV");
-       snd_soc_dapm_disable_pin(dapm, "VREF");
+       if (!*mic) {
+               snd_soc_dapm_disable_pin(dapm, "HV");
+               snd_soc_dapm_disable_pin(dapm, "VREF");
+       }
        if (!*hp)
                snd_soc_dapm_disable_pin(dapm, "LDO1");
        snd_soc_dapm_sync(dapm);
This page took 0.062661 seconds and 4 git commands to generate.