Commit 35a49934 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela

[ALSA] Add dB scale information to mixart driver

Added the dB scale information to mixart driver.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@suse.cz>
parent 2fd53a7e
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "mixart_core.h" #include "mixart_core.h"
#include "mixart_hwdep.h" #include "mixart_hwdep.h"
#include <sound/control.h> #include <sound/control.h>
#include <sound/tlv.h>
#include "mixart_mixer.h" #include "mixart_mixer.h"
static u32 mixart_analog_level[256] = { static u32 mixart_analog_level[256] = {
...@@ -388,12 +389,17 @@ static int mixart_analog_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_e ...@@ -388,12 +389,17 @@ static int mixart_analog_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_e
return changed; return changed;
} }
static DECLARE_TLV_DB_SCALE(db_scale_analog, -9600, 50, 0);
static struct snd_kcontrol_new mixart_control_analog_level = { static struct snd_kcontrol_new mixart_control_analog_level = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
SNDRV_CTL_ELEM_ACCESS_TLV_READ),
/* name will be filled later */ /* name will be filled later */
.info = mixart_analog_vol_info, .info = mixart_analog_vol_info,
.get = mixart_analog_vol_get, .get = mixart_analog_vol_get,
.put = mixart_analog_vol_put, .put = mixart_analog_vol_put,
.tlv = { .p = db_scale_analog },
}; };
/* shared */ /* shared */
...@@ -866,14 +872,19 @@ static int mixart_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem ...@@ -866,14 +872,19 @@ static int mixart_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem
return changed; return changed;
} }
static DECLARE_TLV_DB_SCALE(db_scale_digital, -10950, 50, 0);
static struct snd_kcontrol_new snd_mixart_pcm_vol = static struct snd_kcontrol_new snd_mixart_pcm_vol =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
SNDRV_CTL_ELEM_ACCESS_TLV_READ),
/* name will be filled later */ /* name will be filled later */
/* count will be filled later */ /* count will be filled later */
.info = mixart_digital_vol_info, /* shared */ .info = mixart_digital_vol_info, /* shared */
.get = mixart_pcm_vol_get, .get = mixart_pcm_vol_get,
.put = mixart_pcm_vol_put, .put = mixart_pcm_vol_put,
.tlv = { .p = db_scale_digital },
}; };
...@@ -984,10 +995,13 @@ static int mixart_monitor_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ ...@@ -984,10 +995,13 @@ static int mixart_monitor_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_
static struct snd_kcontrol_new mixart_control_monitor_vol = { static struct snd_kcontrol_new mixart_control_monitor_vol = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
SNDRV_CTL_ELEM_ACCESS_TLV_READ),
.name = "Monitoring Volume", .name = "Monitoring Volume",
.info = mixart_digital_vol_info, /* shared */ .info = mixart_digital_vol_info, /* shared */
.get = mixart_monitor_vol_get, .get = mixart_monitor_vol_get,
.put = mixart_monitor_vol_put, .put = mixart_monitor_vol_put,
.tlv = { .p = db_scale_digital },
}; };
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment