summaryrefslogtreecommitdiff
path: root/src/radeon_atombios.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-06-04 09:57:22 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-06-04 09:57:22 -0400
commit39f736d6cb65fc7c3fd769478023fc87c1af5979 (patch)
tree67ec78bb59d4c13a6206fa9def514b8f468a2446 /src/radeon_atombios.c
parent7599dc40855c33a5fbd8e9bbc2b4cd62752fb7df (diff)
atom: connector quirk
Some r6xx cards have a VGA and an HDMI port with a shared ddc line listed as an HDMI port with both analog and digital encoders. Fixes bug 19943
Diffstat (limited to 'src/radeon_atombios.c')
-rw-r--r--src/radeon_atombios.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
index 7e4a3555..a55fc3c6 100644
--- a/src/radeon_atombios.c
+++ b/src/radeon_atombios.c
@@ -1625,12 +1625,6 @@ static void RADEONApplyATOMQuirks(ScrnInfoPtr pScrn, int index)
}
}
- /* some BIOSes seem to report DAC on HDMI - they hurt me with their lies */
- if ((info->BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_A) ||
- (info->BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_B)) {
- info->BiosConnector[index].devices &= ~(ATOM_DEVICE_CRT_SUPPORT);
- }
-
/* ASUS HD 3600 XT board lists the DVI port as HDMI */
if ((info->Chipset == PCI_CHIP_RV635_9598) &&
(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1043) &&
@@ -1639,6 +1633,18 @@ static void RADEONApplyATOMQuirks(ScrnInfoPtr pScrn, int index)
info->BiosConnector[index].ConnectorType = CONNECTOR_DVI_D;
}
+ /* some BIOSes seem to report DAC on HDMI - usually this is a board with
+ * HDMI + VGA reporting as HDMI
+ */
+ if ((info->BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_A) ||
+ (info->BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_B)) {
+ if (info->BiosConnector[index].devices & (ATOM_DEVICE_CRT_SUPPORT)) {
+ info->BiosConnector[index].devices &= ~(ATOM_DEVICE_DFP_SUPPORT);
+ info->BiosConnector[index].ConnectorType = CONNECTOR_VGA;
+ info->BiosConnector[index].connector_object = 0;
+ } else
+ info->BiosConnector[index].devices &= ~(ATOM_DEVICE_CRT_SUPPORT);
+ }
}