On Thu, Mar 29, 2012 at 08:02:29AM +0900, Sangbeom Kim wrote:
Currently, We are developing SMDK with Exynos5250 and WM8994 on 3.3-rc6. We try to enable CONFIG_PM_RUNTIME and on/off control of power domain. But It has playback delay in the first playback.(3~4sec and 6/10times)
In that time, Log maessage is 'wm8994-codec wm8994-codec: Timed out waiting for DC Servo 300' wait_for_dc_servo() function generate above message on sound/soc/codecs/wm_hubs.c
This issue usually indicates that the clocking has an issue - are you following a similar pattern to that seen in the lowland machine driver in mainline? This is the best practice for WM8994 class parts, it should minimise power consumption when idle.
After removing wait_for_dc_servo for testing, playback delay is disappeared. So, Could you please explain the purporse of wait_for_dc_servo()? If wait_for_dc_servo() is removed, What kind of problem can be happened?
The DC servo is used to reduce pops on the headphone output. If the DC servo is not run the headphone outputs will produce audible artifacts when headphone is enabled which are generally considered unacceptable by users. There's a more detailed explanation of the feature in the WM8994 datasheet but that's the high level.