[alsa-devel] ASoC: How to declare volume TLV dB scale?

Sergej Sawazki ce3a at gmx.de
Sat Jun 13 12:10:05 CEST 2015


On Sat, 13 Jun 2015 09:15:49 +0200, Takashi Iwai wrote:
> At Fri, 12 Jun 2015 21:47:46 +0200,
> Clemens Ladisch wrote:
>>
>> Sergej Sawazki wrote:
>>>
>>> The output of the DAC can be attenuated in 0.125dB steps, so 0x200
>>> would be -64dB.
>>
>> 0.125 dB is too small for the 0.01 dB resolution of DECLARE_TLV_DB_SCALE,
>> so you have to use DB_MINMAX instead:  TLV_DB_MINMAX_MUTE_ITEM(-128, 0)
>
> And you need to implement the ctl get/put callback to revert the value
> as (0x3ff - raw value).  An decrement value isn't supposed to work.
>

Clemens, Takashi, thanks for your answers.

I am getting the expected dB scaling with:
DECLARE_TLV_DB_MINMAX_MUTE(vol_tlv, -12800, 0)
does it make sense?

Regards,
Sergej




More information about the Alsa-devel mailing list