summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2009-03-13 17:41:59 -0400
committerAdam Jackson <ajax@redhat.com>2009-03-13 17:41:59 -0400
commit1b7090a4c0d6a38701fbfb928fac8e15d40fb81f (patch)
treee0a02ae2da635d9f227693390d8d4c8ed2998c14
parent104e13da74de37477e3a31a5de96c5ebb8fe888b (diff)
Add some more cases to the DVI single-link checks.
-rw-r--r--src/radeon_output.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c
index baa9592a..d0497313 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -403,11 +403,21 @@ radeon_mode_valid(xf86OutputPtr output, DisplayModePtr pMode)
}
}
- if (radeon_output->ConnectorType == CONNECTOR_DISPLAY_PORT &&
- radeon_output->MonType == MT_DFP) {
- /* DP to DVI converter, single-link only */
- if (pMode->Clock > 165000)
+ /* single link DVI check */
+ if (pMode->Clock > 165000 && radeon_output->MonType == MT_DFP) {
+ /* DP->DVI converter */
+ if (radeon_output->ConnectorType == CONNECTOR_DISPLAY_PORT)
return MODE_CLOCK_HIGH;
+
+ /* XXX some HDMI can do better than 165MHz on a link */
+ if (radeon_output->ConnectorType == CONNECTOR_HDMI_TYPE_A)
+ return MODE_CLOCK_HIGH;
+
+ /* XXX some R300 and R400 can actually do this */
+ if (!IS_AVIVO_VARIANT)
+ return MODE_CLOCK_HIGH;
+
+ /* XXX and some AVIVO can't */
}
if (radeon_output->active_device & (ATOM_DEVICE_LCD_SUPPORT)) {