summaryrefslogtreecommitdiff
path: root/src
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 10:01:19 -0400
commita00db22e52631ccbf5bbcbd8175802f9b3407521 (patch)
tree2aa9e01190efa184b132a3e22384c4145c390c55 /src
parent486684ba68bc54c54cf86a9e69d224a13bb0a00d (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')
-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 10158a8d..3ab5fac5 100644
--- a/src/radeon_atombios.c
+++ b/src/radeon_atombios.c
@@ -1566,12 +1566,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) &&
@@ -1580,6 +1574,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);
+ }
}