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

Commit 8c0d9649 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

[ALSA] hda-codec - Add SPDIF output support to AD1986a laptop-eapd model



The SPDIF output on AD1986A laptop-eapd model is disabled although
some Samsung laptops have SPDIF output.  Enable it after checking the
pin default config.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent 4444704c
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -925,6 +925,13 @@ static struct hda_amp_list ad1986a_loopbacks[] = {
};
#endif

static int is_jack_available(struct hda_codec *codec, hda_nid_t nid)
{
	unsigned int conf = snd_hda_codec_read(codec, nid, 0,
					       AC_VERB_GET_CONFIG_DEFAULT, 0);
	return get_defcfg_connect(conf) != AC_JACK_PORT_NONE;
}

static int patch_ad1986a(struct hda_codec *codec)
{
	struct ad198x_spec *spec;
@@ -984,6 +991,7 @@ static int patch_ad1986a(struct hda_codec *codec)
		spec->multiout.max_channels = 2;
		spec->multiout.num_dacs = 1;
		spec->multiout.dac_nids = ad1986a_laptop_dac_nids;
		if (!is_jack_available(codec, 0x25))
			spec->multiout.dig_out_nid = 0;
		spec->input_mux = &ad1986a_laptop_eapd_capture_source;
		break;
@@ -995,6 +1003,7 @@ static int patch_ad1986a(struct hda_codec *codec)
		spec->multiout.max_channels = 2;
		spec->multiout.num_dacs = 1;
		spec->multiout.dac_nids = ad1986a_laptop_dac_nids;
		if (!is_jack_available(codec, 0x25))
			spec->multiout.dig_out_nid = 0;
		spec->input_mux = &ad1986a_laptop_eapd_capture_source;
		codec->patch_ops.unsol_event = ad1986a_hp_unsol_event;