diff options
author | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-05-20 17:26:26 -0400 |
---|---|---|
committer | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-05-20 17:26:26 -0400 |
commit | 764cb73e8dec4040cdd418d249fc504399fca3ee (patch) | |
tree | 14998fac59c5caf61e9b1308d64c55cf986fa5b7 | |
parent | a3ee42207aab77d93655a82fdcb32be38268b85f (diff) |
Fix regular/"xinerama"/zaphod dualhead mode
- logic in RADEONUnblank() was wrong
- Calling RADEONSetupConnectors() on second instance screwed up the port info
- still seem to be HW cursor issues with zaphod mode
-rw-r--r-- | src/radeon_display.c | 7 | ||||
-rw-r--r-- | src/radeon_driver.c | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/radeon_display.c b/src/radeon_display.c index f3b86e6..fb345a9 100644 --- a/src/radeon_display.c +++ b/src/radeon_display.c @@ -2135,7 +2135,9 @@ void RADEONUnblank(ScrnInfoPtr pScrn) RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); RADEONConnector *pPort; - if (!pRADEONEnt->HasSecondary || (info->IsSwitching && !info->IsSecondary)) { + if (!pRADEONEnt->HasSecondary || + (pRADEONEnt->HasSecondary && !info->IsSwitching) || + (info->IsSwitching && (!info->IsSecondary))) { pPort = RADEONGetCrtcConnector(pScrn, 1); if (pPort) RADEONUnblankSet(pScrn, pPort); @@ -2158,7 +2160,8 @@ void RADEONUnblank(ScrnInfoPtr pScrn) } } - if (info->IsSwitching && info->IsSecondary) { + if ((pRADEONEnt->HasSecondary && !info->IsSwitching) || + (info->IsSwitching && info->IsSecondary)) { pPort = RADEONGetCrtcConnector(pScrn, 2); if (pPort) RADEONUnblankSet(pScrn, pPort); diff --git a/src/radeon_driver.c b/src/radeon_driver.c index b9cce22..933265f 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -2971,7 +2971,9 @@ static Bool RADEONPreInitControllers(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10 RADEONGetBIOSInfo(pScrn, pInt10); - RADEONSetupConnectors(pScrn); + if (!info->IsSecondary) { + RADEONSetupConnectors(pScrn); + } RADEONMapControllers(pScrn); RADEONGetClockInfo(pScrn); |