From: Takashi Iwai <tiwai@suse.de>
Date: Tue, 20 Jan 2009 17:24:13 +0000 (+0100)
Subject: ALSA: hda - Check HDMI jack types in the auto configuration
X-Git-Tag: firefly_0821_release~14584^2~1^2~146
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2297bd6e526ce1469279284ffda9140f8d60ea84;p=firefly-linux-kernel-4.4.55.git

ALSA: hda - Check HDMI jack types in the auto configuration

Add dig_out_type and dig_in_type fields to autocfg struct.
A proper HDA_PCM_TYPE_* value is assigned to these fields according
to the pin-jack location type value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 0129e95672ae..dd419ce43d92 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3392,10 +3392,18 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
 		case AC_JACK_SPDIF_OUT:
 		case AC_JACK_DIG_OTHER_OUT:
 			cfg->dig_out_pin = nid;
+			if (loc == AC_JACK_LOC_HDMI)
+				cfg->dig_out_type = HDA_PCM_TYPE_HDMI;
+			else
+				cfg->dig_out_type = HDA_PCM_TYPE_SPDIF;
 			break;
 		case AC_JACK_SPDIF_IN:
 		case AC_JACK_DIG_OTHER_IN:
 			cfg->dig_in_pin = nid;
+			if (loc == AC_JACK_LOC_HDMI)
+				cfg->dig_in_type = HDA_PCM_TYPE_HDMI;
+			else
+				cfg->dig_in_type = HDA_PCM_TYPE_SPDIF;
 			break;
 		}
 	}
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
index 1dd8716c387f..a4ecd77a451a 100644
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -355,6 +355,8 @@ struct auto_pin_cfg {
 	hda_nid_t dig_out_pin;
 	hda_nid_t dig_in_pin;
 	hda_nid_t mono_out_pin;
+	int dig_out_type; /* HDA_PCM_TYPE_XXX */
+	int dig_in_type; /* HDA_PCM_TYPE_XXX */
 };
 
 #define get_defcfg_connect(cfg) \