aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8996.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-12-14 06:23:37 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-12-14 06:35:14 -0500
commit45ba82d81741398ec4f097fedf2c204704d53b6b (patch)
treeb905d02c610261e46ee98b958e09cd9a694dc980 /sound/soc/codecs/wm8996.c
parenta3462490b4d354c94031bfe644c65d374fc04aa6 (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.c18
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}