#include <memory.h>
#include <linux/kd.h>
-#include <lib/base/econfig.h>
#include <lib/gdi/fb.h>
#ifndef FBIO_WAITFORVSYNC
screeninfo.width=0;
screeninfo.xoffset=screeninfo.yoffset=0;
screeninfo.bits_per_pixel=nbpp;
+
if (ioctl(fd, FBIOPUT_VSCREENINFO, &screeninfo)<0)
{
- perror("FBIOPUT_VSCREENINFO");
- printf("fb failed\n");
- return -1;
- }
+ // try single buffering
+ screeninfo.yres_virtual=screeninfo.yres=nyRes;
+
+ if (ioctl(fd, FBIOPUT_VSCREENINFO, &screeninfo)<0)
+ {
+ perror("FBIOPUT_VSCREENINFO");
+ printf("fb failed\n");
+ return -1;
+ }
+ eDebug(" - double buffering not available.");
+ } else
+ eDebug(" - double buffering available!");
+
+ m_number_of_pages = screeninfo.yres_virtual / nyRes;
+
+ ioctl(fd, FBIOGET_VSCREENINFO, &screeninfo);
+
if ((screeninfo.xres!=nxRes) && (screeninfo.yres!=nyRes) && (screeninfo.bits_per_pixel!=nbpp))
{
eDebug("SetMode failed: wanted: %dx%dx%d, got %dx%dx%d",