[alsa-devel] WM8994 playback delay

Mark Brown broonie at opensource.wolfsonmicro.com
Thu Mar 29 12:50:16 CEST 2012

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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20120329/56a56066/attachment.sig 

More information about the Alsa-devel mailing list