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