[ALSA] Add missing TLV callbacks for HD-audio codecs
Added missing TLV callbacks for HD-audio codec supports. Also cleaned up the tlv callback for ad1986a (no mutex is needed there). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
committed by
Jaroslav Kysela
parent
e05d696424
commit
c256652466
@@ -452,19 +452,6 @@ static int ad1986a_pcm_amp_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl
|
|||||||
return change;
|
return change;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ad1986a_pcm_amp_tlv(struct snd_kcontrol *kcontrol, int op_flag,
|
|
||||||
unsigned int size, unsigned int __user *_tlv)
|
|
||||||
{
|
|
||||||
struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
|
|
||||||
struct ad198x_spec *ad = codec->spec;
|
|
||||||
|
|
||||||
mutex_lock(&ad->amp_mutex);
|
|
||||||
snd_hda_mixer_amp_tlv(kcontrol, op_flag, size, _tlv);
|
|
||||||
mutex_unlock(&ad->amp_mutex);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#define ad1986a_pcm_amp_sw_info snd_hda_mixer_amp_switch_info
|
#define ad1986a_pcm_amp_sw_info snd_hda_mixer_amp_switch_info
|
||||||
|
|
||||||
static int ad1986a_pcm_amp_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
|
static int ad1986a_pcm_amp_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
|
||||||
@@ -507,7 +494,7 @@ static struct snd_kcontrol_new ad1986a_mixers[] = {
|
|||||||
.info = ad1986a_pcm_amp_vol_info,
|
.info = ad1986a_pcm_amp_vol_info,
|
||||||
.get = ad1986a_pcm_amp_vol_get,
|
.get = ad1986a_pcm_amp_vol_get,
|
||||||
.put = ad1986a_pcm_amp_vol_put,
|
.put = ad1986a_pcm_amp_vol_put,
|
||||||
.tlv = { .c = ad1986a_pcm_amp_tlv },
|
.tlv = { .c = snd_hda_mixer_amp_tlv },
|
||||||
.private_value = HDA_COMPOSE_AMP_VAL(AD1986A_FRONT_DAC, 3, 0, HDA_OUTPUT)
|
.private_value = HDA_COMPOSE_AMP_VAL(AD1986A_FRONT_DAC, 3, 0, HDA_OUTPUT)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -654,6 +641,7 @@ static struct snd_kcontrol_new ad1986a_laptop_eapd_mixers[] = {
|
|||||||
.info = snd_hda_mixer_amp_volume_info,
|
.info = snd_hda_mixer_amp_volume_info,
|
||||||
.get = snd_hda_mixer_amp_volume_get,
|
.get = snd_hda_mixer_amp_volume_get,
|
||||||
.put = ad1986a_laptop_master_vol_put,
|
.put = ad1986a_laptop_master_vol_put,
|
||||||
|
.tlv = { .c = snd_hda_mixer_amp_tlv },
|
||||||
.private_value = HDA_COMPOSE_AMP_VAL(0x1a, 3, 0, HDA_OUTPUT),
|
.private_value = HDA_COMPOSE_AMP_VAL(0x1a, 3, 0, HDA_OUTPUT),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -5540,6 +5540,7 @@ static struct snd_kcontrol_new alc262_fujitsu_mixer[] = {
|
|||||||
.info = snd_hda_mixer_amp_volume_info,
|
.info = snd_hda_mixer_amp_volume_info,
|
||||||
.get = snd_hda_mixer_amp_volume_get,
|
.get = snd_hda_mixer_amp_volume_get,
|
||||||
.put = alc262_fujitsu_master_vol_put,
|
.put = alc262_fujitsu_master_vol_put,
|
||||||
|
.tlv = { .c = snd_hda_mixer_amp_tlv },
|
||||||
.private_value = HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT),
|
.private_value = HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -1528,6 +1528,7 @@ static struct snd_kcontrol_new vaio_mixer[] = {
|
|||||||
.info = snd_hda_mixer_amp_volume_info,
|
.info = snd_hda_mixer_amp_volume_info,
|
||||||
.get = snd_hda_mixer_amp_volume_get,
|
.get = snd_hda_mixer_amp_volume_get,
|
||||||
.put = vaio_master_vol_put,
|
.put = vaio_master_vol_put,
|
||||||
|
.tlv = { .c = snd_hda_mixer_amp_tlv },
|
||||||
.private_value = HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT),
|
.private_value = HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user