Marc Aurele La France wrote:
I'm not sure if this bug is connected with XFree86 at all. There are several bits of information that it is a kernel bug. It seems to me that affected kernel versions are 2.6.22 and 2.6.23. Check this:http://lkml.org/lkml/2007/6/21/216 .atyfb has __ALWAYS__ been broken, especially for laptops or adapters not initialised by BIOS/firmware. And it is unfixable primarily because its maintainers over the years don't really know what they're doing. That sounds harsh, but it is true. On ix86, I recommend you use vesafb instead, or (better) no kernel framebuffer at all.
Sorry, I've rather misled you. I don't use atyfb at all.
However, now that you have some kind of display, please send me a "-logverbose 5" log, and I'll see what I can do to mitigate atyfb's latest brain damage."XFree86 -logverbose 5" lock my system entirely. Even SysRq magic doesn't work. I've failed to trace the reason out.
BTW, I've managed to synchronize my screen. I've overridden pATI->LCDClock and used "Option "LCDSync"" in XF86Config (although I don't know for certain what it means). It seems to work, but XFree86 still corrupts console mode (i.e. after X server shutdown, all local ttys are in unusable state). And I haven't found the reason why clock values are set wrong.
And one more question. This is the part of atimode.c: ----------------------------------------------------------------- static void ATISwap ( int iScreen, ATIPtr pATI, ATIHWPtr pATIHW, Bool ToFB ) { pointer save, *from, *to; unsigned int iPlane = 0, PlaneMask = 1; CARD8 seq2, seq4, gra1, gra3, gra4, gra5, gra6, gra8; /* * This is only done for non-accelerator modes. If the video state on* server entry was an accelerator mode, the application that relinquished
* the console had better do the Right Thing (tm) anyway by saving and * restoring its own video memory contents. */ if (pATIHW->crtc != ATI_CRTC_VGA) return; -----------------------------------------------------------------I don't use kernel framebuffer, so I think my console mode isn't accelerated. But at this point, pATIHW->crtc is ATI_CRTC_MACH64. May it be the reason that my console is not restored on exit? Is this the only method to restore video state?
I've attached diff between 4.7.0 and my current version and my XF86Config to this message. I've tried to make changes as small as I can while saving the effect. So don't be surprised if you find traces I've left while debugging.
Best wishes, Anton Mayorov
Attachment:
Mayorov2.diff.gz
Description: GNU Zip compressed data
Attachment:
XF86Config.gz
Description: GNU Zip compressed data