[OE-core] [PATCH 2/2] directfb: add fusion patch to fix hangs

Saul Wold sgw at linux.intel.com
Mon Aug 19 15:13:07 UTC 2013


On 08/19/2013 07:02 AM, Lauren Post wrote:
> Fixes test cases in 1.6.3 that had incomplete rendering
> caused by hangs
>
> Upstream-Status: Pending
>
> Signed-off-by: Lauren Post <lauren.post at freescale.com>
> ---
>   meta/recipes-graphics/directfb/directfb.inc        |    3 +-
>   .../directfb/directfb/fusion.patch                 |   31 ++++++++++++++++++++
>   2 files changed, 33 insertions(+), 1 deletion(-)
>   create mode 100755 meta/recipes-graphics/directfb/directfb/fusion.patch
>
> diff --git a/meta/recipes-graphics/directfb/directfb.inc b/meta/recipes-graphics/directfb/directfb.inc
> index 60b12f7..a23209f 100644
> --- a/meta/recipes-graphics/directfb/directfb.inc
> +++ b/meta/recipes-graphics/directfb/directfb.inc
> @@ -14,7 +14,8 @@ DEPENDS = "jpeg libpng freetype zlib tslib"
>   INC_PR = "r0"
>
>   SRC_URI = "http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-${PV}.tar.gz \
> -           file://configurefix.patch"
> +           file://configurefix.patch \
> +           file://fusion.patch"
>
>   S = "${WORKDIR}/DirectFB-${PV}"
>
> diff --git a/meta/recipes-graphics/directfb/directfb/fusion.patch b/meta/recipes-graphics/directfb/directfb/fusion.patch
> new file mode 100755
> index 0000000..f2a095a
> --- /dev/null
> +++ b/meta/recipes-graphics/directfb/directfb/fusion.patch

The Upstream-Status: tag goes here along with a patch sign-off, the 
commit itself also needs a signoff.

Thanks
	Sau!

> @@ -0,0 +1,31 @@
> +--- a/lib/fusion/fusion.c	2013-01-18 22:57:11.000000000 +0800
> ++++ b/lib/fusion/fusion.c	2013-07-04 10:42:56.502699119 +0800
> +@@ -2853,9 +2853,14 @@
> +           direct_mutex_lock( &world->event_dispatcher_mutex );
> +
> +           while (1) {
> +-               if (!world->event_dispatcher_buffers)
> ++               if (!world->event_dispatcher_buffers){
> +                     direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
> +-
> ++                    if (world->dispatch_stop) {
> ++                         D_DEBUG_AT( Fusion_Main_Dispatch, "  -> IGNORING (dispatch_stop!)\n" );
> ++                         direct_mutex_unlock( &world->event_dispatcher_mutex );
> ++                         return NULL;
> ++                    }
> ++               }
> +                buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
> +                D_MAGIC_ASSERT( buf, FusionEventDispatcherBuffer );
> +
> +@@ -2872,6 +2877,11 @@
> + //D_INFO("waiting...\n");
> +                     D_ASSERT( buf->read_pos == buf->write_pos );
> +                     direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
> ++		      if (world->dispatch_stop) {
> ++                         D_DEBUG_AT( Fusion_Main_Dispatch, "  -> IGNORING (dispatch_stop!)\n" );
> ++                         direct_mutex_unlock( &world->event_dispatcher_mutex );
> ++                         return NULL;
> ++                    }
> +                }
> +
> +                buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
>



More information about the Openembedded-core mailing list