Bläddra i källkod

package/directfb: remove package

directfb.org is dead so since commit
89ab2a5a3f4588891ab1e9e76feb8c3f69402d5c (from 2022), we are
downloading from sources.buildroot.net.

Clearly DirectFB 1.x is no longer maintained. A DirectFB 2.x project
is now at https://github.com/directfb2/, but despite an attempt in
August 2024 [1], it still isn't packaged in Buildroot. Therefore it's
time to drop directfb 1.x, which doesn't prevent in the future from
adding directfb 2.x.

[1] https://lore.kernel.org/buildroot/20240705132544.351613-1-shengwen1997.tw@gmail.com/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Thomas Petazzoni 7 månader sedan
förälder
incheckning
47f70b194e

+ 0 - 6
.checkpackageignore

@@ -399,12 +399,6 @@ package/dht/0001-cmake.patch lib_patch.Upstream
 package/dillo/0001-usr-local-include.patch lib_patch.Upstream
 package/dillo/0002-Fix-openssl-detection.patch lib_patch.Upstream
 package/dillo/0004-fix-build-with-gcc-10.patch lib_patch.Upstream
-package/directfb/0001-fix-missing-davinci-voodoo-header.patch lib_patch.Upstream
-package/directfb/0002-imlib2-config.patch lib_patch.Upstream
-package/directfb/0003-setregion-lock.patch lib_patch.Upstream
-package/directfb/0004-use-gcc-link.patch lib_patch.Upstream
-package/directfb/0005-add-missing-idivine-header.patch lib_patch.Upstream
-package/directfb/0006-fix-client-gfx_state-initialisation.patch lib_patch.Upstream
 package/dmalloc/0001-configure-fix-build-on-mips.patch lib_patch.Upstream
 package/dmalloc/0003-configure-allow-overriding-some-tests.patch lib_patch.Upstream
 package/dmalloc/0004-Makefile-use-the-configure-detected-or-user-supplied.patch lib_patch.Upstream

+ 7 - 2
Config.in.legacy

@@ -146,6 +146,13 @@ endif
 
 comment "Legacy options removed in 2025.02"
 
+config BR2_PACKAGE_DIRECTFB
+	bool "directfb has been removed"
+	select BR2_LEGACY
+	help
+	  This package was no longer maintained upstream, so it was
+	  dropped from Buildroot.
+
 config BR2_PACKAGE_SDL2_DIRECTFB
 	bool "sdl2 directfb support removed"
 	select BR2_LEGACY
@@ -5822,7 +5829,6 @@ config BR2_PACKAGE_KOBS_NG
 config BR2_PACKAGE_SAWMAN
 	bool "sawman package removed"
 	select BR2_LEGACY
-	select BR2_PACKAGE_DIRECTFB_SAWMAN
 	help
 	  This option has been removed because the sawman package no
 	  longer exists: it was merged inside DirectFB itself. This
@@ -5832,7 +5838,6 @@ config BR2_PACKAGE_SAWMAN
 config BR2_PACKAGE_DIVINE
 	bool "divine package removed"
 	select BR2_LEGACY
-	select BR2_PACKAGE_DIRECTFB_DIVINE
 	help
 	  This option has been removed because the divine package no
 	  longer exists: it was merged inside DirectFB itself. This

+ 0 - 1
package/Config.in

@@ -344,7 +344,6 @@ comment "Graphic applications"
 
 comment "Graphic libraries"
 	source "package/cegui/Config.in"
-	source "package/directfb/Config.in"
 	source "package/efl/Config.in"
 	source "package/fb-test-app/Config.in"
 	source "package/fbdump/Config.in"

+ 0 - 1726
package/directfb/0001-fix-missing-davinci-voodoo-header.patch

@@ -1,1726 +0,0 @@
-The archive of directfb-1.6.3 is still missing some header files against
-the tagged git tree of directfb. The following files are missing.
-
-gfxdrivers/davinci/davinci_c64x.h
-gfxdrivers/davinci/davincifb.h
-gfxdrivers/davinci/davinci_gfxdriver.h
-tests/voodoo/voodoo_test.h
-
-The headers of course are needed to be able to build every module of
-directfb. The headers are taken from the git tree of directfb
-http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=38b784549bc59bb07c58bb29667cb658695d39a7,
-tag DIRECTFB_1_6_3, SHA1ID 38b784549bc59bb07c58bb29667cb658695d39a7.
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-
-diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h
---- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h	1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h	2013-04-07 21:33:25.928530187 +0200
-@@ -0,0 +1,935 @@
-+/*
-+   TI Davinci driver - C64X+ DSP Library
-+
-+   (c) Copyright 2008  directfb.org
-+   (c) Copyright 2007  Telio AG
-+
-+   Written by Denis Oliver Kropp <dok@directfb.org> and
-+              Olaf Dreesen <olaf@directfb.org>.
-+
-+   All rights reserved.
-+
-+   This library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU General Public License
-+   version 2 as published by the Free Software Foundation.
-+
-+   This library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public
-+   License along with this library; if not, write to the
-+   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+   Boston, MA 02111-1307, USA.
-+*/
-+
-+#ifndef __DAVINCI_C64X_H__
-+#define __DAVINCI_C64X_H__
-+
-+#include <unistd.h>
-+
-+#include <directfb.h>
-+
-+#include <direct/messages.h>
-+#include <direct/trace.h>
-+
-+#include <linux/c64x.h>
-+
-+#define mb() __asm__ __volatile__ ("" : : : "memory")
-+
-+/**********************************************************************************************************************/
-+
-+typedef struct {
-+     int                 magic;
-+
-+     int                 fd;
-+     c64xTaskControl    *ctl;
-+     void               *mem;
-+
-+     c64xTask           *QueueL;
-+} DavinciC64x;
-+
-+typedef struct {
-+     int                 magic;
-+     unsigned int        max_tasks;
-+     unsigned int        num_tasks;
-+     c64xTask           *tasks;
-+} DavinciC64xTasks;
-+
-+typedef enum {
-+     C64X_TEF_NONE       = 0x0000,
-+     C64X_TEF_RESET      = 0x0001
-+} DavinciC64xEmitFlags;
-+
-+/**********************************************************************************************************************/
-+
-+DFBResult davinci_c64x_open    ( DavinciC64x *c64x );
-+
-+DFBResult davinci_c64x_close   ( DavinciC64x *c64x );
-+
-+DFBResult davinci_c64x_wait_low( DavinciC64x *c64x );
-+
-+/**********************************************************************************************************************/
-+
-+DFBResult davinci_c64x_tasks_init   ( DavinciC64xTasks *tasks,
-+                                      unsigned int      size );
-+
-+DFBResult davinci_c64x_tasks_destroy( DavinciC64xTasks *tasks );
-+
-+/**********************************************************************************************************************/
-+
-+DFBResult davinci_c64x_emit_tasks( DavinciC64x          *c64x,
-+                                   DavinciC64xTasks     *tasks,
-+                                   DavinciC64xEmitFlags  flags );
-+
-+/**********************************************************************************************************************/
-+
-+static const char *state_names[] = { "DONE", "ERROR", "TODO", "RUNNING" };
-+
-+static inline c64xTask *
-+c64x_get_task( DavinciC64x *c64x )
-+{
-+     c64xTaskControl *ctl   = c64x->ctl;
-+     uint32_t         idx   = ctl->QL_arm;
-+     uint32_t         next  = (idx + 1) & C64X_QUEUE_MASK;
-+     c64xTask        *task  = &c64x->QueueL[idx];
-+     int              loops = 0;
-+     uint32_t         idle  = 0;
-+
-+     /* Wait for the entry (and next) to be processed by the DSP (rare case). */
-+     while (task->c64x_flags & C64X_FLAG_TODO || ctl->QL_dsp == next) {
-+          if (loops > 666 || (idle && ctl->idlecounter - idle > 666)) {
-+               c64xTask *dsp_task = &c64x->QueueL[ctl->QL_dsp];
-+
-+               D_PERROR( "Davinci/C64X+: Blocked! [DSP %d / %d (%s), ARM %d / %d (%s)]\n",
-+                         ctl->QL_dsp,
-+                         (dsp_task->c64x_function >> 2) & 0x3fff,
-+                         state_names[dsp_task->c64x_function & 3],
-+                         ctl->QL_arm,
-+                         (task->c64x_function >> 2) & 0x3fff,
-+                         state_names[task->c64x_function & 3] );
-+
-+               break;
-+          }
-+
-+          idle = ctl->idlecounter;
-+
-+          /* Queue is full, waiting 10-20ms should not be too bad. */
-+          if (loops++ > 10)
-+               usleep( 5000 );
-+     }
-+
-+     return task;
-+}
-+
-+static inline void
-+c64x_submit_task( DavinciC64x *c64x, c64xTask *task )
-+{
-+     c64xTaskControl *ctl  = c64x->ctl;
-+     uint32_t         idx  = ctl->QL_arm;
-+     uint32_t         next = (idx + 1) & C64X_QUEUE_MASK;
-+
-+     mb();
-+
-+     ctl->QL_arm = next;
-+
-+     mb();
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_wb_inv_range( DavinciC64x   *c64x,
-+                           unsigned long  start,
-+                           u32            length,
-+                           u32            func )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = start;
-+     task->c64x_arg[1] = length;
-+     task->c64x_arg[2] = func;
-+
-+     task->c64x_function = C64X_WB_INV_RANGE | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_write_back_all( DavinciC64x *c64x )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_function = C64X_WRITE_BACK_ALL | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_load_block__L( DavinciC64xTasks *tasks,
-+                            unsigned long     words,
-+                            u32               num,
-+                            u32               flags )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = words;
-+     task->c64x_arg[1] = num;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_load_block( DavinciC64x   *c64x,
-+                         unsigned long  words,
-+                         u32            num,
-+                         u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = words;
-+     task->c64x_arg[1] = num;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_fetch_uyvy( DavinciC64x   *c64x,
-+                         unsigned long  dest,
-+                         unsigned long  source,
-+                         u32            pitch,
-+                         u32            height,
-+                         u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = source;
-+     task->c64x_arg[2] = pitch;
-+     task->c64x_arg[3] = height;
-+     task->c64x_arg[4] = flags;
-+
-+     task->c64x_function = C64X_FETCH_UYVY | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_mc( DavinciC64x   *c64x,
-+                 unsigned long  dest,
-+                 u32            dpitch,
-+                 unsigned long  source0,
-+                 unsigned long  source1,
-+                 u32            spitch,
-+                 u32            height,
-+                 int            func )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = source0;
-+     task->c64x_arg[3] = source1;
-+     task->c64x_arg[4] = spitch;
-+     task->c64x_arg[5] = height;
-+
-+     task->c64x_function = func | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_put_idct_uyvy_16x16__L( DavinciC64xTasks *tasks,
-+                                     unsigned long     dest,
-+                                     u32               pitch,
-+                                     u32               flags )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_put_idct_uyvy_16x16( DavinciC64x   *c64x,
-+                                  unsigned long  dest,
-+                                  u32            pitch,
-+                                  u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_put_mc_uyvy_16x16__L( DavinciC64xTasks *tasks,
-+                                   unsigned long     dest,
-+                                   u32               pitch,
-+                                   u32               flags )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_put_mc_uyvy_16x16( DavinciC64x   *c64x,
-+                                unsigned long  dest,
-+                                u32            pitch,
-+                                u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_put_sum_uyvy_16x16__L( DavinciC64xTasks *tasks,
-+                                    unsigned long     dest,
-+                                    u32               pitch,
-+                                    u32               flags )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_put_sum_uyvy_16x16( DavinciC64x   *c64x,
-+                                 unsigned long  dest,
-+                                 u32            pitch,
-+                                 u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = flags;
-+
-+     task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_dva_begin_frame__L( DavinciC64xTasks *tasks,
-+                                 u32               pitch,
-+                                 unsigned long     current,
-+                                 unsigned long     past,
-+                                 unsigned long     future,
-+                                 u32               flags )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = pitch;
-+     task->c64x_arg[1] = current;
-+     task->c64x_arg[2] = past;
-+     task->c64x_arg[3] = future;
-+     task->c64x_arg[4] = flags;
-+
-+     task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_dva_begin_frame( DavinciC64x   *c64x,
-+                              u32            pitch,
-+                              unsigned long  current,
-+                              unsigned long  past,
-+                              unsigned long  future,
-+                              u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = pitch;
-+     task->c64x_arg[1] = current;
-+     task->c64x_arg[2] = past;
-+     task->c64x_arg[3] = future;
-+     task->c64x_arg[4] = flags;
-+
-+     task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_dva_motion_block__L( DavinciC64xTasks *tasks,
-+                                  unsigned long     macroblock )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = macroblock;
-+
-+     task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_dva_motion_block( DavinciC64x   *c64x,
-+                               unsigned long  macroblock )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = macroblock;
-+
-+     task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_dva_idct( DavinciC64x   *c64x,
-+				   unsigned long  dest,
-+				   u32            pitch,
-+				   unsigned long  source )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = source;
-+
-+     task->c64x_function = C64X_DVA_IDCT | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_put_uyvy_16x16( DavinciC64x   *c64x,
-+                             unsigned long  dest,
-+                             u32            pitch,
-+                             unsigned long  source,
-+                             u32            flags )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = source;
-+     task->c64x_arg[3] = flags;
-+
-+     task->c64x_function = C64X_PUT_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_dither_argb__L( DavinciC64xTasks *tasks,
-+                             unsigned long     dst_rgb,
-+                             unsigned long     dst_alpha,
-+                             u32               dst_pitch,
-+                             unsigned long     source,
-+                             u32               src_pitch,
-+                             u32               width,
-+                             u32               height )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dst_rgb;
-+     task->c64x_arg[1] = dst_alpha;
-+     task->c64x_arg[2] = dst_pitch;
-+     task->c64x_arg[3] = source;
-+     task->c64x_arg[4] = src_pitch;
-+     task->c64x_arg[5] = width;
-+     task->c64x_arg[6] = height;
-+
-+     task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_dither_argb( DavinciC64x   *c64x,
-+                          unsigned long  dst_rgb,
-+                          unsigned long  dst_alpha,
-+                          u32            dst_pitch,
-+                          unsigned long  source,
-+                          u32            src_pitch,
-+                          u32            width,
-+                          u32            height )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dst_rgb;
-+     task->c64x_arg[1] = dst_alpha;
-+     task->c64x_arg[2] = dst_pitch;
-+     task->c64x_arg[3] = source;
-+     task->c64x_arg[4] = src_pitch;
-+     task->c64x_arg[5] = width;
-+     task->c64x_arg[6] = height;
-+
-+     task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_fill_16__L( DavinciC64xTasks *tasks,
-+                         unsigned long     dest,
-+                         u32               pitch,
-+                         u32               width,
-+                         u32               height,
-+                         u32               value )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = width;
-+     task->c64x_arg[3] = height;
-+     task->c64x_arg[4] = value;
-+
-+     task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_fill_16( DavinciC64x   *c64x,
-+                      unsigned long  dest,
-+                      u32            pitch,
-+                      u32            width,
-+                      u32            height,
-+                      u32            value )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = width;
-+     task->c64x_arg[3] = height;
-+     task->c64x_arg[4] = value;
-+
-+     task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_fill_32__L( DavinciC64xTasks *tasks,
-+                         unsigned long     dest,
-+                         u32               pitch,
-+                         u32               width,
-+                         u32               height,
-+                         u32               value )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = width;
-+     task->c64x_arg[3] = height;
-+     task->c64x_arg[4] = value;
-+
-+     task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_fill_32( DavinciC64x   *c64x,
-+                      unsigned long  dest,
-+                      u32            pitch,
-+                      u32            width,
-+                      u32            height,
-+                      u32            value )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = pitch;
-+     task->c64x_arg[2] = width;
-+     task->c64x_arg[3] = height;
-+     task->c64x_arg[4] = value;
-+
-+     task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_16__L( DavinciC64xTasks *tasks,
-+                         unsigned long     dest,
-+                         u32               dpitch,
-+                         unsigned long     src,
-+                         u32               spitch,
-+                         u32               width,
-+                         u32               height )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = spitch;
-+     task->c64x_arg[4] = width;
-+     task->c64x_arg[5] = height;
-+
-+     task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_16( DavinciC64x   *c64x,
-+                      unsigned long  dest,
-+                      u32            dpitch,
-+                      unsigned long  src,
-+                      u32            spitch,
-+                      u32            width,
-+                      u32            height )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = spitch;
-+     task->c64x_arg[4] = width;
-+     task->c64x_arg[5] = height;
-+
-+     task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_32__L( DavinciC64xTasks *tasks,
-+                         unsigned long     dest,
-+                         u32               dpitch,
-+                         unsigned long     src,
-+                         u32               spitch,
-+                         u32               width,
-+                         u32               height )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = spitch;
-+     task->c64x_arg[4] = width;
-+     task->c64x_arg[5] = height;
-+
-+     task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_32( DavinciC64x   *c64x,
-+                      unsigned long  dest,
-+                      u32            dpitch,
-+                      unsigned long  src,
-+                      u32            spitch,
-+                      u32            width,
-+                      u32            height )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = spitch;
-+     task->c64x_arg[4] = width;
-+     task->c64x_arg[5] = height;
-+
-+     task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_stretch_32__L( DavinciC64xTasks *tasks,
-+                            unsigned long     dest,
-+                            u32               dpitch,
-+                            unsigned long     src,
-+                            u32               spitch,
-+                            u32               dw,
-+                            u32               dh,
-+                            u32               sw,
-+                            u32               sh,
-+                            const DFBRegion  *clip )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = src;
-+     task->c64x_arg[2] = dpitch   | (spitch   << 16);
-+     task->c64x_arg[3] = dh       | (dw       << 16);
-+     task->c64x_arg[4] = sh       | (sw       << 16);
-+     task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
-+     task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
-+
-+     if (sw > dw && sh > dh)
-+          task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
-+     else
-+          task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_stretch_32( DavinciC64x     *c64x,
-+                         unsigned long    dest,
-+                         u32              dpitch,
-+                         unsigned long    src,
-+                         u32              spitch,
-+                         u32              dw,
-+                         u32              dh,
-+                         u32              sw,
-+                         u32              sh,
-+                         const DFBRegion *clip )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = src;
-+     task->c64x_arg[2] = dpitch   | (spitch   << 16);
-+     task->c64x_arg[3] = dh       | (dw       << 16);
-+     task->c64x_arg[4] = sh       | (sw       << 16);
-+     task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
-+     task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
-+
-+     if (sw > dw && sh > dh)
-+          task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
-+     else
-+          task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_blend_32__L( DavinciC64xTasks *tasks,
-+                               u32               sub_func,
-+                               unsigned long     dest,
-+                               u32               dpitch,
-+                               unsigned long     src,
-+                               u32               spitch,
-+                               u32               width,
-+                               u32               height,
-+                               u32               argb,
-+                               u8                alpha )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = spitch;
-+     task->c64x_arg[4] = width | (height << 16);
-+     task->c64x_arg[5] = argb;
-+     task->c64x_arg[6] = alpha;
-+
-+     task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_blend_32( DavinciC64x   *c64x,
-+                            u32            sub_func,
-+                            unsigned long  dest,
-+                            u32            dpitch,
-+                            unsigned long  src,
-+                            u32            spitch,
-+                            u32            width,
-+                            u32            height,
-+                            u32            argb,
-+                            u8             alpha )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = dpitch;
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = spitch;
-+     task->c64x_arg[4] = width | (height << 16);
-+     task->c64x_arg[5] = argb;
-+     task->c64x_arg[6] = alpha;
-+
-+     task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_16__L( DavinciC64xTasks *tasks,
-+                               unsigned long     dest,
-+                               u32               dpitch,
-+                               unsigned long     src,
-+                               u32               spitch,
-+                               u32               width,
-+                               u32               height,
-+                               u32               key,
-+                               u32               mask )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = width;
-+     task->c64x_arg[4] = height;
-+     task->c64x_arg[5] = key;
-+     task->c64x_arg[6] = mask;
-+
-+     task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_16( DavinciC64x   *c64x,
-+                            unsigned long  dest,
-+                            u32            dpitch,
-+                            unsigned long  src,
-+                            u32            spitch,
-+                            u32            width,
-+                            u32            height,
-+                            u32            key,
-+                            u32            mask )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = width;
-+     task->c64x_arg[4] = height;
-+     task->c64x_arg[5] = key;
-+     task->c64x_arg[6] = mask;
-+
-+     task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_32__L( DavinciC64xTasks *tasks,
-+                               unsigned long     dest,
-+                               u32               dpitch,
-+                               unsigned long     src,
-+                               u32               spitch,
-+                               u32               width,
-+                               u32               height,
-+                               u32               key,
-+                               u32               mask )
-+{
-+     c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = width;
-+     task->c64x_arg[4] = height;
-+     task->c64x_arg[5] = key;
-+     task->c64x_arg[6] = mask;
-+
-+     task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
-+
-+     tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_32( DavinciC64x   *c64x,
-+                            unsigned long  dest,
-+                            u32            dpitch,
-+                            unsigned long  src,
-+                            u32            spitch,
-+                            u32            width,
-+                            u32            height,
-+                            u32            key,
-+                            u32            mask )
-+{
-+     c64xTask *task = c64x_get_task( c64x );
-+
-+     task->c64x_arg[0] = dest;
-+     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+     task->c64x_arg[2] = src;
-+     task->c64x_arg[3] = width;
-+     task->c64x_arg[4] = height;
-+     task->c64x_arg[5] = key;
-+     task->c64x_arg[6] = mask;
-+
-+     task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
-+
-+     c64x_submit_task( c64x, task );
-+}
-+
-+#endif
-+
-diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h directfb-1.6.3/gfxdrivers/davinci/davincifb.h
---- directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h	1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/gfxdrivers/davinci/davincifb.h	2013-04-07 21:33:21.488622184 +0200
-@@ -0,0 +1,581 @@
-+/* 
-+ * Copyright (C) 2006 Texas Instruments Inc
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option)any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * File: davincifb.h	
-+ */
-+
-+#ifndef DAVINVI_VPBE_H
-+#define DAVINVI_VPBE_H
-+
-+/* include Linux files */
-+#include <linux/fb.h>
-+
-+/* define the custom FBIO_WAITFORVSYNC ioctl */
-+#define FBIO_WAITFORVSYNC	_IOW('F', 0x20, u_int32_t)
-+#define FBIO_SETATTRIBUTE       _IOW('F', 0x21, struct fb_fillrect)
-+
-+/* Backported IOCTLS. */
-+#define FBIO_SETPOSX                            _IOW('F', 0x22, u_int32_t)
-+#define FBIO_SETPOSY                            _IOW('F', 0x23, u_int32_t)
-+#define FBIO_SETZOOM            		_IOW('F', 0x24, struct zoom_params)
-+#define FBIO_GETSTD                             _IOR('F', 0x25, u_int32_t)
-+#define FBIO_RESIZER		                _IOW('F', 0x26, struct vpfe_resizer_params)
-+#define FBIO_SYNC		                _IOW('F', 0x27, u_int32_t)
-+
-+typedef struct zoom_params {
-+	u_int32_t window_id;
-+	u_int32_t zoom_h;
-+	u_int32_t zoom_v;
-+} zoom_params_t;
-+
-+typedef struct vpfe_resizer_params
-+{
-+	u_int32_t rsz_cnt;	//busy-lock
-+	u_int32_t out_size;	//busy-lock
-+	u_int32_t in_start;	//busy-lock
-+	u_int32_t in_size;	//busy-lock
-+	u_int32_t sdr_inadd;	//shadowed
-+	u_int32_t sdr_inoff;	//shadowed
-+	u_int32_t sdr_outadd;	//shadowed
-+	u_int32_t sdr_outoff;	//shadowed
-+	u_int32_t hfilt[16];	//busy-lock
-+	u_int32_t vfilt[16];	//busy-lock
-+	u_int32_t yenh;		//busy-lock
-+} vpfe_resizer_params_t;
-+
-+typedef struct fb_set_start {
-+	int		offset;		/* offset from smem_start */
-+	unsigned long	physical;	/* absolute physical address when offset < 0 */
-+
-+	u_int64_t	sync;		/* input:  target sync counter for change or 0 for no sync at all,
-+					   output: sync counter of actual change or 0 if still pending */
-+} fb_set_start_t;
-+
-+
-+#ifdef _IOC_TYPECHECK
-+#undef _IOC_TYPECHECK
-+#define _IOC_TYPECHECK(x)     (sizeof(x))
-+#endif
-+
-+#define	RAM_CLUT_SIZE	256*3
-+#define FBIO_ENABLE_DISABLE_WIN		\
-+	_IOW('F', 0x30, unsigned char)
-+#define FBIO_SET_BITMAP_BLEND_FACTOR	\
-+	_IOW('F', 0x31, vpbe_bitmap_blend_params_t)
-+#define FBIO_SET_BITMAP_WIN_RAM_CLUT    \
-+	_IOW('F', 0x32, unsigned char)*RAM_CLUT_SIZE)
-+#define FBIO_ENABLE_DISABLE_ATTRIBUTE_WIN \
-+	_IOW('F', 0x33, unsigned int)
-+#define FBIO_GET_BLINK_INTERVAL		\
-+	_IOR('F', 0x34, vpbe_blink_option_t)
-+#define FBIO_SET_BLINK_INTERVAL         \
-+	_IOW('F', 0x35, vpbe_blink_option_t)
-+#define FBIO_GET_VIDEO_CONFIG_PARAMS    \
-+	_IOR('F', 0x36, vpbe_video_config_params_t)
-+#define FBIO_SET_VIDEO_CONFIG_PARAMS    \
-+	_IOW('F', 0x37, vpbe_video_config_params_t)
-+#define FBIO_GET_BITMAP_CONFIG_PARAMS   \
-+	_IOR('F', 0x38, vpbe_bitmap_config_params_t)
-+#define FBIO_SET_BITMAP_CONFIG_PARAMS   \
-+	_IOW('F', 0x39, vpbe_bitmap_config_params_t)
-+#define FBIO_SET_DCLK                   \
-+	_IOW('F', 0x40, vpbe_dclk_t)
-+#define FBIO_SET_INTERFACE		\
-+	_IOW('F', 0x41, unsigned char)
-+#define FBIO_GET_INTERFACE		\
-+	_IOR('F', 0x42, unsigned char)
-+#define FBIO_QUERY_TIMING		\
-+	_IOWR('F', 0x43, struct vpbe_mode_info)
-+#define FBIO_SET_TIMING			\
-+	_IOW('F', 0x44, struct vpbe_fb_videomode)
-+#define FBIO_GET_TIMING                 \
-+	_IOR('F', 0x45, struct vpbe_fb_videomode)
-+#define FBIO_SET_VENC_CLK_SOURCE	\
-+	_IOW('F', 0x46, unsigned char)
-+#define FBIO_SET_BACKG_COLOR            \
-+	_IOW('F', 0x47, vpbe_backg_color_t)
-+#define FBIO_ENABLE_DISPLAY		\
-+	_IOW('F', 0x48, unsigned char)
-+#define FBIO_SETPOS            		\
-+	_IOW('F', 0x49, u_int32_t)
-+#define FBIO_SET_CURSOR         	\
-+	_IOW('F', 0x50, struct fb_cursor)
-+#define FBIO_SET_START     		\
-+	_IOW('F', 0x66, struct fb_set_start)
-+
-+/* 
-+ * Defines and Constants
-+ */
-+#ifdef __KERNEL__
-+#define DAVINCIFB_DEVICE "davincifb"
-+#define DAVINCIFB_DRIVER "davincifb"
-+
-+#define MULTIPLE_BUFFERING      1
-+
-+#ifdef MULTIPLE_BUFFERING
-+#define DOUBLE_BUF      2
-+#define TRIPLE_BUF      3
-+#else
-+#define DOUBLE_BUF      1
-+#define TRIPLE_BUF      1
-+#endif
-+
-+/* usage:	if (is_win(info->fix.id, OSD0)) ... */
-+#define is_win(name, x) ((strcmp(name, x ## _FBNAME) == 0) ? 1 : 0)
-+
-+/*
-+ * display controller register I/O routines
-+ */
-+u32 dispc_reg_in(u32 offset);
-+u32 dispc_reg_out(u32 offset, u32 val);
-+u32 dispc_reg_merge(u32 offset, u32 val, u32 mask);
-+
-+#endif				/*__KERNEL__*/
-+
-+/*  Error return codes  */
-+#define VPBE_INVALID_PARA_VALUE         700
-+#define VPBE_WRONG_WINDOW_ID            701
-+#define VPBE_CURRENTLY_IN_REQUIRED_MODE 702
-+#define VPBE_INSUFFICIENT_CLUT_VALUES   703
-+#define VPBE_CLUT_WRITE_TIMEOUT         704
-+#define VPBE_VID0_BUF_ADR_NULL          705
-+#define VPBE_WINDOW_NOT_DISABLED        706
-+#define VPBE_WINDOW_NOT_ENABLED         707
-+
-+#ifndef __KERNEL__
-+/*  Window ID definations */
-+#define OSD0      0
-+#define VID0      1
-+#define OSD1      2
-+#define VID1      3
-+#endif
-+
-+/* There are 4 framebuffers, each represented by an fb_info and
-+ * a dm_win_info structure */
-+#define OSD0_FBNAME "dm_osd0_fb"
-+#define OSD1_FBNAME "dm_osd1_fb"
-+#define VID0_FBNAME "dm_vid0_fb"
-+#define VID1_FBNAME "dm_vid1_fb"
-+
-+/*  FIXME: Digital LCD RGB matrix coefficients */
-+#define DLCD_DGY_VAL    0
-+#define DLCD_DRV_VAL    0
-+#define DLCD_DGU_VAL    0
-+#define DLCD_DBU_VAL		0
-+
-+/* Defines for bitmap format */
-+#define VPBE_BITMAP_BIT_1	1
-+#define VPBE_BITMAP_BIT_2	2
-+#define VPBE_BITMAP_BIT_4	4
-+#define VPBE_BITMAP_BIT_8	8
-+#define VPBE_BITMAP_RGB565	16
-+#define VPBE_VIDEO_YUV422 	16
-+#define VPBE_VIDEO_RGB888 	24
-+
-+/* Defines foe cursor parameter validation*/
-+#define MAX_CURSOR_WIDTH	0x3FF
-+#define MAX_CURSOR_HEIGHT	0x1FF
-+#define MAX_CURSOR_LINEWIDTH    7
-+
-+#define BASEX		0x80
-+#define BASEY		0x12
-+#define BASEX_DLCD		0x59
-+#define BASEY_DLCD		0x22
-+
-+/*
-+ * Enumerations 
-+ */
-+/*  Enum for blending factor  */
-+typedef enum vpbe_blend_factor {
-+	OSD_CONTRIBUTION_ZERO = 0,
-+	OSD_CONTRIBUTION_1_BY_8 = 1,
-+	OSD_CONTRIBUTION_2_BY_8 = 2,
-+	OSD_CONTRIBUTION_3_BY_8 = 3,
-+	OSD_CONTRIBUTION_4_BY_8 = 4,
-+	OSD_CONTRIBUTION_5_BY_8 = 5,
-+	OSD_CONTRIBUTION_6_BY_8 = 6,
-+	OSD_CONTRIBUTION_ONE = 7
-+} vpbe_blend_factor_t;
-+
-+/*  Enum for Boolean variables  */
-+typedef enum {
-+	SET_0 = 0,
-+	SET_1 = 1
-+} CB_CR_ORDER, ATTRIBUTE, ROM_RAM_CLUT;
-+
-+/*  Defines for Display Interface */
-+#define  PRGB		0
-+#define  COMPOSITE      1
-+#define  SVIDEO    	2
-+#define  COMPONENT 	3
-+#define  RGB       	4
-+#define  YCC16     	5
-+#define  YCC8      	6
-+#define  SRGB      	7
-+#define  EPSON     	8
-+#define  CASIO1G   	9
-+#define  UDISP     	10
-+#define  STN       	11
-+#define VPBE_MAX_INTERFACES	12
-+
-+/*  Defines for Display Mode */
-+#define  LCD    0
-+#define  NTSC	1
-+#define  PAL    2
-+#define  P525   3
-+#define  P625   4
-+
-+#define DEFAULT_MODE 0
-+#define  P480   0
-+#define  P400   1
-+#define  P350   2
-+#define NON_EXISTING_MODE 255
-+/*  Enable/Disable enum */
-+typedef enum {
-+	VPBE_DISABLE = 0,
-+	VPBE_ENABLE = 1
-+} ATTENUATION, TRANSPARENCY, EXPANSION, BLINKING;
-+
-+typedef enum clk_source {
-+	CLK_SOURCE_CLK27 = 0,
-+	CLK_SOURCE_CLK54 = 1,
-+	CLK_SOURCE_VPBECLK = 2
-+} CLK_SOURCE;
-+
-+/*
-+ * Structures and Union Definitions
-+ */
-+
-+/*  Structure for transparency and the blending factor for the bitmap window  */
-+typedef struct vpbe_bitmap_blend_params {
-+	unsigned int colorkey;	/* color key to be blend */
-+	unsigned int enable_colorkeying;	/* enable color keying */
-+	unsigned int bf;	/* valid range from 0 to 7 only. */
-+} vpbe_bitmap_blend_params_t;
-+
-+/*  Structure for window expansion  */
-+typedef struct vpbe_win_expansion {
-+	EXPANSION horizontal;
-+	EXPANSION vertical;	/* 1: Enable 0:disable */
-+} vpbe_win_expansion_t;
-+
-+/*  Structure for OSD window blinking options */
-+typedef struct vpbe_blink_option {
-+	BLINKING blinking;	/* 1: Enable blinking 0: Disable */
-+	unsigned int interval;	/* Valid only if blinking is 1 */
-+} vpbe_blink_option_t;
-+
-+/*  Structure for DCLK parameters */
-+typedef struct vpbe_dclk {
-+	unsigned char dclk_pattern_width;
-+	unsigned int dclk_pattern0;
-+	unsigned int dclk_pattern1;
-+	unsigned int dclk_pattern2;
-+	unsigned int dclk_pattern3;
-+} vpbe_dclk_t;
-+
-+/*  Structure for display format  */
-+typedef struct vpbe_display_format {
-+	unsigned char interface;	/* Output interface type */
-+	unsigned char mode;	/* output mode */
-+} vpbe_display_format_t;
-+
-+/*  Structure for background color  */
-+typedef struct vpbe_backg_color {
-+	unsigned char clut_select;	/* 2: RAM CLUT 1:ROM1 CLUT 0:ROM0 CLUT */
-+	unsigned char color_offset;	/* index of color */
-+} vpbe_backg_color_t;
-+
-+/*  Structure for Video window configurable parameters  */
-+typedef struct vpbe_video_config_params {
-+	CB_CR_ORDER cb_cr_order;	/*Cb/Cr order in input data for a pixel. */
-+	/*    0: cb cr  1:  cr cb */
-+	vpbe_win_expansion_t exp_info;	/* HZ/VT Expansion enable disable */
-+} vpbe_video_config_params_t;
-+
-+/*Union of structures giving the CLUT index for the 1, 2, 4 bit bitmap values.*/
-+typedef union vpbe_clut_idx {
-+	struct _for_4bit_bimap {
-+		unsigned char bitmap_val_0;
-+		unsigned char bitmap_val_1;
-+		unsigned char bitmap_val_2;
-+		unsigned char bitmap_val_3;
-+		unsigned char bitmap_val_4;
-+		unsigned char bitmap_val_5;
-+		unsigned char bitmap_val_6;
-+		unsigned char bitmap_val_7;
-+		unsigned char bitmap_val_8;
-+		unsigned char bitmap_val_9;
-+		unsigned char bitmap_val_10;
-+		unsigned char bitmap_val_11;
-+		unsigned char bitmap_val_12;
-+		unsigned char bitmap_val_13;
-+		unsigned char bitmap_val_14;
-+		unsigned char bitmap_val_15;
-+	} for_4bit_bimap;
-+	struct _for_2bit_bimap {
-+		unsigned char bitmap_val_0;
-+		unsigned char dummy0[4];
-+		unsigned char bitmap_val_1;
-+		unsigned char dummy1[4];
-+		unsigned char bitmap_val_2;
-+		unsigned char dummy2[4];
-+		unsigned char bitmap_val_3;
-+	} for_2bit_bimap;
-+	struct _for_1bit_bimap {
-+		unsigned char bitmap_val_0;
-+		unsigned char dummy0[14];
-+		unsigned char bitmap_val_1;
-+	} for_1bit_bimap;
-+} vpbe_clut_idx_t;
-+
-+/*  Structure for bitmap window configurable parameters */
-+typedef struct vpbe_bitmap_config_params {
-+	/* Only for bitmap width = 1,2,4 bits */
-+	vpbe_clut_idx_t clut_idx;
-+	/* Attenuation value for YUV o/p for bitmap window */
-+	unsigned char attenuation_enable;
-+	/* 0: ROM DM270, 1:ROM DM320, 2:RAM CLUT */
-+	unsigned char clut_select;
-+} vpbe_bitmap_config_params_t;
-+
-+/*  Unioun for video/OSD configuration parameters  */
-+typedef union vpbe_conf_params {
-+
-+	struct vpbe_video_params {
-+		CB_CR_ORDER cb_cr_order;
-+		/* HZ/VT Expansion enable disable */
-+		vpbe_win_expansion_t exp_info;
-+	} video_params;
-+
-+	struct vpbe_bitmap_params {
-+		/* Attenuation value for YUV o/p */
-+		ATTENUATION attenuation_enable;
-+		/* 0: ROM DM270, 1: ROM DM320, 2:RAM CLUT */
-+		unsigned char clut_select;
-+		/* Only for bitmap width = 1,2,4 bits */
-+		vpbe_clut_idx_t clut_idx;
-+		/* 0: OSD window is bitmap window */
-+		/* 1: OSD window is attribute window */
-+		ATTRIBUTE enable_attribute;
-+		/* To hold bps value. 
-+		   Used to switch back from attribute to bitmap. */
-+		unsigned int stored_bits_per_pixel;
-+		/* Blending information */
-+		vpbe_bitmap_blend_params_t blend_info;
-+		/* OSD Blinking information */
-+		vpbe_blink_option_t blink_info;
-+	} bitmap_params;
-+
-+} vpbe_conf_params_t;
-+
-+typedef struct vpbe_video_params vpbe_video_params_t;
-+typedef struct vpbe_bitmap_params vpbe_bitmap_params_t;
-+
-+/* Structure to hold window position */
-+typedef struct vpbe_window_position {
-+	unsigned int xpos;	/* X position of the window */
-+	unsigned int ypos;	/* Y position of the window */
-+} vpbe_window_position_t;
-+
-+#ifdef __KERNEL__
-+/*  Structure for each window */
-+typedef struct vpbe_dm_win_info {
-+	struct fb_info info;
-+	vpbe_window_position_t win_pos;	/* X,Y position of window */
-+	/* Size of window is already there in var_info structure. */
-+
-+	dma_addr_t fb_base_phys;	/*framebuffer area */
-+	unsigned int fb_base;	/*window memory pointer */
-+	unsigned int fb_size;	/*memory size */
-+	unsigned int pseudo_palette[17];
-+	int alloc_fb_mem;
-+	/*flag to identify if framebuffer area is fixed or not */
-+	unsigned long sdram_address;
-+	struct vpbe_dm_info *dm;
-+	unsigned char window_enable;	/*Additions for all windows */
-+	zoom_params_t zoom;	/*Zooming parameters */
-+	unsigned char field_frame_select;	/*To select Field or frame */
-+	unsigned char numbufs;	/*Number of buffers valid 2 or 3 */
-+	vpbe_conf_params_t conf_params;
-+	/*window configuration parameter union pointer */
-+} vpbe_dm_win_info_t;
-+#endif				/*__KERNEL__*/
-+
-+/*
-+ *  Videmode structure for display interface and mode settings
-+ */
-+typedef struct vpbe_fb_videomode {
-+	unsigned char name[10];	/* Mode name ( NTSC , PAL) */
-+	unsigned int vmode;	/* FB_MODE_INTERLACED or FB_MODE_NON_INTERLACED */
-+	unsigned int xres;	/* X Resolution of the display */
-+	unsigned int yres;	/* Y Resolution of the display */
-+	unsigned int fps;	/* frames per second */
-+	/* Timing Parameters applicable for std = 0 only */
-+	unsigned int left_margin;
-+	unsigned int right_margin;
-+	unsigned int upper_margin;
-+	unsigned int lower_margin;
-+	unsigned int hsync_len;
-+	unsigned int vsync_len;
-+	unsigned int sync;	/* 0: hsync -ve/vsync -ve */
-+	/*1: hsync -ve/vsync +ve */
-+	/*2: hsync +ve/vsync -ve */
-+	/*3: hsync +ve/vsync +ve */
-+	unsigned int basepx;	/* Display x,y start position */
-+	unsigned int basepy;
-+/*  1= Mode s available in modelist 0=Mode is not available in modelist */
-+	unsigned int std;
-+} vpbe_fb_videomode_t;
-+
-+/* Structure to interface videomode to application*/
-+typedef struct vpbe_mode_info {
-+	vpbe_fb_videomode_t vid_mode;
-+	unsigned char interface;
-+	unsigned char mode_idx;
-+} vpbe_mode_info_t;
-+
-+#ifdef __KERNEL__
-+/* 
-+ * Structure for the driver holding information of windows, 
-+ *  memory base addresses etc.
-+ */
-+typedef struct vpbe_dm_info {
-+	vpbe_dm_win_info_t *osd0;
-+	vpbe_dm_win_info_t *osd1;
-+	vpbe_dm_win_info_t *vid0;
-+	vpbe_dm_win_info_t *vid1;
-+
-+/* to map the registers */
-+	dma_addr_t mmio_base_phys;
-+	unsigned int mmio_base;
-+	unsigned int mmio_size;
-+
-+	wait_queue_head_t vsync_wait;
-+	unsigned int vsync_cnt;
-+	int timeout;
-+
-+	/* this is the function that configures the output device (NTSC/PAL/LCD)
-+	 * for the required output format (composite/s-video/component/rgb)
-+	 */
-+	void (*output_device_config) (void);
-+
-+	struct device *dev;
-+
-+	vpbe_backg_color_t backg;	/* background color */
-+	vpbe_dclk_t dclk;	/*DCLK parameters */
-+	vpbe_display_format_t display;	/*Display interface and mode */
-+	vpbe_fb_videomode_t videomode;	/*Cuurent videomode */
-+	char ram_clut[256][3];	/*RAM CLUT array */
-+	struct fb_cursor cursor;	/* cursor config params from fb.h */
-+/*Flag that indicates whether any of the display is enabled or not*/
-+	int display_enable;
-+} vpbe_dm_info_t;
-+
-+/*
-+ * Functions Definitions for 'davincifb' module
-+ */
-+int vpbe_mem_alloc_window_buf(vpbe_dm_win_info_t *);
-+int vpbe_mem_release_window_buf(vpbe_dm_win_info_t *);
-+void init_display_function(vpbe_display_format_t *);
-+int vpbe_mem_alloc_struct(vpbe_dm_win_info_t **);
-+void set_vid0_default_conf(void);
-+void set_vid1_default_conf(void);
-+void set_osd0_default_conf(void);
-+void set_osd1_default_conf(void);
-+void set_cursor_default_conf(void);
-+void set_dm_default_conf(void);
-+void set_win_enable(char *, unsigned int);
-+int within_vid0_limits(u32, u32, u32, u32);
-+void vpbe_set_display_default(void);
-+#ifdef __KERNEL__
-+void set_win_position(char *, u32, u32, u32, u32);
-+void change_win_param(int);
-+void set_interlaced(char *, unsigned int);
-+#endif /* __KERNEL__ */
-+
-+/*
-+ *	Function definations for 'osd' module
-+ */
-+
-+int vpbe_enable_window(vpbe_dm_win_info_t *);
-+int vpbe_disable_window(vpbe_dm_win_info_t *);
-+int vpbe_vid_osd_select_field_frame(u8 *, u8);
-+int vpbe_bitmap_set_blend_factor(u8 *, vpbe_bitmap_blend_params_t *);
-+int vpbe_bitmap_set_ram_clut(void);
-+int vpbe_enable_disable_attribute_window(u32);
-+int vpbe_get_blinking(u8 *, vpbe_blink_option_t *);
-+int vpbe_set_blinking(u8 *, vpbe_blink_option_t *);
-+int vpbe_set_vid_params(u8 *, vpbe_video_config_params_t *);
-+int vpbe_get_vid_params(u8 *, vpbe_video_config_params_t *);
-+int vpbe_bitmap_get_params(u8 *, vpbe_bitmap_config_params_t *);
-+int vpbe_bitmap_set_params(u8 *, vpbe_bitmap_config_params_t *);
-+int vpbe_set_cursor_params(struct fb_cursor *);
-+int vpbe_set_vid_expansion(vpbe_win_expansion_t *);
-+int vpbe_set_dclk(vpbe_dclk_t *);
-+int vpbe_set_display_format(vpbe_display_format_t *);
-+int vpbe_set_backg_color(vpbe_backg_color_t *);
-+int vpbe_set_interface(u8);
-+int vpbe_query_mode(vpbe_mode_info_t *);
-+int vpbe_set_mode(struct vpbe_fb_videomode *);
-+int vpbe_set_venc_clk_source(u8);
-+void set_vid0_default_conf(void);
-+void set_osd0_default_conf(void);
-+void set_vid1_default_conf(void);
-+void set_osd1_default_conf(void);
-+void set_cursor_default_conf(void);
-+void set_dm_default_conf(void);
-+/*
-+ * Function definations for 'venc' module
-+ */
-+
-+void davincifb_ntsc_composite_config(void);
-+void davincifb_ntsc_svideo_config(void);
-+void davincifb_ntsc_component_config(void);
-+void davincifb_pal_composite_config(void);
-+void davincifb_pal_svideo_config(void);
-+void davincifb_pal_component_config(void);
-+
-+void vpbe_davincifb_ntsc_rgb_config(void);
-+void vpbe_davincifb_pal_rgb_config(void);
-+void vpbe_davincifb_525p_component_config(void);
-+void vpbe_davincifb_625p_component_config(void);
-+
-+void vpbe_enable_venc(int);
-+void vpbe_enable_dacs(int);
-+/*
-+ * Function definations for 'dlcd' module
-+ */
-+void vpbe_davincifb_480p_prgb_config(void);
-+void vpbe_davincifb_400p_prgb_config(void);
-+void vpbe_davincifb_350p_prgb_config(void);
-+void vpbe_set_display_timing(struct vpbe_fb_videomode *);
-+
-+void vpbe_enable_lcd(int);
-+/*
-+ * Following functions are not implemented
-+ */
-+void vpbe_davincifb_default_ycc16_config(void);
-+void vpbe_davincifb_default_ycc8_config(void);
-+void vpbe_davincifb_default_srgb_config(void);
-+void vpbe_davincifb_default_epson_config(void);
-+void vpbe_davincifb_default_casio_config(void);
-+void vpbe_davincifb_default_UDISP_config(void);
-+void vpbe_davincifb_default_STN_config(void);
-+#endif				/*__KERNEL__*/
-+
-+#endif				/* End of #ifndef DAVINCI_VPBE_H */
-diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h
---- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h	1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h	2013-04-07 21:33:19.560662133 +0200
-@@ -0,0 +1,169 @@
-+/*
-+   TI Davinci driver - Graphics Driver
-+
-+   (c) Copyright 2007  Telio AG
-+
-+   Written by Denis Oliver Kropp <dok@directfb.org>
-+
-+   Code is derived from VMWare driver.
-+
-+   (c) Copyright 2001-2009  The world wide DirectFB Open Source Community (directfb.org)
-+   (c) Copyright 2000-2004  Convergence (integrated media) GmbH
-+
-+   All rights reserved.
-+
-+   This library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2 of the License, or (at your option) any later version.
-+
-+   This library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with this library; if not, write to the
-+   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+   Boston, MA 02111-1307, USA.
-+*/
-+
-+#ifndef __DAVINCI_GFXDRIVER_H__
-+#define __DAVINCI_GFXDRIVER_H__
-+
-+#include <sys/ioctl.h>
-+#include <davincifb.h>
-+
-+#include <core/surface_buffer.h>
-+
-+#include "davincifb.h"
-+
-+#include "davinci_c64x.h"
-+
-+
-+typedef struct {
-+     /* validation flags */
-+     int                       v_flags;
-+
-+     /* cached/computed values */
-+     void                     *dst_addr;
-+     unsigned long             dst_phys;
-+     unsigned int              dst_size;
-+     unsigned long             dst_pitch;
-+     DFBSurfacePixelFormat     dst_format;
-+     unsigned long             dst_bpp;
-+
-+     void                     *src_addr;
-+     unsigned long             src_phys;
-+     unsigned long             src_pitch;
-+     DFBSurfacePixelFormat     src_format;
-+     unsigned long             src_bpp;
-+
-+     unsigned long             source_mult;
-+
-+     unsigned long             fillcolor;
-+
-+     int                       blit_blend_sub_function;
-+     int                       draw_blend_sub_function;
-+
-+     DFBColor                  color;
-+     unsigned long             color_argb;
-+     unsigned long             colorkey;
-+
-+     DFBSurfaceBlittingFlags   blitting_flags;
-+
-+     DFBRegion                 clip;
-+
-+     /** Add shared data here... **/
-+     struct fb_fix_screeninfo  fix[4];
-+
-+     CoreSurfacePool          *osd_pool;
-+     CoreSurfacePool          *video_pool;
-+
-+     bool                      synced;
-+} DavinciDeviceData;
-+
-+
-+typedef struct {
-+     int                       num;
-+     int                       fd;
-+     void                     *mem;
-+     int                       size;
-+} DavinciFB;
-+
-+typedef struct {
-+     DavinciDeviceData        *ddev;
-+
-+     CoreDFB                  *core;
-+
-+     CoreScreen               *screen;
-+     CoreLayer                *osd;
-+     CoreLayer                *video;
-+
-+     DavinciFB                 fb[4];
-+
-+     DavinciC64x               c64x;
-+     bool                      c64x_present;
-+
-+     DavinciC64xTasks          tasks;
-+} DavinciDriverData;
-+
-+
-+static inline DFBResult
-+davincifb_pan_display( const DavinciFB             *fb,
-+                       struct fb_var_screeninfo    *var,
-+                       const CoreSurfaceBufferLock *lock,
-+                       DFBSurfaceFlipFlags          flags,
-+                       int                          x,
-+                       int                          y )
-+{
-+     int ret;
-+
-+     if (lock) {
-+#ifdef FBIO_SET_START
-+          CoreSurfaceBuffer   *buffer = lock->buffer;
-+          struct fb_set_start  set_start;
-+
-+          /* physical mode */
-+          set_start.offset   = -1;
-+          set_start.sync     = (flags & DSFLIP_ONSYNC) ? 1 : 0;
-+
-+          /* life's so easy */
-+          set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch;
-+
-+          ret = ioctl( fb->fd, FBIO_SET_START, &set_start );
-+          if (ret < 0)
-+               D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n",
-+                         set_start.physical, set_start.sync );
-+
-+          if (ret == 0) {
-+               if (flags & DSFLIP_WAIT)
-+                    ioctl( fb->fd, FBIO_WAITFORVSYNC );
-+
-+               return DFB_OK;
-+          }
-+
-+          /* fallback */
-+#endif
-+          var->xoffset = x;                  /* poor version */
-+          var->yoffset = y + lock->offset / lock->pitch;
-+     }
-+     else {
-+          var->xoffset = x;
-+          var->yoffset = y;
-+     }
-+
-+     var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW;
-+
-+     ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var );
-+     if (ret)
-+          D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n",
-+                    fb->num, var->xoffset, var->yoffset );
-+
-+     if (flags & DSFLIP_WAIT)
-+          ioctl( fb->fd, FBIO_WAITFORVSYNC );
-+
-+     return DFB_OK;
-+}
-+
-+#endif
-diff -puNr -Naur directfb-1.6.3-orig/tests/voodoo/voodoo_test.h directfb-1.6.3/tests/voodoo/voodoo_test.h
---- directfb-1.6.3-orig/tests/voodoo/voodoo_test.h	1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/tests/voodoo/voodoo_test.h	2013-04-07 21:33:31.824408024 +0200
-@@ -0,0 +1,10 @@
-+#ifndef __VOODOO_TEST_H__
-+#define __VOODOO_TEST_H__
-+
-+typedef enum {
-+     VOODOO_TEST_INCREASE,
-+     VOODOO_TEST_QUERY
-+} VoodooTestCall;
-+
-+#endif
-+

+ 0 - 36
package/directfb/0002-imlib2-config.patch

@@ -1,36 +0,0 @@
-From 8352c434e515f19dd1ba36256bfcc3ec9480838d Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Thu, 5 Mar 2015 22:38:52 +0100
-Subject: [PATCH] imlib2 config
-
-Call the imlib2-conf variable that are set by ac_cv_path_IMLIB2_CONFIG
-with the absolute path because the imlib2-config file is not covered
-by the PATH variable.
-This is important for cross compiler that need to get the staging settings
-instead of the host settings.
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-[ patch configure.in instead of configure to survive autoreconf ]
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- configure.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 38d7e78..fa5e87f 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1094,8 +1094,8 @@ if test "x$enable_imlib2" = "xyes"; then
-     AC_MSG_WARN([*** Imlib2 library not found, building without Imlib2 support ***])
-     imlib2="no"
-   else
--    IMLIB2_CFLAGS=`imlib2-config --cflags`
--    IMLIB2_LIBS=`imlib2-config --libs`
-+    IMLIB2_CFLAGS=`$IMLIB2_CONFIG --cflags`
-+    IMLIB2_LIBS=`$IMLIB2_CONFIG --libs`
-     imlib2="yes"
-   fi
- fi
--- 
-2.1.4
-

+ 0 - 99
package/directfb/0003-setregion-lock.patch

@@ -1,99 +0,0 @@
-This patch fixes builderrors while using '--with-gfxdrivers' and
-'--with-inputdrivers' with the current DirectFB version 1.6.3.
-
-Patch is taken from
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/DirectFB/files/DirectFB-1.6.3-setregion.patch
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-
-Index: b/gfxdrivers/cyber5k/cyber5k.c
-===================================================================
---- a/gfxdrivers/cyber5k/cyber5k.c
-+++ b/gfxdrivers/cyber5k/cyber5k.c
-@@ -640,7 +640,8 @@
-               CoreLayerRegionConfigFlags  updated,
-               CoreSurface                *surface,
-               CorePalette                *palette,
--              CoreSurfaceBufferLock      *lock )
-+              CoreSurfaceBufferLock      *left_lock,
-+              CoreSurfaceBufferLock      *right_lock )
- {
-      DFBResult ret;
- 
-@@ -648,7 +649,7 @@
-      ret = oldPrimaryFuncs.SetRegion( layer, oldPrimaryDriverData,
-                                       layer_data, region_data,
-                                       config, updated, surface,
--                                      palette, lock );
-+                                      palette, left_lock, right_lock );
-      if (ret)
-           return ret;
- 
-Index: b/gfxdrivers/radeon/radeon_crtc1.c
-===================================================================
---- a/gfxdrivers/radeon/radeon_crtc1.c
-+++ b/gfxdrivers/radeon/radeon_crtc1.c
-@@ -147,14 +147,15 @@
-                 CoreLayerRegionConfigFlags  updated,
-                 CoreSurface                *surface,
-                 CorePalette                *palette,
--                CoreSurfaceBufferLock      *lock )
-+                CoreSurfaceBufferLock      *left_lock,
-+                CoreSurfaceBufferLock      *right_lock )
- {
-      
-      if (updated & ~CLRCF_OPTIONS) {
-           return OldPrimaryLayerFuncs.SetRegion( layer,
-                                                  OldPrimaryLayerDriverData,
-                                                  layer_data, region_data,
--                                                 config, updated, surface, palette, lock );
-+                                                 config, updated, surface, palette, left_lock, right_lock );
-      }
- 
-      return DFB_OK;
-Index: b/gfxdrivers/cle266/uc_primary.c
-===================================================================
---- a/gfxdrivers/cle266/uc_primary.c
-+++ b/gfxdrivers/cle266/uc_primary.c
-@@ -142,7 +142,8 @@
-               CoreLayerRegionConfigFlags  updated,
-               CoreSurface                *surface,
-               CorePalette                *palette,
--              CoreSurfaceBufferLock      *lock )
-+              CoreSurfaceBufferLock      *left_lock,
-+              CoreSurfaceBufferLock      *right_lock )
- {
-      DFBResult     ret;
-      UcDriverData *ucdrv = (UcDriverData*) driver_data;
-@@ -151,7 +152,7 @@
-      ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData,
-                                         layer_data, region_data,
-                                         config, updated, surface,
--                                        palette, lock );
-+                                        palette, left_lock, right_lock );
-      if (ret)
-           return ret;
- 
-Index: b/gfxdrivers/unichrome/uc_primary.c
-===================================================================
---- a/gfxdrivers/unichrome/uc_primary.c
-+++ b/gfxdrivers/unichrome/uc_primary.c
-@@ -139,7 +139,8 @@
-               CoreLayerRegionConfigFlags  updated,
-               CoreSurface                *surface,
-               CorePalette                *palette,
--              CoreSurfaceBufferLock      *lock )
-+              CoreSurfaceBufferLock      *left_lock,
-+              CoreSurfaceBufferLock      *right_lock )
- {
-      DFBResult     ret;
-      UcDriverData *ucdrv = (UcDriverData*) driver_data;
-@@ -148,7 +149,7 @@
-      ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData,
-                                         layer_data, region_data,
-                                         config, updated, surface,
--                                        palette, lock );
-+                                        palette, left_lock, right_lock );
-      if (ret)
-           return ret;
- 

+ 0 - 35
package/directfb/0004-use-gcc-link.patch

@@ -1,35 +0,0 @@
-Add patch to use 'gcc' instead of 'ld' for linking
-
-The patch has been sent upstream but it has not been merged yet
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From 176ce06b40897a357fe76a558af517197325f188 Mon Sep 17 00:00:00 2001
-From: Markos Chandras <markos.chandras@imgtec.com>
-Date: Wed, 28 Aug 2013 10:56:32 +0100
-Subject: [PATCH] rules/libobject.make: Use gcc for linking
-
-Invoking 'ld' directly may miss some necessary linker flags which
-are usually passed by gcc. Therefore, use gcc for linking.
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
----
- rules/libobject.make | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/rules/libobject.make b/rules/libobject.make
-index bc670da..2cba658 100644
---- a/rules/libobject.make
-+++ b/rules/libobject.make
-@@ -3,7 +3,7 @@
- 	if test -d $<.tmp; then rmdir $<.tmp; fi
- 	mkdir $<.tmp
- 	(cd $<.tmp && $(AR) x ../../$<)
--	$(LD) -o $@ -r $<.tmp/*.o
-+	$(CC) -nostdlib -o $@ -r $<.tmp/*.o
- 	rm -f $<.tmp/*.o && rmdir $<.tmp
- 
- .PHONY: $(LTLIBRARIES:%.la=.libs/%.a)
--- 
-1.8.3.2
-

+ 0 - 65
package/directfb/0005-add-missing-idivine-header.patch

@@ -1,65 +0,0 @@
-Add idivine.h, which is missing from DirectFB tarballs
-
-The idivine.h file was taken from the DirectFB Git repository.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/lib/divine/idivine.h
-===================================================================
---- /dev/null
-+++ b/lib/divine/idivine.h
-@@ -0,0 +1,54 @@
-+/*
-+   (c) Copyright 2012-2013  DirectFB integrated media GmbH
-+   (c) Copyright 2001-2013  The world wide DirectFB Open Source Community (directfb.org)
-+   (c) Copyright 2000-2004  Convergence (integrated media) GmbH
-+
-+   All rights reserved.
-+
-+   Written by Denis Oliver Kropp <dok@directfb.org>,
-+              Andreas Shimokawa <andi@directfb.org>,
-+              Marek Pikarski <mass@directfb.org>,
-+              Sven Neumann <neo@directfb.org>,
-+              Ville Syrjälä <syrjala@sci.fi> and
-+              Claudio Ciccani <klan@users.sf.net>.
-+
-+   This library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2 of the License, or (at your option) any later version.
-+
-+   This library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with this library; if not, write to the
-+   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+   Boston, MA 02111-1307, USA.
-+*/
-+
-+
-+
-+#ifndef __IDIVINE_H__
-+#define __IDIVINE_H__
-+
-+#include <divine.h>
-+
-+/*
-+ * private data struct of IDiVine
-+ */
-+typedef struct {
-+     int                         ref;      /* reference counter */
-+
-+     DiVine                     *divine;
-+} IDiVine_data;
-+
-+/*
-+ * IDiVine constructor/destructor
-+ */
-+DFBResult IDiVine_Construct( IDiVine *thiz );
-+
-+void      IDiVine_Destruct ( IDiVine *thiz );
-+
-+#endif

+ 0 - 39
package/directfb/0006-fix-client-gfx_state-initialisation.patch

@@ -1,39 +0,0 @@
-From 8e53c0b9cedb62b82e2b7680d793d433b647ae20 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Mon, 13 Jun 2016 13:32:44 -0700
-Subject: [PATCH] fix client->gfx_state initialisation
-
-Shortly before the DirectFB 1.7.7 release, an optimisation was added
-to CoreGraphicsStateClient_Init() to avoid creating an extended
-Graphics State object if it will not later be required:
-
-  4d422fb Client: Create extended Graphics State object when needed for later usage
-
-Unfortunately the client->gfx_state variable used to track the
-extended Graphics State object is not initialised, which can lead to
-crashes etc due to creation of the Graphics State object erroneously
-being skipped.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-Signed-off-by: Philippe Reynes <philippe.reynes@sagemcom.com>
----
- src/core/CoreGraphicsStateClient.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/core/CoreGraphicsStateClient.cpp b/src/core/CoreGraphicsStateClient.cpp
-index 5d46f0e..5007755 100644
---- a/src/core/CoreGraphicsStateClient.cpp
-+++ b/src/core/CoreGraphicsStateClient.cpp
-@@ -364,6 +364,7 @@ CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client,
-      client->renderer  = NULL;
-      client->requestor = NULL;
-      client->throttle  = NULL;
-+     client->gfx_state = NULL;
- 
-      if (dfb_config->task_manager) {
-           if (dfb_config->call_nodirect) {
--- 
-1.9.1
-

+ 0 - 43
package/directfb/0007-libdirect-define-__NR_futex-on-32bit-architectures-u.patch

@@ -1,43 +0,0 @@
-From 8ffd68a8dfa1e8671dd8c01b96faffd681deca4e Mon Sep 17 00:00:00 2001
-From: Steffen Persvold <spersvold@gmail.com>
-Date: Tue, 25 Jun 2024 14:14:49 +0200
-Subject: [PATCH] libdirect: define __NR_futex on 32bit architectures using
- 64-bit time_t
-
-Newer 32bit architectures like RISCV32 and ARC are using 64bit time_t
-from the get go unlike other 32bit architectures, therefore aliasing
-__NR_futex to __NR_futex_time64 helps avoid the below errors :
-
-system.c:242:21: error: '__NR_futex' undeclared (first use in this function)
-  242 |      ret = syscall( __NR_futex, uaddr, op, val, timeout, uaddr2, val3 );
-      |                     ^~~~~~~~~~
-
-Upstream: dead
-Signed-off-by: Steffen Persvold <spersvold@gmail.com>
----
- lib/direct/os/linux/glibc/system.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/lib/direct/os/linux/glibc/system.c b/lib/direct/os/linux/glibc/system.c
-index 32086a25..7143442b 100644
---- a/lib/direct/os/linux/glibc/system.c
-+++ b/lib/direct/os/linux/glibc/system.c
-@@ -213,6 +213,10 @@ direct_getenv( const char *name )
- 
- /**********************************************************************************************************************/
- 
-+#if defined(__NR_futex_time64) && !defined(__NR_futex)
-+#define __NR_futex __NR_futex_time64
-+#endif
-+
- DirectResult
- direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3 )
- {
-@@ -245,4 +249,3 @@ direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int *
- 
-      return DR_OK;
- }
--
--- 
-2.40.1
-

+ 0 - 156
package/directfb/Config.in

@@ -1,156 +0,0 @@
-config BR2_PACKAGE_DIRECTFB
-	bool "directfb"
-	depends on !BR2_STATIC_LIBS # static link issues
-	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
-	depends on !BR2_TOOLCHAIN_USES_MUSL # sigval_t issue
-	depends on BR2_TOOLCHAIN_HAS_SYNC_4
-	select BR2_PACKAGE_FREETYPE
-	select BR2_PACKAGE_ZLIB
-	help
-	  DirectFB (Direct Frame Buffer) is a set of graphics APIs
-	  implemented on top of the Linux Frame Buffer (fbdev)
-	  abstraction layer. It is an alternative to X11 with a smaller
-	  memory footprint that still has an integrated windowing
-	  system. As of 4 October 2015, DirectFB's website
-	  http://www.directfb.org/ is down. See alternative site listed
-	  below.
-
-	  http://elinux.org/DirectFB
-
-if BR2_PACKAGE_DIRECTFB
-
-config BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT
-	bool "directfb debugging support"
-	default y
-	help
-	  Compile DirectFB with debugging support. It provides
-	  functions to print debug information, for DirectFB as well as
-	  external DirectFB drivers.
-
-	  When disabled, DirectFB does not print any debug information.
-	  The drivers will be installed to and loaded from
-	  /usr/lib/directfb-<version>-pure instead of
-	  /usr/lib/directfb-<version>.
-
-config BR2_PACKAGE_DIRECTFB_DEBUG
-	bool "directfb debugging"
-	depends on BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT
-	help
-	  Compile DirectFB with lots of debug output
-
-config BR2_PACKAGE_DIRECTFB_TRACE
-	bool "directfb call trace support"
-	help
-	  Enable call tracing for DirectFB applications
-
-config BR2_PACKAGE_DIRECTFB_DIVINE
-	bool "divine"
-	help
-	  Enable the DiVine feature (virtual input)
-
-config BR2_PACKAGE_DIRECTFB_SAWMAN
-	bool "sawman"
-	help
-	  Enable the SawMan feature (window manager)
-
-config BR2_PACKAGE_DIRECTFB_ATI128
-	bool "compile ati128 graphics driver"
-	depends on BR2_i386 || BR2_x86_64
-
-config BR2_PACKAGE_DIRECTFB_MATROX
-	bool "compile matrox graphics driver"
-	depends on BR2_i386 || BR2_x86_64
-
-config BR2_PACKAGE_DIRECTFB_PXA3XX
-	bool "compile pxa3xx graphics driver"
-	depends on BR2_arm
-	help
-	  The Marvell PXA3xx Processor Family is a system-on-chip based
-	  on XScale® microarchitecture. This option enables the graphic
-	  driver support for the PXA3xx processor family.
-
-	  http://www.marvell.com/application-processors/pxa-family/
-
-config BR2_PACKAGE_DIRECTFB_EP9X
-	bool "compile ep9x graphics driver"
-	depends on BR2_arm
-	help
-	  Enable the graphic driver support for the EP93xx ARMv9 based
-	  processors from Cirrus Logic.
-
-	  http://cirrus.com/en/products/arm9.html
-
-config BR2_PACKAGE_DIRECTFB_I830
-	bool "compile i830 graphics driver"
-	depends on BR2_i386 || BR2_x86_64
-
-config BR2_PACKAGE_DIRECTFB_LINUXINPUT
-	bool "compile /dev/input/eventX input driver"
-	default y
-
-config BR2_PACKAGE_DIRECTFB_KEYBOARD
-	bool "compile keyboard input driver"
-	default y
-
-config BR2_PACKAGE_DIRECTFB_PS2MOUSE
-	bool "compile PS2 mouse input driver"
-	default y
-
-config BR2_PACKAGE_DIRECTFB_SERIALMOUSE
-	bool "compile serial mouse input driver"
-	default y
-
-config BR2_PACKAGE_DIRECTFB_TSLIB
-	bool "enable touchscreen support"
-	default y
-	select BR2_PACKAGE_TSLIB
-
-config BR2_PACKAGE_DIRECTFB_GIF
-	bool "enable GIF support"
-	default y
-
-config BR2_PACKAGE_DIRECTFB_TIFF
-	bool "enable TIFF support"
-	select BR2_PACKAGE_TIFF
-
-config BR2_PACKAGE_DIRECTFB_IMLIB2
-	bool "enable IMLIB2 support"
-	depends on !BR2_STATIC_LIBS
-	select BR2_PACKAGE_IMLIB2
-
-comment "imlib2 support needs a toolchain w/ dynamic library"
-	depends on BR2_STATIC_LIBS
-
-config BR2_PACKAGE_DIRECTFB_JPEG
-	bool "enable JPEG support"
-	default y
-	select BR2_PACKAGE_JPEG
-
-config BR2_PACKAGE_DIRECTFB_PNG
-	bool "enable PNG support"
-	default y
-	select BR2_PACKAGE_LIBPNG
-
-config BR2_PACKAGE_DIRECTFB_SVG
-	bool "enable SVG support"
-	default y
-	select BR2_PACKAGE_LIBSVG_CAIRO
-
-config BR2_PACKAGE_DIRECTFB_DITHER_RGB16
-	bool "enable advanced dithering of RGB16 surfaces"
-	help
-	  Enable dithering when loading images to RGB16 surfaces.
-	  This increases the data section by 64 KBytes.
-
-config BR2_PACKAGE_DIRECTFB_TESTS
-	bool "build directfb tests"
-
-endif # BR2_PACKAGE_DIRECTFB
-
-comment "directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library"
-	depends on BR2_TOOLCHAIN_HAS_SYNC_4
-	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL || \
-		BR2_STATIC_LIBS

+ 0 - 3
package/directfb/directfb.hash

@@ -1,3 +0,0 @@
-# Locally computed
-sha256  b785c638dc31b8fe3a7c81be1475c89b2255ab3d67b777c747d3fbc52f8027a3  DirectFB-1.7.7.tar.gz
-sha256  512d2d21b6b3384ba64781abb0208a1b87740bc31e2df48e2b206ddb7e4d5779  COPYING

+ 0 - 167
package/directfb/directfb.mk

@@ -1,167 +0,0 @@
-################################################################################
-#
-# directfb
-#
-################################################################################
-
-DIRECTFB_VERSION_MAJOR = 1.7
-DIRECTFB_VERSION = $(DIRECTFB_VERSION_MAJOR).7
-DIRECTFB_SITE = http://sources.buildroot.net/directfb
-DIRECTFB_SOURCE = DirectFB-$(DIRECTFB_VERSION).tar.gz
-DIRECTFB_LICENSE = LGPL-2.1+
-DIRECTFB_LICENSE_FILES = COPYING
-DIRECTFB_INSTALL_STAGING = YES
-DIRECTFB_AUTORECONF = YES
-
-DIRECTFB_CONF_OPTS = \
-	--enable-zlib \
-	--enable-freetype \
-	--enable-fbdev \
-	--disable-sdl \
-	--disable-vnc \
-	--disable-osx \
-	--disable-video4linux \
-	--disable-video4linux2 \
-	--without-tools \
-	--disable-x11 \
-	--disable-multi \
-	--disable-multi-kernel
-
-ifeq ($(BR2_STATIC_LIBS),y)
-DIRECTFB_CONF_OPTS += --disable-dynload
-endif
-
-DIRECTFB_CONFIG_SCRIPTS = directfb-config
-
-DIRECTFB_DEPENDENCIES = freetype zlib
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT),y)
-DIRECTFB_CONF_OPTS += --enable-debug-support
-ifeq ($(BR2_PACKAGE_DIRECTFB_DEBUG),y)
-DIRECTFB_CONF_OPTS += --enable-debug
-endif
-else
-DIRECTFB_CONF_OPTS += --disable-debug-support
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_TRACE),y)
-DIRECTFB_CONF_OPTS += --enable-trace
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_DIVINE),y)
-DIRECTFB_CONF_OPTS += --enable-divine
-else
-DIRECTFB_CONF_OPTS += --disable-divine
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_SAWMAN),y)
-DIRECTFB_CONF_OPTS += --enable-sawman
-else
-DIRECTFB_CONF_OPTS += --disable-sawman
-endif
-
-DIRECTFB_GFX = \
-	$(if $(BR2_PACKAGE_DIRECTFB_ATI128),ati128) \
-	$(if $(BR2_PACKAGE_DIRECTFB_MATROX),matrox) \
-	$(if $(BR2_PACKAGE_DIRECTFB_PXA3XX),pxa3xx) \
-	$(if $(BR2_PACKAGE_DIRECTFB_I830),i830) \
-	$(if $(BR2_PACKAGE_DIRECTFB_EP9X),ep9x)
-
-ifeq ($(strip $(DIRECTFB_GFX)),)
-DIRECTFB_CONF_OPTS += --with-gfxdrivers=none
-else
-DIRECTFB_CONF_OPTS += \
-	--with-gfxdrivers=$(subst $(space),$(comma),$(strip $(DIRECTFB_GFX)))
-endif
-
-DIRECTFB_INPUT = \
-	$(if $(BR2_PACKAGE_DIRECTFB_LINUXINPUT),linuxinput) \
-	$(if $(BR2_PACKAGE_DIRECTFB_KEYBOARD),keyboard) \
-	$(if $(BR2_PACKAGE_DIRECTFB_PS2MOUSE),ps2mouse) \
-	$(if $(BR2_PACKAGE_DIRECTFB_SERIALMOUSE),serialmouse) \
-	$(if $(BR2_PACKAGE_DIRECTFB_TSLIB),tslib)
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_TSLIB),y)
-DIRECTFB_DEPENDENCIES += tslib
-endif
-
-ifeq ($(strip $(DIRECTFB_INPUT)),)
-DIRECTFB_CONF_OPTS += --with-inputdrivers=none
-else
-DIRECTFB_CONF_OPTS += \
-	--with-inputdrivers=$(subst $(space),$(comma),$(strip $(DIRECTFB_INPUT)))
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_GIF),y)
-DIRECTFB_CONF_OPTS += --enable-gif
-else
-DIRECTFB_CONF_OPTS += --disable-gif
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_TIFF),y)
-DIRECTFB_CONF_OPTS += --enable-tiff
-DIRECTFB_DEPENDENCIES += tiff
-else
-DIRECTFB_CONF_OPTS += --disable-tiff
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_PNG),y)
-DIRECTFB_CONF_OPTS += --enable-png
-DIRECTFB_DEPENDENCIES += libpng
-DIRECTFB_CONF_ENV += ac_cv_path_LIBPNG_CONFIG=$(STAGING_DIR)/usr/bin/libpng-config
-else
-DIRECTFB_CONF_OPTS += --disable-png
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_JPEG),y)
-DIRECTFB_CONF_OPTS += --enable-jpeg
-DIRECTFB_DEPENDENCIES += jpeg
-else
-DIRECTFB_CONF_OPTS += --disable-jpeg
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_SVG),y)
-DIRECTFB_CONF_OPTS += --enable-svg
-# needs some help to find cairo includes
-DIRECTFB_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/include/cairo"
-DIRECTFB_DEPENDENCIES += libsvg-cairo
-else
-DIRECTFB_CONF_OPTS += --disable-svg
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_IMLIB2),y)
-DIRECTFB_CONF_OPTS += --enable-imlib2
-DIRECTFB_DEPENDENCIES += imlib2
-DIRECTFB_CONF_ENV += ac_cv_path_IMLIB2_CONFIG=$(STAGING_DIR)/usr/bin/imlib2-config
-else
-DIRECTFB_CONF_OPTS += --disable-imlib2
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_DITHER_RGB16),y)
-DIRECTFB_CONF_OPTS += --with-dither-rgb16=advanced
-else
-DIRECTFB_CONF_OPTS += --with-dither-rgb16=none
-endif
-
-ifeq ($(BR2_PACKAGE_DIRECTFB_TESTS),y)
-DIRECTFB_CONF_OPTS += --with-tests
-endif
-
-HOST_DIRECTFB_DEPENDENCIES = host-pkgconf host-libpng
-HOST_DIRECTFB_CONF_OPTS = \
-	--disable-multi \
-	--enable-png \
-	--with-gfxdrivers=none \
-	--with-inputdrivers=none
-
-HOST_DIRECTFB_BUILD_CMDS = \
-	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/tools directfb-csource
-
-HOST_DIRECTFB_INSTALL_CMDS = \
-	$(INSTALL) -m 0755 $(@D)/tools/directfb-csource $(HOST_DIR)/bin
-
-$(eval $(autotools-package))
-$(eval $(host-autotools-package))
-
-# directfb-csource for the host
-DIRECTFB_HOST_BINARY = $(HOST_DIR)/bin/directfb-csource