[dropped devicetree ML, as it's irrelevant now]
At Thu, 6 Feb 2014 13:07:35 +0000, Mark Brown wrote:
On Thu, Feb 06, 2014 at 01:51:33PM +0100, Takashi Iwai wrote:
Mark Brown wrote:
+static const char *pcm512x_dsp_program_texts[] = {
The numbers of items in pcm512x_dsp_program_texts[] and _values[] don't match.
Yeah, fixed.
+static const struct soc_enum pcm512x_clk_missing =
- SOC_ENUM_SINGLE(PCM512x_CLKDET, 0, 7, pcm512x_clk_missing_text);
Isn't it 8?
Hrm, it is but this points out an error in the control helpers which has been there since forever - they call that parameter max but it's not a maximum, it's the number of elements in the enumeration. I bet we have a bunch of other enumerations which miss the last element as a result.
I audited through the current code, and indeed there are quite a few bugs because of this. I'm going to send a full patch series including cleanups to alsa-devel ML. Since I split patches over each driver, it ended up 102 patches. So, be prepared :)
There are still open issues after this, and let's discuss in another thread.
Takashi