summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)) {