[alsa-devel] [PATCH 1/3] ASOC: wm8991: fix wrong usage of DECLARE_TLV_DB_LINEAR()

Charles Keepax ckeepax at opensource.wolfsonmicro.com
Tue Sep 27 10:48:39 CEST 2016


On Tue, Sep 27, 2016 at 08:25:27AM +0900, Takashi Sakamoto wrote:
> As long as reading datasheet of WM8991, this driver includes wrong usage
> of DECLARE_TLV_DB_LINEAR().
> 
> In "Table 6 Input PGA Volume Range", volume is represented in 5 bits by
> 1.5 dB/step between -16.5/30.0 dB. Thus, 'in_pga_tlv' should be dB step
> representation.
> 
> In "Table 34 LOMIX and ROMIX Volume Range", volume is represented in three
> bits by -3 dB/step from 0 to -21 dB. Thus, 'out_mix_tlv' should be dB step
> represenation.
> 
> In "Table 36 LOPGA, ROPGA, LOUT, ROUT and SPKVOL Volume Range", volume is
> represented in 7 bits by 1 dB/step from -73 to 6 dB, including mute. Thus,
> 'out_pga_tlv' should be dB step representation.
> 
> In "Table 26 Digital Volume Range", volume is represented in 8 bits by
> 3/8 dB/step from -71.625 to 0 dB. Thus, 'out_dac_tlv' should be dB step
> representation.
> 
> In "Table 16 ADC Digital Volume Range", volume is represented in 8 bits by
> 3/8 dB/step from -71.625 to 17.625 dB. Thus, 'in_adc_tlv' should be dB step
> representation.
> 
> In "Table 23 Digital Sidetone Volume", volume is represented in 5 bits by
> 3 dB/step from -36 to 0 dB. Thus, 'out_sidetone_tlv' should be dB step
> representation.
> 
> In "Table 12 Left Input Mixer Volume Control", volume is represented in
> 3 bits by 3 dB/step from -12 to 6 dB
> 
> Totally, current implementation includes misuse of TLV-related macro.
> 
> This commit replaces usage of DECLARE_TLV_DB_LINEAR() with proper macros,
> to give proper information to applications in user land.
> 
> Fixes: 203db220718c ("ASoC: WM8991: Add initial WM8991 driver")
> Cc: patches at opensource.wolfsonmicro.com
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
> ---

Acked-by: Charles Keepax <ckeepax at opensource.wolfsonmicro.com>

Thanks,
Charles


More information about the Alsa-devel mailing list