A better frame buffer driver for Android Zaurus

I studied Brilliant Service's mxcfb.c patch more carefully.
o Android Zaurus: Android on Armadillo - Patch for frickering

An interesting thing is set_par() returns immediately and set_par_init() is introduced. I contacted Brilliant Service and they kindly told me that FBIOPUT_VSCREENINFO in fbmem.c calls set_par() all the time. Then I looked into pxafb.c and found a bit of hardware access in set_par(). It would be problematic.

And there is another possibility of improvement. With the last patch, frame buffer is flipped between two buffers. Changing calculation of DMA address could make it dot by dot panning.

Anyway, I quickly modified the code and it works for me.
o pxafb-patches.tar.gz

Scrolling in web pages becomes way faster. And some issues in updating display are gone. I had problems in navigating on Home menu. First I thought key event issue but turned out to be display updating issue.

The tar file has two patch files.
o pxafb-doublebuffer.patch: patch against vanilla kernel (
o pxafb-oe-doublebuffer.patch: patch against OpenEmbedded linux-rp-2.6.23

pxafb-oe-doublebuffer.patch gives better idea how the implementation is. pxafb-doublebuffer.patch can be actually applied as a patch to vanilla kernel driver.


posted by 安藤恐竜 at 19:01 | Comment(0) | TrackBack(0) | 日記
Comments for this entry
Leave your comment
Name: [Must]

EMail: [Must]

URL: [Must]

Comment: [Must]

Confirmation Code: [Must]

Type in alphabets what you see in this image.

Trackbacks to this entry