diff options
author | Alex Deucher <alex@botch2.com> | 2008-05-20 17:46:58 -0400 |
---|---|---|
committer | Alex Deucher <alex@botch2.com> | 2008-05-20 17:46:58 -0400 |
commit | 55e4469f59c82bb5762673de5f3f27d18b0bd9a3 (patch) | |
tree | 7a4b8ab29e5df8029e6749c91ed29f2d605ea56f | |
parent | 12f185634071980041aaac6265d89708b181b215 (diff) |
RADEON: enable cloning on multi-crtc cards
-rw-r--r-- | src/radeon_output.c | 15 |
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); |