Hi,

> > It seems your TV refuses to use audio from analog stereo cable, when
> > it detects audio enabled over/in HDMI (just enabled, even purely
> > silent as in your case). And it seems we enable HDMI mode even when
> > you use radeon.audio=0.
> > 
> > I've no idea what could affect this between 2.6.33-rc8 and 2.6.33
> > (stable). The list of changes for drm/radeon taken from
> > http://lkml.org/lkml/2010/2/24/301 :
> 
> It doesn't seem to be the kernel, actually. I already tried with
> booting rc8 
> and it is the same. Must be one of the other parts, then...
I also have no idea which change caused this, but the fix is rather
simple, just also disable the HDMI encoders when the audio codec gets
disabled by the module option. A patch is attached.

> Can you provide "lspci" output by the way?
This is the second laptop where I see this strange configuration. From
the video drivers point of view everything is present (audio codec, HDMI
encoders, etc...), but the audio codec doesn't seems to be connected to
the PCI bus, so alsa can't see it.

I have no idea how we could auto detect this case, but the attached
patch should be a good workaround.

Christian.
>From 7226ccea04d48383fbf00577b8861461bcae2b02 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Christian=20K=C3=B6nig?= <chri...@zweiundvierzig.(none)>
Date: Tue, 30 Mar 2010 19:19:20 +0200
Subject: [PATCH] drm/radeon/kms: disable HDMI encoders when audio codec is disabled

Also disable the HDMI encoders if the audio codec is disabled by the module option.
This fixes a strange bug, where an enabled HDMI encoder disables an external audio input at the TV.
---
 drivers/gpu/drm/radeon/radeon_encoders.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
index 7f43476..05f62ec 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -611,7 +611,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
 	switch (connector->connector_type) {
 	case DRM_MODE_CONNECTOR_DVII:
 	case DRM_MODE_CONNECTOR_HDMIB: /* HDMI-B is basically DL-DVI; analog works fine */
-		if (drm_detect_hdmi_monitor(radeon_connector->edid))
+		if (drm_detect_hdmi_monitor(radeon_connector->edid) && radeon_audio)
 			return ATOM_ENCODER_MODE_HDMI;
 		else if (radeon_connector->use_digital)
 			return ATOM_ENCODER_MODE_DVI;
@@ -621,7 +621,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
 	case DRM_MODE_CONNECTOR_DVID:
 	case DRM_MODE_CONNECTOR_HDMIA:
 	default:
-		if (drm_detect_hdmi_monitor(radeon_connector->edid))
+		if (drm_detect_hdmi_monitor(radeon_connector->edid) && radeon_audio)
 			return ATOM_ENCODER_MODE_HDMI;
 		else
 			return ATOM_ENCODER_MODE_DVI;
@@ -635,7 +635,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
 		if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
 		    (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP))
 			return ATOM_ENCODER_MODE_DP;
-		else if (drm_detect_hdmi_monitor(radeon_connector->edid))
+		else if (drm_detect_hdmi_monitor(radeon_connector->edid) && radeon_audio)
 			return ATOM_ENCODER_MODE_HDMI;
 		else
 			return ATOM_ENCODER_MODE_DVI;
-- 
1.6.3.3

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to