ALSA: hda - hdmi: Set infoframe and channel mapping even without sink
authorAnssi Hannula <anssi.hannula@iki.fi>
Sun, 4 May 2014 23:38:44 +0000 (02:38 +0300)
committerTakashi Iwai <tiwai@suse.de>
Mon, 5 May 2014 14:55:34 +0000 (16:55 +0200)
commit561a7d6e853f170877a2ebf87f64e0e846b6a99c
tree0de8ae6a9518b34a48ff25c098fee314f82197ed
parent59991da498122f779434c4e0beac8a69e0322938
ALSA: hda - hdmi: Set infoframe and channel mapping even without sink

Currently infoframe contents and channel mapping are only set when a
sink (monitor) is present.

However, this does not make much sense, since
1) We can make a very reasonable guess on CA after 18e391862c ("ALSA:
   hda - hdmi: Fallback to ALSA allocation when selecting CA") or by
   relying on a previously valid ELD (or we may be using a
   user-specified channel map).
2) Not setting infoframe contents and channel count simply means they
   are left at a possibly incorrect state - playback is still allowed
   to proceed (with missing or wrongly mapped channels).

Reasons for monitor_present being 0 include disconnected cable, video
driver issues, or codec not being spec-compliant. Note that in
actual disconnected-cable case it should not matter if these settings
are wrong as they will be re-set after jack detection, though.

Change the behavior to allow the infoframe contents and the channel
mapping to be set even without a sink/monitor, either based on the
previous valid ELD contents, if any, or based on sensible defaults
(standard channel layouts or provided custom map, sink type HDMI).

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Tested-by: Stephan Raue <stephan@openelec.tv>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_hdmi.c