Skip to content

Commit

Permalink
[ALSA] hda-codec - Add SPDIF output support to AD1986a laptop-eapd model
Browse files Browse the repository at this point in the history
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: Takashi Iwai <[email protected]>
Signed-off-by: Jaroslav Kysela <[email protected]>
  • Loading branch information
tiwai authored and perexg committed Jan 31, 2008
1 parent 4444704 commit 8c0d964
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions sound/pci/hda/patch_analog.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -984,7 +991,8 @@ 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;
spec->multiout.dig_out_nid = 0;
if (!is_jack_available(codec, 0x25))
spec->multiout.dig_out_nid = 0;
spec->input_mux = &ad1986a_laptop_eapd_capture_source;
break;
case AD1986A_LAPTOP_AUTOMUTE:
Expand All @@ -995,7 +1003,8 @@ 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;
spec->multiout.dig_out_nid = 0;
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;
codec->patch_ops.init = ad1986a_hp_init;
Expand Down

0 comments on commit 8c0d964

Please sign in to comment.