summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@cube.(none)>2008-04-04 14:26:19 -0400
committerAlex Deucher <alex@cube.(none)>2008-04-04 14:26:19 -0400
commitc8e9a973aaded24aad567a0e36d0c78a05d6b2fd (patch)
treea82c7373c3930aa0f19313706197b04f5cefb5b0
parent091963a635b79884afe77c026eabb48972fbe175 (diff)
RADEON: add some quirks
-rw-r--r--src/radeon_atombios.c21
-rw-r--r--src/radeon_bios.c10
2 files changed, 31 insertions, 0 deletions
diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
index 85a2e71e..f0afba3c 100644
--- a/src/radeon_atombios.c
+++ b/src/radeon_atombios.c
@@ -35,6 +35,8 @@
#include "radeon_probe.h"
#include "radeon_macros.h"
+#include "ati_pciids_gen.h"
+
#include "xorg-server.h"
/* only for testing now */
@@ -1747,6 +1749,22 @@ RADEONATOMGetTVTimings(ScrnInfoPtr pScrn, int index, SET_CRTC_TIMING_PARAMETERS_
return TRUE;
}
+static void RADEONApplyATOMQuirks(ScrnInfoPtr pScrn, int index)
+{
+ RADEONInfoPtr info = RADEONPTR (pScrn);
+
+ /* Asus M2A-VM HDMI board lists the DVI port as HDMI */
+ if ((info->Chipset == PCI_CHIP_RS690_791E) &&
+ (PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1043) &&
+ (PCI_SUB_DEVICE_ID(info->PciInfo) == 0x826d)) {
+ if ((info->BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_A) &&
+ (info->BiosConnector[index].TMDSType == TMDS_LVTMA)) {
+ info->BiosConnector[index].ConnectorType = CONNECTOR_DVI_D;
+ }
+ }
+
+}
+
Bool
RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn)
{
@@ -1849,6 +1867,9 @@ RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn)
} else {
info->BiosConnector[i].hpd_mask = 0;
}
+
+ RADEONApplyATOMQuirks(pScrn, i);
+
}
/* CRTs/DFPs may share a port */
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index f97ed2ff..6be3528c 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -253,6 +253,16 @@ static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index)
info->BiosConnector[index].valid = FALSE;
}
}
+
+ /* Some RV100 cards with 2 VGA ports show up with DVI+VGA */
+ if (info->Chipset == PCI_CHIP_RV100_QY &&
+ PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1002 &&
+ PCI_SUB_DEVICE_ID(info->PciInfo) == 0x013a) {
+ if (info->BiosConnector[index].ConnectorType == CONNECTOR_DVI_I) {
+ info->BiosConnector[index].ConnectorType = CONNECTOR_VGA;
+ }
+ }
+
}
static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)