I modified a bit the patch in order to have the correct size of screen in all 
buffermodes

*******************************************************
--- DirectFB-1.1.1/systems/fbdev/fbdev.c        2008-04-07 09:44:07.000000000 
+0200
+++ DirectFB-1.1.1_modifie/systems/fbdev/fbdev.c        2008-04-10 
13:31:07.000000000 +0200
@@ -1888,6 +1890,8 @@ dfb_fbdev_set_mode( CoreSurface
           FBDEV_IOCTL( FBIOGET_VSCREENINFO, &var );

           vxres = var.xres_virtual;
+
+          var.yres_virtual = ( (var.yres_virtual > vyres) ? vyres : 
var.yres_virtual ); // For FB_S1D13XXX (o
n AT91RM9200-EK)
           switch (config->buffermode) {
           case DLBM_TRIPLE:
                vyres = var.yres_virtual / 3;
*******************************************************

and now it is working well in all buffermodes ! :) But maybe this patch can 
affect other framebuffers... (I think it does not) If it does not, is it 
possible to include it in CVS?


Regards,

Guillaume GARDET




-------- Message d'origine--------
De: [EMAIL PROTECTED] de la part de GARDET Guillaume
Date: jeu. 10/04/2008 09:44
À: directfb-dev@directfb.org
Objet : [directfb-dev] Patch for fbdev.c for epson S1D13XXX framebuffer 
-DirectFB 1.1.1
 

Hi list,

I am running DirectFB on the board AT91RM9200-EK which uses the epson S1D13XXX 
framebuffer (FB_S1D13XXX) and I had a bug with DirectFB. 
My screen is 640x480 and the framebuffer mode is : DLBM_BACKVIDEO. So, the 
virtual size should be 640x960 and DirectFB reported a size of 640x1024, so I 
get a screen size of 640x512 and I lost the bottom of the screen... So, I wrote 
a little patch :

*******************************************************
--- DirectFB-1.1.1/systems/fbdev/fbdev.c        2008-04-10 09:23:23.000000000 
+0200
+++ DirectFB-1.1.1/systems/fbdev/fbdev.c        2008-04-07 09:44:07.000000000 
+0200
@@ -1893,7 +1895,8 @@ dfb_fbdev_set_mode( CoreSurface
                vyres = var.yres_virtual / 3;
                break;
           case DLBM_BACKVIDEO:
-               vyres = var.yres_virtual / 2;
+//               vyres = var.yres_virtual / 2;
+                 vyres = ( (var.yres_virtual > vyres) ? vyres : 
var.yres_virtual ) / 2;        // For FB_S1D1
3XXX (on AT91RM9200-EK)
                break;
           default:
                vyres = var.yres_virtual;
*******************************************************

and now it is working well ! :) But I do not know if this patch can affect 
other framebuffers... If it does not, is it possible to include it in CVS?


Regards,

Guillaume GARDET





--- DirectFB-1.1.1/systems/fbdev/fbdev.c	2008-04-07 09:44:07.000000000 +0200
+++ DirectFB-1.1.1_modifie/systems/fbdev/fbdev.c	2008-04-10 13:31:07.000000000 +0200
@@ -1888,6 +1890,8 @@ dfb_fbdev_set_mode( CoreSurface         
           FBDEV_IOCTL( FBIOGET_VSCREENINFO, &var );
 
           vxres = var.xres_virtual;
+
+	   var.yres_virtual = ( (var.yres_virtual > vyres) ? vyres : var.yres_virtual ); // For FB_S1D13XXX (on AT91RM9200-EK)
           switch (config->buffermode) {
           case DLBM_TRIPLE:
                vyres = var.yres_virtual / 3;
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to