diff options
author | Mengdong Lin <mengdong.lin@intel.com> | 2013-08-26 21:35:49 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-08-27 06:15:28 -0400 |
commit | 2e59e5ab1c24489c5581b83e56b0435432c54dfe (patch) | |
tree | a3c3aa2a8b55bac06b4aff8b2446a4310452036d /sound/pci/hda | |
parent | 5dc989bdd968f369fec47d25343868ff9702953a (diff) |
ALSA: hda - add device entry and inactive flag to unsolicited response
This patch adds two fields to unsolicited response, according to spec HDA040-A:
- Device Entry (bit 20:15)
- Inactive (bit 2)
and show the info in debug message.
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r-- | sound/pci/hda/hda_codec.h | 5 | ||||
-rw-r--r-- | sound/pci/hda/patch_hdmi.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index b838c70420d1..7aa9870040c1 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h | |||
@@ -255,6 +255,11 @@ enum { | |||
255 | #define AC_UNSOL_RES_TAG_SHIFT 26 | 255 | #define AC_UNSOL_RES_TAG_SHIFT 26 |
256 | #define AC_UNSOL_RES_SUBTAG (0x1f<<21) | 256 | #define AC_UNSOL_RES_SUBTAG (0x1f<<21) |
257 | #define AC_UNSOL_RES_SUBTAG_SHIFT 21 | 257 | #define AC_UNSOL_RES_SUBTAG_SHIFT 21 |
258 | #define AC_UNSOL_RES_DE (0x3f<<15) /* Device Entry | ||
259 | * (for DP1.2 MST) | ||
260 | */ | ||
261 | #define AC_UNSOL_RES_DE_SHIFT 15 | ||
262 | #define AC_UNSOL_RES_IA (1<<2) /* Inactive (for DP1.2 MST) */ | ||
258 | #define AC_UNSOL_RES_ELDV (1<<1) /* ELD Data valid (for HDMI) */ | 263 | #define AC_UNSOL_RES_ELDV (1<<1) /* ELD Data valid (for HDMI) */ |
259 | #define AC_UNSOL_RES_PD (1<<0) /* pinsense detect */ | 264 | #define AC_UNSOL_RES_PD (1<<0) /* pinsense detect */ |
260 | #define AC_UNSOL_RES_CP_STATE (1<<1) /* content protection */ | 265 | #define AC_UNSOL_RES_CP_STATE (1<<1) /* content protection */ |
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 87ca984bbf8d..895a0d3320b4 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c | |||
@@ -959,6 +959,7 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res) | |||
959 | int pin_nid; | 959 | int pin_nid; |
960 | int pin_idx; | 960 | int pin_idx; |
961 | struct hda_jack_tbl *jack; | 961 | struct hda_jack_tbl *jack; |
962 | int dev_entry = (res & AC_UNSOL_RES_DE) >> AC_UNSOL_RES_DE_SHIFT; | ||
962 | 963 | ||
963 | jack = snd_hda_jack_tbl_get_from_tag(codec, tag); | 964 | jack = snd_hda_jack_tbl_get_from_tag(codec, tag); |
964 | if (!jack) | 965 | if (!jack) |
@@ -967,8 +968,8 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res) | |||
967 | jack->jack_dirty = 1; | 968 | jack->jack_dirty = 1; |
968 | 969 | ||
969 | _snd_printd(SND_PR_VERBOSE, | 970 | _snd_printd(SND_PR_VERBOSE, |
970 | "HDMI hot plug event: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", | 971 | "HDMI hot plug event: Codec=%d Pin=%d Device=%d Inactive=%d Presence_Detect=%d ELD_Valid=%d\n", |
971 | codec->addr, pin_nid, | 972 | codec->addr, pin_nid, dev_entry, !!(res & AC_UNSOL_RES_IA), |
972 | !!(res & AC_UNSOL_RES_PD), !!(res & AC_UNSOL_RES_ELDV)); | 973 | !!(res & AC_UNSOL_RES_PD), !!(res & AC_UNSOL_RES_ELDV)); |
973 | 974 | ||
974 | pin_idx = pin_nid_to_pin_index(spec, pin_nid); | 975 | pin_idx = pin_nid_to_pin_index(spec, pin_nid); |