All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anssi Hannula <anssi.hannula@iki.fi>
To: tiwai@suse.de
Cc: Stephan Raue <stephan@openelec.tv>, alsa-devel@alsa-project.org
Subject: [PATCH 2/2] ALSA: hda - hdmi: Set infoframe and channel mapping even without sink
Date: Mon,  5 May 2014 02:38:44 +0300	[thread overview]
Message-ID: <1399246724-16611-2-git-send-email-anssi.hannula@iki.fi> (raw)
In-Reply-To: <1399246724-16611-1-git-send-email-anssi.hannula@iki.fi>

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>
---

This simply removes the monitor_present check, which is probably more
trouble than it is worth, as it may trip obscure setups even though we
can tolerate !monitor_present and !eld in 99%+ of all cases by using
defaults, nowadays post-18e391862c anyway.
Downside is that missing monitor_present may not be noticed by the user
as ~everything continues to work.


 sound/pci/hda/patch_hdmi.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 1edbb9c47c2d..016f785cdf45 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1127,10 +1127,6 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec,
 					    AMP_OUT_UNMUTE);
 
 	eld = &per_pin->sink_eld;
-	if (!eld->monitor_present) {
-		hdmi_set_channel_count(codec, per_pin->cvt_nid, channels);
-		return;
-	}
 
 	if (!non_pcm && per_pin->chmap_set)
 		ca = hdmi_manual_channel_allocation(channels, per_pin->chmap);
-- 
1.8.4.5

  reply	other threads:[~2014-05-04 23:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-04 23:38 [PATCH 1/2] ALSA: hda - hdmi: Set converter channel count even without sink Anssi Hannula
2014-05-04 23:38 ` Anssi Hannula [this message]
2014-05-05 14:34   ` [PATCH 2/2] ALSA: hda - hdmi: Set infoframe and channel mapping " Takashi Iwai
2014-05-05 14:48     ` Anssi Hannula
2014-05-05 14:55       ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1399246724-16611-2-git-send-email-anssi.hannula@iki.fi \
    --to=anssi.hannula@iki.fi \
    --cc=alsa-devel@alsa-project.org \
    --cc=stephan@openelec.tv \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.