aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2009-02-11 02:22:28 -0500
committerTakashi Iwai <tiwai@suse.de>2009-02-11 03:08:47 -0500
commita1667e4eea0a7085815d1532d7630bb4611271d0 (patch)
tree3e953fee709e0c41bf6fa1496cab025700e865d0 /sound/pci
parent44a678d04babaa751c0ee98e006ede9576fa9e00 (diff)
ALSA: hda - allow multi-channel HDMI audio playback when ELD is not present
The YAMAHA AV-X1800 requires audio infoframe to include speaker-channel mapping to play >2 channel HDMI audio. In theory that mapping should be derived from its speaker configurations contained in its ELD. However we currently cannot get ELD in console before the KMS functionalities are ready. This is a more or less general issue at least in the near future. As a workaround, we propose to allow playback of mult-channel audio when ELD is not available. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_intelhdmi.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sound/pci/hda/patch_intelhdmi.c b/sound/pci/hda/patch_intelhdmi.c
index 3564f4e4b74c..a8643509e2af 100644
--- a/sound/pci/hda/patch_intelhdmi.c
+++ b/sound/pci/hda/patch_intelhdmi.c
@@ -419,14 +419,18 @@ static int hdmi_setup_channel_allocation(struct hda_codec *codec,
419 /* 419 /*
420 * CA defaults to 0 for basic stereo audio 420 * CA defaults to 0 for basic stereo audio
421 */ 421 */
422 if (!eld->eld_ver)
423 return 0;
424 if (!eld->spk_alloc)
425 return 0;
426 if (channels <= 2) 422 if (channels <= 2)
427 return 0; 423 return 0;
428 424
429 /* 425 /*
426 * HDMI sink's ELD info cannot always be retrieved for now, e.g.
427 * in console or for audio devices. Assume the highest speakers
428 * configuration, to _not_ prohibit multi-channel audio playback.
429 */
430 if (!eld->spk_alloc)
431 eld->spk_alloc = 0xffff;
432
433 /*
430 * expand ELD's speaker allocation mask 434 * expand ELD's speaker allocation mask
431 * 435 *
432 * ELD tells the speaker mask in a compact(paired) form, 436 * ELD tells the speaker mask in a compact(paired) form,