diff options
author | Alex Deucher <alex@cube.(none)> | 2008-04-04 14:26:19 -0400 |
---|---|---|
committer | Alex Deucher <alex@cube.(none)> | 2008-04-04 14:26:19 -0400 |
commit | c8e9a973aaded24aad567a0e36d0c78a05d6b2fd (patch) | |
tree | a82c7373c3930aa0f19313706197b04f5cefb5b0 | |
parent | 091963a635b79884afe77c026eabb48972fbe175 (diff) |
RADEON: add some quirks
-rw-r--r-- | src/radeon_atombios.c | 21 | ||||
-rw-r--r-- | src/radeon_bios.c | 10 |
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) |