Hi, some time ago, I posted a message concerning problems with my PicassoII video adapter and flickering pixels. It seems that I found a solution.
It turned out that the problem lies in the clgenfb driver. The driver sets the clock value (mclk) for the video memory chip timing of the Cirrus Logic chip. The value used in the current version I got from the Sarge CD set (3.1r1) uses a value of 0x22 (kernel-image-2.4.27). This is definitively too high for my board (and probably also for other PicassoII boards). The overclocking of the video memory results in flickering pixels and scrolling messes up the lines that are scrolled (random inversion of pixels). By editing clgenfb.c and compiling my own kernel, I tested suitable values for mclk. Problems start with a value of 0x1f. Currently, I am using 0x1e, which seems to work fine. According to comments I found in the clgenfb.c file, a value of 0x1c was used in earlier versions. Maybe this would be a safer choice. I attached a diff file to this message showing which code lines have to be changed to solve the problem for the PicassoII board. Could someone please forward this file to someone taking care of the clgenfb module or tell me which steps I should do? I would highly appreciate if the code in the main debian source repository was adapted to the new values. By doing so, owners of the PicassoII board will get a much better display with future kernel versions. Best Regards, Peter
209c209 < 0x22 }, --- > 0x1e }, 1329c1329 < vga_wseq (fb_info->regs, CL_SEQR1F, 0x22); /* ##vorher 22 MCLK select */ --- > vga_wseq (fb_info->regs, CL_SEQR1F, 0x1e); > /* ##vorher 22 MCLK select */ 1407c1407 < vga_wseq (fb_info->regs, CL_SEQR1F, 0x22); /* ### vorher 1c MCLK select */ --- > vga_wseq (fb_info->regs, CL_SEQR1F, 0x1e); > /* ### vorher 1c MCLK select */ 1474c1474 < vga_wseq (fb_info->regs, CL_SEQR1F, 0x22); /* MCLK select */ --- > vga_wseq (fb_info->regs, CL_SEQR1F, 0x1e); > /* MCLK select */ 1557c1557 < vga_wseq (fb_info->regs, CL_SEQR1F, 0x22); /* MCLK select */ --- > vga_wseq (fb_info->regs, CL_SEQR1F, 0x1e); > /* MCLK select */