Bug 23217 - X1400 sometimes flickering when switching to console
Summary: X1400 sometimes flickering when switching to console
Status: RESOLVED WONTFIX
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/radeonhd (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Luc Verhaegen
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-08 09:06 UTC by Jens Lody
Modified: 2011-11-07 15:38 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log (219.88 KB, text/plain)
2009-08-08 09:06 UTC, Jens Lody
no flags Details

Description Jens Lody 2009-08-08 09:06:17 UTC
Created attachment 28439 [details]
Xorg.0.log

Since the first version of radeonhd that works for my X1400 on Dell Inspiron 9400 (October 2007), I sometimes get a flickering panel when switching to a console.
It does not make any difference whether I use pure text-mode- or a framebuffer-console.
It looks a little bit like a crt that is not synchronized.
Switching to X and back to console helps, even if I sometimes have to switch more than one time.

I uploaded a (short, ugly) video to my server: http://apt.jenslody.de/images/flicker.mpg

If I run xserver with -logverbose 7, there are only two differences between a "good" and a "bad" switch to console:

--- X_to_console.godd   2009-08-08 11:50:37.000000000 +0200
+++ X_to_console.bad    2009-08-08 11:48:09.000000000 +0200
@@ -9,13 +9,14 @@
 (II) RADEONHD(0): FUNCTION: RHDMCIdleWait
 (II) RADEONHD(0): FUNCTION: rhdRestore
 (II) RADEONHD(0): FUNCTION: RHDMCRestore
+(EE) RADEONHD(0): RHDMCRestore: MC is still not idle!!!
 (II) RADEONHD(0): FUNCTION: rhdRestoreCursor
 (II) RADEONHD(0): FUNCTION: restoreCursor
 (II) RADEONHD(0): FUNCTION: RHDPLLsRestore
 (II) RADEONHD(0): FUNCTION: R500PLL1Restore
 (II) RADEONHD(0): FUNCTION: R500PLL1SetLow
 (II) RADEONHD(0): FUNCTION: PLL1Calibrate
-(II) RADEONHD(0): PLL1Calibrate: lock in 147 loops
+(II) RADEONHD(0): PLL1Calibrate: lock in 183 loops
 (II) RADEONHD(0): FUNCTION: R500PLL2Restore
 (II) RADEONHD(0): FUNCTION: R500PLL2Power
 (II) RADEONHD(0): FUNCTION: RHDLUTsRestore

I always use latest git-sources.
I adapted parts of the RHDMCIdleWait and include it in RHDMCRestore to give the rhdMC struct a better chance to be restored:

diff --git a/src/rhd_mc.c b/src/rhd_mc.c
index def871b..2525050 100644
--- a/src/rhd_mc.c
+++ b/src/rhd_mc.c
@@ -678,9 +678,19 @@ RHDMCRestore(RHDPtr rhdPtr)
 	return;
     }
 
-    if (MC->Idle(MC))
-	MC->Restore(MC);
-    else
+    CARD32 count = 1000;
+    do {
+	if (MC->Idle(MC))
+	{
+	    MC->Restore(MC);
+	    return;
+	}
+	usleep(1000);
+    } while (count--);
+
+//    if (MC->Idle(MC))
+//	MC->Restore(MC);
+//    else
 	xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR,
 		   "%s: MC is still not idle!!!\n", __func__);
 }

The error is not gone away, even if the "MC is still not idle!!!" error-message no longer occurs, so I think (hope) the memorycontroller gets restored.

Jens
Comment 1 Jeremy Huddleston Sequoia 2011-10-16 15:58:15 UTC
Does this issue occur with the preferred ati driver (xf86-vide-ati)?  If so, please move this to the Driver/Radeon component.  

Development of radeonhd has pretty much halted and development focus is on the ati driver.  Please see http://www.x.org/wiki/radeonhd

If the issue does not exist in the ati driver (or if there is no response to this message), this bug will be closed as WONTFIX unless someone contributes a patch.
Comment 2 Jeremy Huddleston Sequoia 2011-11-07 15:38:07 UTC
Closing due to lack of response.  Please reopen and move to the Driver/Radeon 
component if this issue persists with xf86-video-ati


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.