aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-core/recipes-graphics/wayland/weston
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-08 11:12:45 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-17 13:59:52 +0000
commit1c3c06842ac1b9c089d0a08e91c60f44e4844fac (patch)
tree21e97368be8f78a3e76b66dfda24c1d5e774519f /meta-agl-core/recipes-graphics/wayland/weston
parentc1e048fc05542d859115990312e0753ce2dea72e (diff)
SPEC-3723: restructure meta-agl
Goal is to reach a minimal meta-agl-core as base for IVI and IC work at the same time. Trim dependencies and move most 'demo' related recipes to meta-agl-demo. v2: changed to bbapend + .inc , added description v3: testbuild of all images v4: restore -test packagegroup and -qa images, compare manifests and adapt packagegroups. v5: rebased v6: merged meta-agl-distro into meta-agl-core, due to dependency on meta-oe, moved -test packagegroup and -qa images to own layer meta-agl-core-test v7: Fixed comments from Paul Barker v8: Update the markdown files v9: restore wayland/weston/agl-compositor recipes/appends, reworked to move app f/w specific changes to bbappends in meta-app-framework and only demo specific weston-init changes to meta-agl-demo v10: fix s/agldemo/aglcore/ missed in weston-init.bbappend Description: This patch is part 1 out of 2 large patches that implement the layer rework discussed during the previous workshop. Essentially meta-agl-core is the small but versatile new core layer of AGL serving as basis for the work done by the IC and IVI EGs. All demo related work is moved to meta-agl-demo in the 2nd patchset. This should be applied together as atomic change. The resulting meta-agl/* follows these guidelines: - only bsp adaptations in meta-agl-bsp - remove the agl-profile-* layers for simplicity -- the packagegroup-agl(-profile)-graphical and so on have been kept in meta-agl-demo - meta-agl-profile-core is now meta-agl-core - meta-agl-core does pass yocto-check-layer -- therefore use the bbappend + conditional + .inc file construct found in meta-virtualization - meta-agl/meta-security has been merged into meta-agl/meta-app-framework - meta-netboot does pass yocto-check-layer - meta-pipewire does pass yocto-check-layer Migration: All packagegroups are preserved but they're now enabled by 'agl-demo'. Bug-AGL: SPEC-3723 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ia6c6e5e6ce2b4ffa69ea94959cdc57c310ba7c53 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/25769
Diffstat (limited to 'meta-agl-core/recipes-graphics/wayland/weston')
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch30
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch106
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch37
3 files changed, 173 insertions, 0 deletions
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
new file mode 100644
index 000000000..32755c4b3
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
@@ -0,0 +1,30 @@
+From 7e5fb58591a29d60657158262a0772796bfd3461 Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Wed, 12 Feb 2020 13:18:19 +0200
+Subject: [PATCH] libweston: Expose weston_output_damage() in libweston
+
+We have weston_compositor_damage_all() exported and declared but users
+might need weston_output_damage() to refer to an individual output. The
+symbol already exported so just declare it.
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ include/libweston/libweston.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/libweston/libweston.h b/include/libweston/libweston.h
+index 1439775e..9fac5be0 100644
+--- a/include/libweston/libweston.h
++++ b/include/libweston/libweston.h
+@@ -1604,6 +1604,8 @@ weston_compositor_schedule_repaint(struct weston_compositor *compositor);
+ void
+ weston_compositor_damage_all(struct weston_compositor *compositor);
+ void
++weston_output_damage(struct weston_output *woutput);
++void
+ weston_compositor_wake(struct weston_compositor *compositor);
+ void
+ weston_compositor_sleep(struct weston_compositor *compositor);
+--
+2.20.1
+
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
new file mode 100644
index 000000000..02af7cbaf
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
@@ -0,0 +1,106 @@
+From 4534fcab54409b08faf4445ed6780136b58afb63 Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Mon, 28 Sep 2020 22:51:00 +0300
+Subject: [PATCH 1/2] libweston: Migrate weston_seat_init/release to public
+ headers
+
+weston_seat_init/release needed for creating weston plug-ins that want
+manage seat/input on their own.
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ include/libweston/libweston.h | 25 +++++++++++++++++++++++++
+ libweston/libweston-internal.h | 31 +++----------------------------
+ 2 files changed, 28 insertions(+), 28 deletions(-)
+
+diff --git a/include/libweston/libweston.h b/include/libweston/libweston.h
+index 54ea008..59541f2 100644
+--- a/include/libweston/libweston.h
++++ b/include/libweston/libweston.h
+@@ -2053,6 +2053,31 @@ void
+ weston_timeline_refresh_subscription_objects(struct weston_compositor *wc,
+ void *object);
+
++/* input, seat */
++void
++weston_seat_init(struct weston_seat *seat, struct weston_compositor *ec,
++ const char *seat_name);
++void
++weston_seat_release(struct weston_seat *seat);
++
++void
++weston_seat_init_pointer(struct weston_seat *seat);
++
++int
++weston_seat_init_keyboard(struct weston_seat *seat, struct xkb_keymap *keymap);
++
++void
++weston_seat_init_touch(struct weston_seat *seat);
++
++void
++weston_seat_release_keyboard(struct weston_seat *seat);
++
++void
++weston_seat_release_pointer(struct weston_seat *seat);
++
++void
++weston_seat_release_touch(struct weston_seat *seat);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/libweston/libweston-internal.h b/libweston/libweston-internal.h
+index 66c38e8..f5c4c2c 100644
+--- a/libweston/libweston-internal.h
++++ b/libweston/libweston-internal.h
+@@ -168,44 +168,19 @@ weston_plane_init(struct weston_plane *plane,
+ void
+ weston_plane_release(struct weston_plane *plane);
+
+-/* weston_seat */
+-
+ struct clipboard *
+ clipboard_create(struct weston_seat *seat);
+
+-void
+-weston_seat_init(struct weston_seat *seat, struct weston_compositor *ec,
+- const char *seat_name);
+-
+-void
+-weston_seat_repick(struct weston_seat *seat);
++/* weston_seat */
+
+ void
+-weston_seat_release(struct weston_seat *seat);
++weston_seat_update_keymap(struct weston_seat *seat, struct xkb_keymap *keymap);
+
+ void
+ weston_seat_send_selection(struct weston_seat *seat, struct wl_client *client);
+
+ void
+-weston_seat_init_pointer(struct weston_seat *seat);
+-
+-int
+-weston_seat_init_keyboard(struct weston_seat *seat, struct xkb_keymap *keymap);
+-
+-void
+-weston_seat_init_touch(struct weston_seat *seat);
+-
+-void
+-weston_seat_release_keyboard(struct weston_seat *seat);
+-
+-void
+-weston_seat_release_pointer(struct weston_seat *seat);
+-
+-void
+-weston_seat_release_touch(struct weston_seat *seat);
+-
+-void
+-weston_seat_update_keymap(struct weston_seat *seat, struct xkb_keymap *keymap);
++weston_seat_repick(struct weston_seat *seat);
+
+ void
+ wl_data_device_set_keyboard_focus(struct weston_seat *seat);
+--
+2.28.0
+
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
new file mode 100644
index 000000000..cb122590b
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
@@ -0,0 +1,37 @@
+commit 5130a8c21a9deea54e8f7c96a3a5049e2d60a210
+Author: Marius Vlad <marius.vlad@collabora.com>
+Date: Thu Jul 30 14:47:32 2020 +0300
+
+backend-drm: Correctly tear down the DRM backend
+
+It seem that we skipped to put back in TEXT mode the tty, in case a DRM
+device node wasn't present at that time, or it isn't present at all. This
+orders the destroy part correctly as to handle that case as well.
+
+As a side effect, as the tty will still be set to GRAPHICS mode we will
+require a manual change of the tty number, which might be not possible
+on all systems. Properly putting back the tty to TEXT mode should avoid
+that, and allows to re-use the same tty no in case the DRM device has
+been created at a later point in time.
+
+Upstream-Status: Backport
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c
+index 980a12da..1cf61a33 100644
+--- a/libweston/backend-drm/drm.c
++++ b/libweston/backend-drm/drm.c
+@@ -3031,10 +3031,10 @@ err_sprite:
+ destroy_sprites(b);
+ err_udev_dev:
+ udev_device_unref(drm_device);
+-err_launcher:
+- weston_launcher_destroy(compositor->launcher);
+ err_udev:
+ udev_unref(b->udev);
++err_launcher:
++ weston_launcher_destroy(compositor->launcher);
+ err_compositor:
+ weston_compositor_shutdown(compositor);
+ free(b);