Mer/Status/SmartQ5/XAA
m (Mer/Hardware/SmartQ5/XAA moved to Mer/Status/SmartQ5/XAA: keep the /Status for Hardware together) |
m |
||
Line 34: | Line 34: | ||
* 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. | * 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. | ||
+ | |||
+ | [[Category:Mer]] |
Revision as of 15:33, 18 July 2009
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;
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.
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.