From f649faa82323616fe78d273167282a92bb353a47 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 9 Jun 2010 18:57:59 +1000 Subject: [PATCH] radeon: attempt workaround for TMDS on IBM server --- drivers/gpu/drm/radeon/radeon_combios.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index 2876925..73654cf 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c @@ -1807,7 +1807,7 @@ static bool radeon_apply_legacy_quirks(struct drm_device *dev, enum radeon_combios_connector *legacy_connector, struct radeon_i2c_bus_rec *ddc_i2c, - struct radeon_hpd *hpd) + struct radeon_hpd *hpd, uint16_t *tmp) { struct radeon_device *rdev = dev->dev_private; @@ -1844,6 +1844,15 @@ static bool radeon_apply_legacy_quirks(struct drm_device *dev, return false; } + /* certain IBM chipsets seem to report an external TMDS but + * are using the internal one */ + if (dev->pdev->device == 0x515e && + dev->pdev->subsystem_vendor == 0x1014) { + if (*legacy_connector == CONNECTOR_DVI_I_LEGACY) + *tmp &= ~(1 << 4); + } + + /* Some RV100 cards with 2 VGA ports show up with DVI+VGA */ if (dev->pdev->device == 0x5159 && dev->pdev->subsystem_vendor == 0x1002 && @@ -1982,7 +1991,7 @@ bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev) } if (!radeon_apply_legacy_quirks(dev, i, &connector, - &ddc_i2c, &hpd)) + &ddc_i2c, &hpd, &tmp)) continue; switch (connector) { -- 1.6.5.2