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);
 
