Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -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
	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
	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_


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 },
};
};


/*
/*