diff -Naur embedded.org/qscreenlinuxfb_qws.cpp embedded/qscreenlinuxfb_qws.cpp --- embedded.org/qscreenlinuxfb_qws.cpp 2012-04-17 17:20:00.754113572 +0200 +++ embedded/qscreenlinuxfb_qws.cpp 2012-04-17 17:23:32.745968031 +0200 @@ -338,6 +338,7 @@ } d_ptr->driverType = strcmp(finfo.id, "8TRACKFB") ? GenericDriver : EInk8Track; + d_ptr->driverType = strcmp(finfo.id, "udlfb") ? d_ptr->driverType : UdlFb; if (finfo.type == FB_TYPE_VGA_PLANES) { qWarning("VGA16 video mode not supported"); @@ -1252,6 +1253,14 @@ ioctl(d_ptr->fd, 0x46a2, 1); else ioctl(d_ptr->fd, 0x46a2, 0); + } else if ( d_ptr->driverType == UdlFb ) { + struct dloarea area; + area.x = r.left(); + area.y = r.top(); + area.w = r.width(); + area.h = r.height(); + + ioctl ( d_ptr->fd, DLFB_IOCTL_REPORT_DAMAGE, &area ); } } diff -Naur embedded.org/qscreenlinuxfb_qws.h embedded/qscreenlinuxfb_qws.h --- embedded.org/qscreenlinuxfb_qws.h 2012-04-17 17:20:36.265969766 +0200 +++ embedded/qscreenlinuxfb_qws.h 2012-04-17 17:08:28.113958146 +0200 @@ -48,6 +48,16 @@ struct fb_var_screeninfo; struct fb_fix_screeninfo; +#define DLFB_IOCTL_REPORT_DAMAGE 0xAA + +struct dloarea { + int x, y; + int w, h; + int x2, y2; +}; + + + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -87,7 +97,7 @@ virtual bool useOffscreen(); - enum DriverTypes { GenericDriver, EInk8Track }; + enum DriverTypes { GenericDriver, EInk8Track, UdlFb }; virtual void disconnect(); virtual void shutdownDevice();