From: Takashi Iwai <tiwai@suse.de>
To: Clemens Ladisch <clemens@ladisch.de>
Cc: Sergej Sawazki <ce3a@gmx.de>, alsa-devel@alsa-project.org
Subject: Re: ASoC: How to declare volume TLV dB scale?
Date: Sat, 13 Jun 2015 09:15:49 +0200 [thread overview]
Message-ID: <s5hioas5ba2.wl-tiwai@suse.de> (raw)
In-Reply-To: <557B3762.20603@ladisch.de>
At Fri, 12 Jun 2015 21:47:46 +0200,
Clemens Ladisch wrote:
>
> Sergej Sawazki wrote:
> > On Fri, 12 Jun 2015 18:28:54 +0200, Clemens Ladisch wrote:
> >> Sergej Sawazki wrote:
> >>> could someone please help me to understand the mixer controls TLV scale?
> >>> What would be the DECLARE_TLV_DB_SCALE values for the following example?
> >>>
> >>> reg. value: 0 .. 0x3ff
> >>> phys. value: 0dB .. -128dB
> >>> volume: 100% .. 0%(mute)
> >>
> >> 0% volume would be -∞ dB.
> >>
> >> And how are the register values mapped between the min/max values?
> >> Does 0x200 correspond to -64 dB, or 50 % of the sample value, or
> >> 50 % of the volume?
> >
> > The output of the DAC can be attenuated in 0.125dB steps, so 0x200
> > would be -64dB.
> >
> > register value | attenuation level (dB) | volume (%)
> > ---------------+------------------------+-----------
> > 0x000 | 0.0 | 100
> > 0x001 | -0.125 |
> > ... | ... | ...
> > 0x200 | -64.0 |
> > ... | ... | ...
> > 0x3fe | -127.75 |
> > 0x3ff | -∞ (mute) | 0
>
> 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.
Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2015-06-13 7:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 12:02 ASoC: How to declare volume TLV dB scale? Sergej Sawazki
2015-06-12 16:28 ` Clemens Ladisch
2015-06-12 19:26 ` Sergej Sawazki
2015-06-12 19:47 ` Clemens Ladisch
2015-06-13 7:15 ` Takashi Iwai [this message]
2015-06-13 10:10 ` Sergej Sawazki
2015-06-13 10:29 ` Clemens Ladisch
2015-06-13 10:45 ` Sergej Sawazki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5hioas5ba2.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=ce3a@gmx.de \
--cc=clemens@ladisch.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.