Commit a1667e4e authored by Wu Fengguang's avatar Wu Fengguang Committed by Takashi Iwai

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: default avatarWu Fengguang <fengguang.wu@intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 44a678d0
...@@ -419,13 +419,17 @@ static int hdmi_setup_channel_allocation(struct hda_codec *codec, ...@@ -419,13 +419,17 @@ static int hdmi_setup_channel_allocation(struct hda_codec *codec,
/* /*
* CA defaults to 0 for basic stereo audio * CA defaults to 0 for basic stereo audio
*/ */
if (!eld->eld_ver)
return 0;
if (!eld->spk_alloc)
return 0;
if (channels <= 2) if (channels <= 2)
return 0; return 0;
/*
* HDMI sink's ELD info cannot always be retrieved for now, e.g.
* in console or for audio devices. Assume the highest speakers
* configuration, to _not_ prohibit multi-channel audio playback.
*/
if (!eld->spk_alloc)
eld->spk_alloc = 0xffff;
/* /*
* expand ELD's speaker allocation mask * expand ELD's speaker allocation mask
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment