At Tue, 7 Jul 2009 12:34:16 +0530, Harsha, Priya wrote:
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Tuesday, July 07, 2009 12:19 PM To: Harsha, Priya Cc: Koul, Vinod; alsa-devel@alsa-project.org Subject: Re: [alsa-devel] [PATCH] [RFC 8/13] Intel SST sound card driver
At Tue, 7 Jul 2009 11:50:46 +0530, Harsha, Priya wrote:
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .info = snd_intelmad_line_volume_info,
- .get = snd_intelmad_volume_get,
- .put = snd_intelmad_volume_set,
Can it have the dB information via TLV?
No. It actually differs across the 3 sound cards supported and it's not a direct TLV that can be used.
Then you'd set a static TLV entry after creating the ctl element instance, or return a TLV entry dynamically via the tlv callback.
Sorry I misunderstood. The value that is passed in min and max is in dB. For min and max values, it's a static dB value that I return. But when the volume adjustments need to be done, based on the value given by ALSA, I set the sound card registers to reflect that dB value.
The value to be set is always raw. That is, alsa-lib computes the raw value from the given dB value based on the TLV information (dB min/max), supposing the volume scale is logarithmic.
Isn't it the case for you?
When volume is queried for, I read the specific sound card register and return the dB value to ALSA. Will this implementation be ok?
Takashi