ASoC: stac9766: fix wrong usage of DECLARE_TLV_DB_LINEAR()
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 26 Sep 2016 23:25:29 +0000 (08:25 +0900)
committerMark Brown <broonie@kernel.org>
Tue, 27 Sep 2016 16:22:39 +0000 (09:22 -0700)
commitf2b2f6dcd48adf81007b66e39bb7ca21d9bde250
tree70bcecf9271ac810fdfd59134bb0b62d80eff424
parent29b4817d4018df78086157ea3a55c1d9424a7cfc
ASoC: stac9766: fix wrong usage of DECLARE_TLV_DB_LINEAR()

As long as reading datasheet of STAC9766/9767, this driver includes wrong
usage of DECLARE_TLV_DB_LINEAR().

In "8.1.2. Master Volume Registers", attenuation of lineout volumes is
represented in 5 bits by -1.5 dB/step from 0 to -46.5 dB. Thus,
'master_tlv' should be dB step representation.

In "8.1.14. Record Gain", gain of volumes is represented in 4 bits by
1.5 dB/step from 0 to 22.5 dB. Thus, 'record_tlv' should be dB step
representation.

In "8.1.5. PC BEEP Volume", attenuation of volume is represented in 4 bits
by -3 dB/step from 0 to 45 dB. Thus, 'beep_tlv' should be dB step
representation.

In "8.1.7. Stereo or Mic Volume" and so on, gain of volumes is represented
in 5 bits by -1.5 dB from 12 to -34.5 dB. Thus, 'mix_tlv' should be dB
step representation.

Totally, current implementation includes misuse of TLV-related macro.

This commit replaces usage of DECLARE_TLV_DB_LINEAR() with
SNDRV_CTL_TLVD_DECLARE_DB_SCALE(), to give proper information to
applications in user land.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/stac9766.c