Hi,
I noticed that one machine here gives only the blank output with 3.4-rc's. The bisection lead me to affecting commit:
commit e00e8b5e760cbbe9067daeae5454d67c44c8d035 Author: Alex Deucher alexander.deucher@amd.com Date: Fri Mar 16 12:22:09 2012 -0400
drm/radeon/kms: fix analog load detection on DVI-I connectors
Reverting this commit helped, it goes back to normal.
On this system, the VGA monitor is connected to DVI over a VGA-DVI connector (and even VGA-switcher). So, yeah, it's a strange setup. But a regression is a regression.
I'm willing to test any patch.
thanks,
Takashi
The check of the encoder type in the commit [e00e8b5e: drm/radeon/kms: fix analog load detection on DVI-I connectors] is obviously wrong, and it's the culprit of the regression on my workstation with DVI-analog connection resulting in the blank output.
Fixed the typo now.
Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- drivers/gpu/drm/radeon/radeon_connectors.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index bd05156..aa8268d 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -970,7 +970,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
encoder = obj_to_encoder(obj);
- if (encoder->encoder_type != DRM_MODE_ENCODER_DAC || + if (encoder->encoder_type != DRM_MODE_ENCODER_DAC && encoder->encoder_type != DRM_MODE_ENCODER_TVDAC) continue;
On Wed, Apr 18, 2012 at 9:21 AM, Takashi Iwai tiwai@suse.de wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
From: Alex Deucher alexander.deucher@amd.com
Reported-by: Takashi Iwai tiwai@suse.de Signed-off-by: Alex Deucher alexander.deucher@amd.com Cc: stable@vger.kernel.org --- drivers/gpu/drm/radeon/radeon_connectors.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 910ea6d..4bbb6d4 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -977,7 +977,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
encoder = obj_to_encoder(obj);
- if (encoder->encoder_type != DRM_MODE_ENCODER_DAC || + if (encoder->encoder_type != DRM_MODE_ENCODER_DAC && encoder->encoder_type != DRM_MODE_ENCODER_TVDAC) continue;
On Wed, Apr 18, 2012 at 8:39 AM, Takashi Iwai tiwai@suse.de wrote:
I don't think it's a regression per se. Prior to that patch, the analog vga was using the wrong load detect function (it's using the one for DP bridge chips) which returned connector_status_unknown if it was called on an invalid connector. The patch just sets the behaviour back to the original behaviour prior to support for DP bridge chips being added (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=...). The problem is the driver is not able to detect the monitor on the other side of the KVM (a common problem with KVMs). The real problem is that some desktop environments choose to interpret connector_status_unknown as connected. It's not really viable to always return connector_status_unknown as then all ports would be considered connected when in truth they would not be.
Alex
dri-devel@lists.freedesktop.org