diff options
| -rw-r--r-- | sound/soc/codecs/wm8994.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c index 1dcccdbbc8b6..fdef56c1320b 100644 --- a/sound/soc/codecs/wm8994.c +++ b/sound/soc/codecs/wm8994.c | |||
| @@ -3755,6 +3755,18 @@ static irqreturn_t wm8958_mic_irq(int irq, void *data) | |||
| 3755 | trace_snd_soc_jack_irq(dev_name(codec->dev)); | 3755 | trace_snd_soc_jack_irq(dev_name(codec->dev)); |
| 3756 | #endif | 3756 | #endif |
| 3757 | 3757 | ||
| 3758 | /* Avoid a transient report when the accessory is being removed */ | ||
| 3759 | if (wm8994->jackdet) { | ||
| 3760 | reg = snd_soc_read(codec, WM1811_JACKDET_CTRL); | ||
| 3761 | if (reg < 0) { | ||
| 3762 | dev_err(codec->dev, "Failed to read jack status: %d\n", | ||
| 3763 | reg); | ||
| 3764 | } else if (!(reg & WM1811_JACKDET_LVL)) { | ||
| 3765 | dev_dbg(codec->dev, "Ignoring removed jack\n"); | ||
| 3766 | return IRQ_HANDLED; | ||
| 3767 | } | ||
| 3768 | } | ||
| 3769 | |||
| 3758 | if (wm8994->mic_detecting) | 3770 | if (wm8994->mic_detecting) |
| 3759 | wm8958_mic_id(codec, reg); | 3771 | wm8958_mic_id(codec, reg); |
| 3760 | else | 3772 | else |
