Mer/Status/SmartQ5/XAA

From Maemo Wiki
Revision as of 23:11, 17 July 2009 by imported>matan (Known issues)
Jump to navigationJump to search

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

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.