Commit 2e66e26a authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Peter Korsgaard
Browse files

package/weston: un-break the rpi-compositor



The rpi-compositor was broken with the 1.4.0 release,
but we now have a fix from upstream.

Add this patch, and remove the 'depends on BROKEN'.

Signed-off-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent 7122e6a7
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ comment "RPi compositor needs a toolchain w/ C++, largefile, threads"

config BR2_PACKAGE_WESTON_RPI
	bool "RPi compositor"
	depends on BROKEN                       # rpi-backend broken in 1.4.0
	depends on BR2_arm                      # rpi-userland
	depends on BR2_INSTALL_LIBSTDCPP        # rpi-userland
	depends on BR2_LARGEFILE                # rpi-userland
+57 −0
Original line number Diff line number Diff line
commit bf539e39c15e9a4ef4479d03c52263a3f020ef4a
Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Date:   Mon Feb 3 16:57:27 2014 +0100

    compositor-rpi: Fix input initialization
    
    The input initialization code assumes the outputs have already
    been initialized; thus create the outputs first. This fixes a
    segfault upon startup. It is also what the drm and fbdev backends
    do.

diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c
index 399090d..e7c0e0d 100644
--- a/src/compositor-rpi.c
+++ b/src/compositor-rpi.c
@@ -527,13 +527,6 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
 	weston_log("Dispmanx planes are %s buffered.\n",
 		   compositor->single_buffer ? "single" : "double");
 
-	if (udev_input_init(&compositor->input,
-			    &compositor->base,
-			    compositor->udev, "seat0") != 0) {
-		weston_log("Failed to initialize udev input.\n");
-		goto out_launcher;
-	}
-
 	for (key = KEY_F1; key < KEY_F9; key++)
 		weston_compositor_add_key_binding(&compositor->base, key,
 						  MODIFIER_CTRL | MODIFIER_ALT,
@@ -549,19 +542,23 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
 	bcm_host_init();
 
 	if (rpi_renderer_create(&compositor->base, &param->renderer) < 0)
-		goto out_udev_input;
+		goto out_launcher;
 
 	if (rpi_output_create(compositor, param->output_transform) < 0)
 		goto out_renderer;
 
+	if (udev_input_init(&compositor->input,
+			    &compositor->base,
+			    compositor->udev, "seat0") != 0) {
+		weston_log("Failed to initialize udev input.\n");
+		goto out_renderer;
+	}
+
 	return &compositor->base;
 
 out_renderer:
 	compositor->base.renderer->destroy(&compositor->base);
 
-out_udev_input:
-	udev_input_destroy(&compositor->input);
-
 out_launcher:
 	weston_launcher_destroy(compositor->base.launcher);