[alsa-devel] [PATCH - alsa-lib 2/3] tlv: Handle 'holes' in SND_CTL_TLVT_DB_RANGE array

Clemens Ladisch clemens at ladisch.de
Tue Jul 20 08:25:00 CEST 2010


Takashi Iwai wrote:
> Mark Brown wrote:
> > It still seems silly to have to paper over this for every single dB
> > interval - if we need to link up the ranges it seems like we ought to
> > be fixing this in one place.
> 
> Well, what I don't feel right is that this breaks the simpleness of
> DB_RANGE handling.  It's just damn simple, and works as long as the
> target point is covered by defined ranges.  If something is wrong,
> it's the definition, not the parser.  That's why I wondered first
> whether it can't be fixed in the driver side.

As a driver writer, I would intuitively assume that the ranges must
not be overlapping.  If we require all drivers to get this right,
there will likely be new ones that don't.

> The only worst case is discontinued lines you mentioned.  Is there
> a real device that behaves so (and implemented in that way)?

AK4524's and friends' "pseudo-log" controls use piecewise linear ranges
where the boundaries between the ranges would have to be described with
a separate TLV entry if overlapping TLV ranges are required (see page 28
of 4524.pdf).  Currently, ak4xxx-adda.c uses a volume lookup table.


Regards,
Clemens


More information about the Alsa-devel mailing list