• Anssi Hannula's avatar
    ALSA: hda - hdmi: Set converter channel count even without sink · f06ab794
    Anssi Hannula authored
    Since commit 1df5a06a ("ALSA: hda - hdmi: Fix programmed active channel
    count") channel count is no longer being set if monitor_present is 0.
    This is because setting the count was moved after the CA value is
    determined, which is only after the monitor_present check in
    hdmi_setup_audio_infoframe().
    
    Unfortunately, in some cases, such as with a non-spec-compliant codec or
    with a problematic video driver, monitor_present is always 0. As a
    specific example, this seems to happen with gen1 ATV (SiI1390 codec),
    causing left-channel-only stereo playback (multi-channel playback has
    apparently never worked with this codec despite it reporting 8 channels,
    reason unknown).
    
    Simply setting converter channel count without setting the pin infoframe
    and channel mapping as well does not theoretically make much sense as
    this will just mean they are out-of-sync and multichannel playback will
    have a wrong channel mapping.
    
    However, adding back just setting the converter channel count even in
    no-monitor case is the safest change which at least fixes the stereo
    playback regression on SiI1390 codec. Do that.
    Signed-off-by: default avatarAnssi Hannula <anssi.hannula@iki.fi>
    Reported-by: default avatarStephan Raue <stephan@openelec.tv>
    Tested-by: default avatarStephan Raue <stephan@openelec.tv>
    Cc: <stable@vger.kernel.org> # 3.12+
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    f06ab794
patch_hdmi.c 94.8 KB