On Fri, Feb 11, 2011 at 09:29:06AM -0800, Stephen Warren wrote:
Strangely, modifying wm8903_mic_detect() to:
- Unconditionally clear MICDET_ENA
- Update the IRQ mask like it does today
- Re-enable MICDET_ENA if det||shrt
Doesn't actually solve the problem. I guess disabling MICDET_ENA doesn't actually reset the mic detection state machine.
That's kind of what I expect - remember that the microphone detection interrupst doesn't report the microphone status directly, they report deltas in the reported microphone status after debouncing.
Anyway, as you said, perhaps just documenting how to set up micdet_cfg in the platform_data header is indeed the best way, since everything works without any code changes if I simply don't set MICDET_ENA in micdet_cfg.
Yes, and it's not a particularly useful thing to do so I'm pretty comfortable just telling people not do do that.