summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.com>2008-05-20 17:46:58 -0400
committerAlex Deucher <alex@botch2.com>2008-05-20 17:46:58 -0400
commit55e4469f59c82bb5762673de5f3f27d18b0bd9a3 (patch)
tree7a4b8ab29e5df8029e6749c91ed29f2d605ea56f
parent12f185634071980041aaac6265d89708b181b215 (diff)
RADEON: enable cloning on multi-crtc cards
-rw-r--r--src/radeon_output.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 59bc9904..72cd5c9a 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2684,16 +2684,12 @@ static int
radeon_output_clones (ScrnInfoPtr pScrn, xf86OutputPtr output)
{
RADEONOutputPrivatePtr radeon_output = output->driver_private;
- RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn);
+ RADEONInfoPtr info = RADEONPTR(pScrn);
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn);
int o;
int index_mask = 0;
- /*
- * cards without a CRTC2 really need cloning enabled
- * for cards with 2 CRTC this may need more testing
- */
- if (pRADEONEnt->HasCRTC2)
+ if (IS_DCE3_VARIANT)
return index_mask;
/* LVDS is too wacky */
@@ -2707,8 +2703,11 @@ radeon_output_clones (ScrnInfoPtr pScrn, xf86OutputPtr output)
continue;
else if (radeon_clone->type == OUTPUT_LVDS) /* LVDS */
continue;
- else if ((radeon_output->DACType == DAC_TVDAC) &&
- (radeon_clone->DACType == DAC_TVDAC)) /* shared tvdac */
+ else if ((radeon_output->DACType != DAC_NONE) &&
+ (radeon_output->DACType == radeon_clone->DACType)) /* shared dac */
+ continue;
+ else if ((radeon_output->TMDSType != TMDS_NONE) &&
+ (radeon_output->TMDSType == radeon_clone->TMDSType)) /* shared tmds */
continue;
else
index_mask |= (1 << o);