Mer/Status/SmartQ5/XAA
Mer is back : Please visit http://www.merproject.org to learn more about this news. |
[edit] Kernel changes required
XAA needs off screen video ram for some operations. In order to get this, the kernel needs to be changed:
Enable config option: CONFIG_FB_S3C_VIRTUAL_SCREEN
Replace line 764 of drivers/video/s3c/s3cfb.c:
finfo->fb.fix.smem_len = finfo->fb.var.xres_virtual * finfo->fb.var.yres_virtual * s3c_fimd.bytes_per_pixel;
by something like:
finfo->fb.fix.smem_len = 800 * 1200 * 2;
[edit] Driver
fbdev driver with XAA support for S3C6410 is here:
Source: http://my.arava.co.il/~matan/770/fbdev.c
This file should replace src/fbdev.c file in xserver-xorg-video-fbdev.
Binary: http://my.arava.co.il/~matan/770/fbdev_drv.so
The binary goes in /usr/lib/modules/drivers . It works in Mer, and probably in original firmware as well.
[edit] Known issues
- Some conflict with hildon-desktop causes X and hildon-desktop to consume 100% CPU time when XAA is used. This happens even if the driver initializes XAA without implementing any function, so I do not believe it is a problem in the driver code, but in X or in hildon-desktop. There is no problem when using LXDE. I really don't know how to debug this problem, so I'll be thankful for any suggestions.
- Not all functions are tested.
- Not all functions are implemented.
- There are still problems in ScreenToScreenCopy - apparent when dragging a window. It appears as a symptom of a cache coherency issue, but I am calling __clear_cache() in what should be the correct places, and I modified the kernel to allocate FB with _coherent, instead of _writecombine, and it does not appear to help.
- This page was last modified on 22 September 2010, at 10:17.
- This page has been accessed 9,712 times.