diff options
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 23a9c2eca982..93f979db5a2e 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -2840,6 +2840,15 @@ static int snd_hda_spdif_out_switch_put(struct snd_kcontrol *kcontrol, return change; } +static int snd_hda_hdmi_decode_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + + ucontrol->value.integer.value[0] = codec->ac3dec_capable; + return 0; +} + static struct snd_kcontrol_new dig_mixes[] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ, @@ -2869,6 +2878,12 @@ static struct snd_kcontrol_new dig_mixes[] = { .get = snd_hda_spdif_out_switch_get, .put = snd_hda_spdif_out_switch_put, }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "AC3 Decode Capability", + .info = snd_ctl_boolean_mono_info, + .get = snd_hda_hdmi_decode_get, + }, { } /* end */ }; |