diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2008-12-01 18:50:40 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2008-12-01 18:50:40 -0500 |
commit | 6e0c48958c6a50a639368e369ce72d813256aee4 (patch) | |
tree | 9a242ec162c41c0c9b6627c6fb0221457d6fedc3 /src/radeon_bios.c | |
parent | da021c36bbdf3bca31ee50ebe01cdb9495c09b36 (diff) |
Add quirk for r200 card with the primary dac wired to both ports
refactor load detection setup as a byproduct
should fix bug 18719
Diffstat (limited to 'src/radeon_bios.c')
-rw-r--r-- | src/radeon_bios.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/radeon_bios.c b/src/radeon_bios.c index 3e3613a4..37954d35 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -507,6 +507,16 @@ static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index) } } + /* r200 card with primary dac routed to both VGA and DVI - disable load detection + * otherwise you end up detecing load if either port is attached + */ + if (info->Chipset == PCI_CHIP_R200_QL && + PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1569 && + PCI_SUB_DEVICE_ID(info->PciInfo) == 0x514c && + info->BiosConnector[index].DACType == DAC_PRIMARY) { + info->BiosConnector[index].load_detection = FALSE; + } + } static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) @@ -586,6 +596,11 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) else info->BiosConnector[i].TMDSType = TMDS_INT; + if (info->BiosConnector[i].DACType == DAC_TVDAC) + info->BiosConnector[i].load_detection = FALSE; + else + info->BiosConnector[i].load_detection = TRUE; + RADEONApplyLegacyQuirks(pScrn, i); } @@ -668,9 +683,8 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "LCD DDC Info Table found!\n"); } } - } else { + } else info->BiosConnector[4].ddc_i2c.valid = FALSE; - } } } @@ -683,6 +697,7 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) /* assume s-video for now */ info->BiosConnector[5].ConnectorType = CONNECTOR_STV; info->BiosConnector[5].DACType = DAC_TVDAC; + info->BiosConnector[5].load_detection = FALSE; info->BiosConnector[5].TMDSType = TMDS_NONE; info->BiosConnector[5].ddc_i2c.valid = FALSE; } |