summaryrefslogtreecommitdiff
path: root/sound/pci/hda/patch_hdmi.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-10-08 09:30:04 +0200
committerTakashi Iwai <tiwai@suse.de>2013-10-08 09:30:04 +0200
commitd820306cbe56fb010f500ae58f9725f49812d39a (patch)
tree1c9554107c7f279d05d6f54b1b5d69735d51195d /sound/pci/hda/patch_hdmi.c
parent6d5eba5aac4ec9bba3d6b3e6425d857706d12ccb (diff)
parent39edac70e9aedf451fccaa851b273ace9fcca0bd (diff)
downloadlwn-d820306cbe56fb010f500ae58f9725f49812d39a.tar.gz
lwn-d820306cbe56fb010f500ae58f9725f49812d39a.zip
Merge branch 'for-linus' into for-next
For updating the HDMI chmap fix. Conflicts: sound/pci/hda/patch_hdmi.c
Diffstat (limited to 'sound/pci/hda/patch_hdmi.c')
-rw-r--r--sound/pci/hda/patch_hdmi.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 00e041333904..b899eba6f279 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -976,6 +976,14 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec,
}
/*
+ * always configure channel mapping, it may have been changed by the
+ * user in the meantime
+ */
+ hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca,
+ channels, per_pin->chmap,
+ per_pin->chmap_set);
+
+ /*
* sizeof(ai) is used instead of sizeof(*hdmi_ai) or
* sizeof(*dp_ai) to avoid partial match/update problems when
* the user switches between HDMI/DP monitors.
@@ -986,20 +994,10 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec,
"pin=%d channels=%d ca=0x%02x\n",
pin_nid,
active_channels, ca);
- hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca,
- channels, per_pin->chmap,
- per_pin->chmap_set);
hdmi_stop_infoframe_trans(codec, pin_nid);
hdmi_fill_audio_infoframe(codec, pin_nid,
ai.bytes, sizeof(ai));
hdmi_start_infoframe_trans(codec, pin_nid);
- } else {
- /* For non-pcm audio switch, setup new channel mapping
- * accordingly */
- if (per_pin->non_pcm != non_pcm)
- hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca,
- channels, per_pin->chmap,
- per_pin->chmap_set);
}
per_pin->non_pcm = non_pcm;