weston-0000-compositor-rpi-fix-input-initialization.patch 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. commit bf539e39c15e9a4ef4479d03c52263a3f020ef4a
  2. Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
  3. Date: Mon Feb 3 16:57:27 2014 +0100
  4. compositor-rpi: Fix input initialization
  5. The input initialization code assumes the outputs have already
  6. been initialized; thus create the outputs first. This fixes a
  7. segfault upon startup. It is also what the drm and fbdev backends
  8. do.
  9. diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c
  10. index 399090d..e7c0e0d 100644
  11. --- a/src/compositor-rpi.c
  12. +++ b/src/compositor-rpi.c
  13. @@ -527,13 +527,6 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
  14. weston_log("Dispmanx planes are %s buffered.\n",
  15. compositor->single_buffer ? "single" : "double");
  16. - if (udev_input_init(&compositor->input,
  17. - &compositor->base,
  18. - compositor->udev, "seat0") != 0) {
  19. - weston_log("Failed to initialize udev input.\n");
  20. - goto out_launcher;
  21. - }
  22. -
  23. for (key = KEY_F1; key < KEY_F9; key++)
  24. weston_compositor_add_key_binding(&compositor->base, key,
  25. MODIFIER_CTRL | MODIFIER_ALT,
  26. @@ -549,19 +542,23 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
  27. bcm_host_init();
  28. if (rpi_renderer_create(&compositor->base, &param->renderer) < 0)
  29. - goto out_udev_input;
  30. + goto out_launcher;
  31. if (rpi_output_create(compositor, param->output_transform) < 0)
  32. goto out_renderer;
  33. + if (udev_input_init(&compositor->input,
  34. + &compositor->base,
  35. + compositor->udev, "seat0") != 0) {
  36. + weston_log("Failed to initialize udev input.\n");
  37. + goto out_renderer;
  38. + }
  39. +
  40. return &compositor->base;
  41. out_renderer:
  42. compositor->base.renderer->destroy(&compositor->base);
  43. -out_udev_input:
  44. - udev_input_destroy(&compositor->input);
  45. -
  46. out_launcher:
  47. weston_launcher_destroy(compositor->base.launcher);