On 05/08/2013 02:14 PM, Takashi Iwai wrote: > At Wed, 08 May 2013 14:09:31 +0200, > Clemens Ladisch wrote: >> >> David Henningsson wrote: >>> I recently came across a strange ASoC volume control. In this case, >>> the values are not in volume order, i e, the control is declared >>> something like below. >>> >>> However alsamixer seems not to handle this "reordering" correctly. My >>> question is if this is something that should be fixed in alsamixer (or >>> possibly alsa-lib?), or does one need to write some kind of mapping >>> table in the kernel, just to make something come in volume order to >>> userspace? >> >> Items in a DB_RANGE container must be ordered by their values *and* by >> their dB values. This implies that larger values must correspond with >> larger dB values, whis is also required for all other mixer controls. >> >> If the register values are unordered, the driver must reorder them. > > Yep. Although there is no explicit definition, it's an implicit rule, > as we have never implemented the parser code to allow the disorder. > > We should add a text mentioning that somewhere. A patch is welcome ;) Like this? (Feel free to apply if you think it's good) -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic