On Mon, Jun 21, 2010 at 09:18:01PM +0300, Pasi Kärkkäinen wrote: > > >> > > >> I am not sure your patch is right, my guess is that devices field of > > >> radeon connector structure btw the HDMI & DVI connector are different > > >> and thus that drm_detect_hdmi_monitor is not call. I expect it's normal > > >> for the device field to be different (my understanding being that HDMI > > >> will have one more bit set than the DVI connector). Bottom line is > > >> i think we want to discard non hdmi connector just in case we face > > >> shared connector. > > >> > > >> Alex would have to comment on the device field test, maybe your atombios > > >> is broken. Does it works if instead of removing > > >> if (connector == list_connector) > > >> continue; > > >> You remove : > > >> if (radeon_connector->devices == list_radeon_connector->devices) > > >> > > >> Also can you print the radeon_connector->devices of all your connector > > >> so we can compare them. > > > > > > The code was for systems with shared ddc lines and shared encoders, > > > but it looks like your system may have a shared ddc line and (sort of) > > > non-shared encoders. I suspect the DVI port is using UNIPHY A or A+B > > > (for dual link) and HDMI is using UNIPHY link B. It's probably > > > actually using router objects (gpio toggle to switch gpio routing > > > between physical ports), however support for that is not implemented > > > yet which is why we have the current code. Can you send me a copy of > > > your vbios so I can verify? > > > > > > To access your vbios (as root): > > > cd /sys/bus/pci/device/<pci bus id> > > > echo 1 > rom > > > cat rom > /tmp/vbios.rom > > > echo 0 > rom > > > > Does the attached patch fix the issue? > > > > Thanks for the patch. I'll try it when I'm back where the dock is.. will take a couple of days. > Sorry it took a while.. I tried your patch now. It seems to fix the problem! When you send it upstream please also CC it for 2.6.33/2.6.34 stable branches? Just hoping to get the fix into Fedora 13.. -- Pasi > > > > From 557b452536c9390105539a264d342d963d71b087 Mon Sep 17 00:00:00 2001 > > From: Alex Deucher <alexdeucher@xxxxxxxxx> > > Date: Mon, 21 Jun 2010 12:07:52 -0400 > > Subject: [PATCH] drm/radeon/kms: fix shared ddc handling > > MIME-Version: 1.0 > > Content-Type: text/plain; charset=UTF-8 > > Content-Transfer-Encoding: 8bit > > > > Connectors with a shared ddc line can be connected to different > > encoders. > > > > Reported by Pasi Kärkkäinen <pasik@xxxxxx> on dri-devel > > > > Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> > > --- > > drivers/gpu/drm/radeon/radeon_connectors.c | 4 +++- > > 1 files changed, 3 insertions(+), 1 deletions(-) > > > > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c > > index 0c7ccc6..f58f8bd 100644 > > --- a/drivers/gpu/drm/radeon/radeon_connectors.c > > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c > > @@ -785,7 +785,9 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect > > if (connector == list_connector) > > continue; > > list_radeon_connector = to_radeon_connector(list_connector); > > - if (radeon_connector->devices == list_radeon_connector->devices) { > > + if (list_radeon_connector->shared_ddc && > > + (list_radeon_connector->ddc_bus->rec.i2c_id == > > + radeon_connector->ddc_bus->rec.i2c_id)) { > > if (drm_detect_hdmi_monitor(radeon_connector->edid)) { > > if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) { > > kfree(radeon_connector->edid); > > -- > > 1.7.0.1 > > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel