[alsa-devel] [PATCH 2/3] ASoC: support all possible sample rates in the WM8776 driver

Mark Brown broonie at opensource.wolfsonmicro.com
Thu Sep 15 12:24:30 CEST 2011

On Tue, Sep 13, 2011 at 12:59:36PM -0500, Timur Tabi wrote:

> ASoC codec drivers can use the .set_sysclk function to dynamically specify
> the list of support sample rates, because that list is often based on
> the input clock frequency.  Although the WM8776 includes a .set_sysclk
> function, it was also hard-coding the supported sample rates to a list
> that depends on a specific input clock frequency.

> So change the hard-coded list to a range within the capabilities of the
> WM8776 itself, and let wm8776_set_sysclk() do its job.

This changelog doesn't correspond to reality.  The set_sysclk() function
in the driver makes no effort to constrain the sample rates based on
sysclk, as is normal for CODEC drivers as the system clock is frequently
configured based on the current sample rate (at the minute the
configured clock is used to set up the clock dividers within the CODEC
based on sample rate).  Trying to implement constraints based on the
system clock is problematic and will normally decrease the usability of
the driver in systems where the clock rates vary.

What's actually going on here is that the driver is being cautious about
supporting non-audio clock rates (mostly because the digital performance
is mainly specified for audio rates) and 192kHz was omitted from the DAC
rates.  The change itself is OK but please resubmit with a more accurate

More information about the Alsa-devel mailing list