diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-12-14 06:23:37 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-12-14 06:35:14 -0500 |
commit | 45ba82d81741398ec4f097fedf2c204704d53b6b (patch) | |
tree | b905d02c610261e46ee98b958e09cd9a694dc980 /sound/soc/codecs/wm8996.c | |
parent | a3462490b4d354c94031bfe644c65d374fc04aa6 (diff) |
ASoC: Tune the accessory detection rates for WM8996
Use longer intervals when the microphone is not inserted to increase
robustness against leisurely insertion.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8996.c')
-rw-r--r-- | sound/soc/codecs/wm8996.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c index 8f88f5a9c985..da7acaefa9d9 100644 --- a/sound/soc/codecs/wm8996.c +++ b/sound/soc/codecs/wm8996.c | |||
@@ -2572,8 +2572,10 @@ static void wm8996_micd(struct snd_soc_codec *codec) | |||
2572 | SND_JACK_BTN_0); | 2572 | SND_JACK_BTN_0); |
2573 | 2573 | ||
2574 | snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, | 2574 | snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, |
2575 | WM8996_MICD_RATE_MASK, | 2575 | WM8996_MICD_RATE_MASK | |
2576 | WM8996_MICD_RATE_MASK); | 2576 | WM8996_MICD_BIAS_STARTTIME_MASK, |
2577 | WM8996_MICD_RATE_MASK | | ||
2578 | 9 << WM8996_MICD_BIAS_STARTTIME_SHIFT); | ||
2577 | return; | 2579 | return; |
2578 | } | 2580 | } |
2579 | 2581 | ||
@@ -2590,8 +2592,10 @@ static void wm8996_micd(struct snd_soc_codec *codec) | |||
2590 | /* Increase poll rate to give better responsiveness | 2592 | /* Increase poll rate to give better responsiveness |
2591 | * for buttons */ | 2593 | * for buttons */ |
2592 | snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, | 2594 | snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, |
2593 | WM8996_MICD_RATE_MASK, | 2595 | WM8996_MICD_RATE_MASK | |
2594 | 5 << WM8996_MICD_RATE_SHIFT); | 2596 | WM8996_MICD_BIAS_STARTTIME_MASK, |
2597 | 5 << WM8996_MICD_RATE_SHIFT | | ||
2598 | 7 << WM8996_MICD_BIAS_STARTTIME_SHIFT); | ||
2595 | } else { | 2599 | } else { |
2596 | dev_dbg(codec->dev, "Mic button up\n"); | 2600 | dev_dbg(codec->dev, "Mic button up\n"); |
2597 | snd_soc_jack_report(wm8996->jack, 0, SND_JACK_BTN_0); | 2601 | snd_soc_jack_report(wm8996->jack, 0, SND_JACK_BTN_0); |
@@ -2639,8 +2643,10 @@ static void wm8996_micd(struct snd_soc_codec *codec) | |||
2639 | * responsiveness. | 2643 | * responsiveness. |
2640 | */ | 2644 | */ |
2641 | snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, | 2645 | snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, |
2642 | WM8996_MICD_RATE_MASK, | 2646 | WM8996_MICD_RATE_MASK | |
2643 | 7 << WM8996_MICD_RATE_SHIFT); | 2647 | WM8996_MICD_BIAS_STARTTIME_MASK, |
2648 | 7 << WM8996_MICD_RATE_SHIFT | | ||
2649 | 7 << WM8996_MICD_BIAS_STARTTIME_SHIFT); | ||
2644 | } | 2650 | } |
2645 | } | 2651 | } |
2646 | } | 2652 | } |