summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauren Post <lauren.post@freescale.com>2013-08-19 14:17:44 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-22 18:30:04 +0100
commit557d1c74bf7994f8cce1d9ae92dbb98098f03f93 (patch)
tree4faadb8bd06386b16cf03399236d6b1a12914f20
parentf1bcf10134537fef3d04e3e3965b2adc5e541e69 (diff)
downloadpoky-557d1c74bf7994f8cce1d9ae92dbb98098f03f93.tar.gz
directfb: add fusion patch for hangs
The following tests hang on exit: direct_test, fusion_skirmish (From OE-Core rev: 46b8009d668478c5ed3e8b64c65f1de2a4dc25b3) Signed-off-by: Lauren Post <lauren.post@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-graphics/directfb/directfb.inc3
-rwxr-xr-xmeta/recipes-graphics/directfb/directfb/fusion.patch36
2 files changed, 38 insertions, 1 deletions
diff --git a/meta/recipes-graphics/directfb/directfb.inc b/meta/recipes-graphics/directfb/directfb.inc
index 60b12f7caa..a23209fb51 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"
14INC_PR = "r0" 14INC_PR = "r0"
15 15
16SRC_URI = "http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-${PV}.tar.gz \ 16SRC_URI = "http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-${PV}.tar.gz \
17 file://configurefix.patch" 17 file://configurefix.patch \
18 file://fusion.patch"
18 19
19S = "${WORKDIR}/DirectFB-${PV}" 20S = "${WORKDIR}/DirectFB-${PV}"
20 21
diff --git a/meta/recipes-graphics/directfb/directfb/fusion.patch b/meta/recipes-graphics/directfb/directfb/fusion.patch
new file mode 100755
index 0000000000..1f81a6796c
--- /dev/null
+++ b/meta/recipes-graphics/directfb/directfb/fusion.patch
@@ -0,0 +1,36 @@
1directfb: Fix for hangs in direct_test, fusion_skirmish on exit
2
3Upstream-Status: Pending
4Signed-off-by: Lauren Post <lauren.post@freescale.com>
5
6--- a/lib/fusion/fusion.c 2013-01-18 22:57:11.000000000 +0800
7+++ b/lib/fusion/fusion.c 2013-07-04 10:42:56.502699119 +0800
8@@ -2853,9 +2853,14 @@
9 direct_mutex_lock( &world->event_dispatcher_mutex );
10
11 while (1) {
12- if (!world->event_dispatcher_buffers)
13+ if (!world->event_dispatcher_buffers){
14 direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
15-
16+ if (world->dispatch_stop) {
17+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
18+ direct_mutex_unlock( &world->event_dispatcher_mutex );
19+ return NULL;
20+ }
21+ }
22 buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
23 D_MAGIC_ASSERT( buf, FusionEventDispatcherBuffer );
24
25@@ -2872,6 +2877,11 @@
26 //D_INFO("waiting...\n");
27 D_ASSERT( buf->read_pos == buf->write_pos );
28 direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
29+ if (world->dispatch_stop) {
30+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
31+ direct_mutex_unlock( &world->event_dispatcher_mutex );
32+ return NULL;
33+ }
34 }
35
36 buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;