<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>The update of the &quot;Xorg-geode-screensaver bug&quot;</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Hi, </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Binary package hint: xserver-xorg-video-geode</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; On Ubuntu and Fedora, when the screensaver is opened and then start(after 1 minute when I set), the screen will be in chaos. Few seconds later, the screen turns to be black as usual.</FONT> <FONT SIZE=2 FACE="Arial">If the user move the mouse or press the key, the screen can not be back again. We can not assure if this bug has been reported in the community.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; You can use the xscreensaver tools link: <A HREF="http://www.jwz.org/xscreensaver/download.html">http://www.jwz.org/xscreensaver/download.html</A>. I don</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial">t suggest us</FONT><FONT SIZE=2 FACE="Arial">e the gnome-screensaver to duplicated the bug on Ubuntu. Because the gnome-screensaver running on startx-desktop. The xscreensaver is a client program running on Xorg. When you installed it, you can run</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">xscreensaver-demo</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> to setup the screensaver environ</FONT><FONT SIZE=2 FACE="Arial">m</FONT><FONT SIZE=2 FACE="Arial">ent, after exit the demo interface, run</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">xscreensaver -nosplash</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> as a Linux common user (su username), it will start the screensaver after some times.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In my ubuntu workstation environment, when I used the VESA-driver, the phenomenon is normal af</FONT><FONT SIZE=2 FACE="Arial">ter wait for 1 minute, if you move the mouse or press the key, the screen can be back again. Once use the Geode-driver, the screen will be in black after wait for 1 minute, if you move the mouse or press the key, the screen can not be back again.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; My xf</FONT><FONT SIZE=2 FACE="Arial">86-video-geode version is 2.11.7, XServer version is 1.7.1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">BTW: Before running the xscreensaver on startx-desktop, If allow any program</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">running on the local machine to access your X server, you must run 'xhost</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">+localhost' , then run 'xscreensaver -command'</FONT><FONT SIZE=2 FACE="Arial"> (as a common Linux user).</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; With the debug of xscreensaver (client program). I found that if eschewing “</FONT><FONT SIZE=2 FACE="Arial">fade to black when blanking”</FONT><FONT SIZE=2 FACE="Arial">. (the xscreensaver old version &lt;5.0). The screensaver is properly display on Gnome-desktop. The specifically methods is</FONT><FONT SIZE=2 FACE="Arial"> modified the xscreensaver sourcecode (windows.c -&gt; raise_window function). If your xsceensaver version &gt;= 5.0, then you can setup the dialog box “</FONT><FONT SIZE=2 FACE="Arial">System -&gt; Preferences -&gt; Screensaver -&gt; Advanced”</FONT><FONT SIZE=2 FACE="Arial">, Not click the “</FONT><FONT SIZE=2 FACE="Arial">fade to block when blanking”</FONT><FONT SIZE=2 FACE="Arial"> option. If th</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial"> fading is true (Default: true), then when the screensaver activates, the current contents of the screen will fade to black instead of simply winking out. This only works on certain systems. A fade will also be done when switching graphics hacks (when the</FONT><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">cycle timer expires.).</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; So through this method and setup, Now the screensaver is properly display on our Geode platform. The next phase, I will research the “</FONT><FONT SIZE=2 FACE="Arial">fading”</FONT><FONT SIZE=2 FACE="Arial"> function is whether or not affected the parts of geode driver</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Through compare the</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">fading</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> option and</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">not fading</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> option, print the Xserver and Geode-driver debugging information on the SSH terminal. I found the</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">fading</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> option trigger the Geode-driver (lx_display.c -&gt; lx_crtc_gamma_set function), but t</FONT><FONT SIZE=2 FACE="Arial">h</FONT><FONT SIZE=2 FACE="Arial">e</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">not fading</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> option does not trigger this function.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I had a test, the following change:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">static void</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">lx_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 * red, CARD16 * green,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; CARD16 * blue, int size)</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">{</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; unsigned int dcfg;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; int i;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT> <FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; DebugP(&quot;lx_crtc_gamma_set /by Hunk\n&quot;);</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">#if 0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; assert(size == 256);</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; for (i = 0; i &lt; 256; i++) {</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int val = (*red &lt;&lt; 8) | *green | (*blue &gt;&gt; 8);</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; df_set_video_palette_entry(i, val);</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; }</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; /* df_set_video_palet</FONT><FONT SIZE=2 FACE="Arial">te_entry automatically turns on</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; * gamma for video - if this gets called, we assume that</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; * RandR wants it set for graphics, so reverse cimarron</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; */</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; dcfg = READ_VID32(DF_DISPLAY_CONFIG);</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; dcfg &amp;= ~DF_DCFG_GV_PAL_BYP;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; WRITE_VID32(DF_</FONT><FONT SIZE=2 FACE="Arial">DISPLAY_CONFIG, dcfg);</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">#endif</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">}</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">After re-make the Geode-driver, when I run the</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">fading</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> option, the client program ( xscreensaver ) also print the debugging information about “</FONT><FONT SIZE=2 FACE="Arial">fading…</FONT><FONT SIZE=2 FACE="Arial">/ fading done”</FONT><FONT SIZE=2 FACE="Arial">, now the screensaver is properly display. So through the test, I am sure that the main re</FONT><FONT SIZE=2 FACE="Arial">a</FONT><FONT SIZE=2 FACE="Arial">son is upper function (lx_crtc_gamma_set). </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">The</FONT> <FONT SIZE=2 FACE="Arial">‘</FONT><FONT SIZE=2 FACE="Arial">not display screensaver</FONT><FONT SIZE=2 FACE="Arial">’</FONT><FONT SIZE=2 FACE="Arial"> bug reason was found.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I will follow it…</FONT><FONT SIZE=2 FACE="Arial">.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Thanks,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Hunk Cui</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

</BODY>
</HTML>