Цитата(sasamy @ Jan 24 2010, 03:23)

Забавно - а данные из sdram в lcd чертик из табакерки перекидывает 25 раз в секунду ?

Да, 25 раз в секунду
Дисплей имеет 18-bit шину. Процессор пишет 32-bit словами. Старшие 14 разрядов не используются.
Организация FB подогнана под железо, чтобы цикл записи был оптимизирован по скорости
Код
....
static struct fb_var_screeninfo mmarm9_ili9325_var __devinitdata = {
.xres = X_RES,
.yres = Y_RES,
.xres_virtual = X_RES,
.yres_virtual = Y_RES,
.height = -1,
.width = -1,
.activate = FB_ACTIVATE_NOW,
.vmode = FB_VMODE_NONINTERLACED,
.bits_per_pixel = B_PP,
.red = {12, 6, 0 },
.green = { 6, 6, 0 },
.blue = { 0, 6, 0 },
.nonstd = 0,
};
.....
static int mmarm9_ili9325_thread(void *param)
{
int ndx;
u32 *videodata;
struct mmarm9_ili9325_info *sinfo = (struct mmarm9_ili9325_info *)param;
printk(KERN_ALERT "ILI9325 Thread Enter\n");
while(!kthread_should_stop()) {
videodata = (u32*)sinfo->buffer;
/* X=0,Y=0 */
iowrite32(0x40,sinfo->ir);
iowrite32(0x0,sinfo->dr);
iowrite32(0x42,sinfo->ir);
iowrite32(0x0,sinfo->dr);
iowrite32(0x44,sinfo->ir);
/* Update LCD VIDEO RAM from FrameBuffer */
for ( ndx=0; ndx< MEM_LEN>>2; ndx++) iowrite32(*videodata++,sinfo->dr);
/* Frames Per Second = 25 */
schedule_timeout_interruptible(HZ/25);
}
printk(KERN_ALERT "ILI9325 Thread Exit\n");
return 0;
}
....