From 6a5e107b07e576ee455f28b30f023eda00bb13ff Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Fri, 22 Sep 2017 17:28:03 -0400 Subject: meta-agl-bsp: meta-ti: Rework Weston patches for 2.0 We can drop the changes for the compositor to support RGB565 as this is now upstream. The other compositor patch is no longer relevant. The soc performance patch needs additional work to link but is also not required for overall functionality so leave that broken. For the rest of the patches we just need to make minor changes about the location of the source files now as the code has reorganized since the patches were written. Bug-AGL: SPEC-908 Change-Id: I7034219510821b8f720328318e3e560783cf16d6 Signed-off-by: Tom Rini Reviewed-on: https://gerrit.automotivelinux.org/gerrit/11019 Reviewed-by: Scott Murray Reviewed-by: Matt Ranostay Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller --- ...drm-fix-hotplug-weston-termination-proble.patch | 112 ------------------ ...r-drm-support-RGB565-with-pixman-renderer.patch | 125 --------------------- ...v-seat-restrict-udev-enumeration-to-card0.patch | 8 +- .../0002-Weston-Allow-visual_id-to-be-0.patch | 8 +- ...virtual-keyboard-display-issue-for-QT5-ap.patch | 8 +- .../0004-Weston-Fix-touch-screen-crash-issue.patch | 8 +- .../meta-ti/recipes-arago/weston/weston_%.bbappend | 10 +- 7 files changed, 21 insertions(+), 258 deletions(-) delete mode 100644 meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-fix-hotplug-weston-termination-proble.patch delete mode 100644 meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-support-RGB565-with-pixman-renderer.patch diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-fix-hotplug-weston-termination-proble.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-fix-hotplug-weston-termination-proble.patch deleted file mode 100644 index fde38d52b..000000000 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-fix-hotplug-weston-termination-proble.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 8497d95cc77af9bbdbbce03878e9fd273d94ba7f Mon Sep 17 00:00:00 2001 -From: Eric Ruei -Date: Wed, 7 Dec 2016 15:25:25 -0500 -Subject: [PATCH] compositor-drm: fix hotplug weston termination problem - -The weston_compositor_exit() is always invoked at function update_outputs() -if all connector ids are greater than 31 because the 32-bit b->connector_allocator -will be zero. Need to increase the size of both crtc_allocator and -connector_allocator from 32-bit to 64-bit until a better solution is implemented. - -Upstream-Status: Submitted [wayland-devel@lists.freedesktop.org] - -Signed-off-by: Eric Ruei ---- - src/compositor-drm.c | 30 +++++++++++++++--------------- - 1 file changed, 15 insertions(+), 15 deletions(-) - -diff --git a/src/compositor-drm.c b/src/compositor-drm.c -index 6485b39..e4d889f 100644 ---- a/src/compositor-drm.c -+++ b/src/compositor-drm.c -@@ -103,8 +103,8 @@ struct drm_backend { - struct gbm_device *gbm; - uint32_t *crtcs; - int num_crtcs; -- uint32_t crtc_allocator; -- uint32_t connector_allocator; -+ uint64_t crtc_allocator; -+ uint64_t connector_allocator; - struct wl_listener session_listener; - uint32_t format; - -@@ -1360,8 +1360,8 @@ drm_output_destroy(struct weston_output *output_base) - &output->connector_id, 1, &origcrtc->mode); - drmModeFreeCrtc(origcrtc); - -- b->crtc_allocator &= ~(1 << output->crtc_id); -- b->connector_allocator &= ~(1 << output->connector_id); -+ b->crtc_allocator &= ~(1ULL << output->crtc_id); -+ b->connector_allocator &= ~(1ULL << output->connector_id); - - if (b->use_pixman) { - drm_output_fini_pixman(output); -@@ -1842,8 +1842,8 @@ find_crtc_for_connector(struct drm_backend *b, - drmModeFreeEncoder(encoder); - - for (i = 0; i < resources->count_crtcs; i++) { -- if (possible_crtcs & (1 << i) && -- !(b->crtc_allocator & (1 << resources->crtcs[i]))) -+ if (possible_crtcs & (1ULL << i) && -+ !(b->crtc_allocator & (1ULL << resources->crtcs[i]))) - return i; - } - } -@@ -2404,9 +2404,9 @@ create_output_for_connector(struct drm_backend *b, - - output->crtc_id = resources->crtcs[i]; - output->pipe = i; -- b->crtc_allocator |= (1 << output->crtc_id); -+ b->crtc_allocator |= (1ULL << output->crtc_id); - output->connector_id = connector->connector_id; -- b->connector_allocator |= (1 << output->connector_id); -+ b->connector_allocator |= (1ULL << output->connector_id); - - output->original_crtc = drmModeGetCrtc(b->drm.fd, output->crtc_id); - output->dpms_prop = drm_get_prop(b->drm.fd, connector, "DPMS"); -@@ -2511,8 +2511,8 @@ err_free: - } - - drmModeFreeCrtc(output->original_crtc); -- b->crtc_allocator &= ~(1 << output->crtc_id); -- b->connector_allocator &= ~(1 << output->connector_id); -+ b->crtc_allocator &= ~(1ULL << output->crtc_id); -+ b->connector_allocator &= ~(1ULL << output->connector_id); - free(output); - - return -1; -@@ -2658,7 +2658,7 @@ update_outputs(struct drm_backend *b, struct udev_device *drm_device) - drmModeRes *resources; - struct drm_output *output, *next; - int x = 0, y = 0; -- uint32_t connected = 0, disconnects = 0; -+ uint64_t connected = 0, disconnects = 0; - int i; - - resources = drmModeGetResources(b->drm.fd); -@@ -2680,9 +2680,9 @@ update_outputs(struct drm_backend *b, struct udev_device *drm_device) - continue; - } - -- connected |= (1 << connector_id); -+ connected |= (1ULL << connector_id); - -- if (!(b->connector_allocator & (1 << connector_id))) { -+ if (!(b->connector_allocator & (1ULL << connector_id))) { - struct weston_output *last = - container_of(b->compositor->output_list.prev, - struct weston_output, link); -@@ -2707,8 +2707,8 @@ update_outputs(struct drm_backend *b, struct udev_device *drm_device) - if (disconnects) { - wl_list_for_each_safe(output, next, &b->compositor->output_list, - base.link) { -- if (disconnects & (1 << output->connector_id)) { -- disconnects &= ~(1 << output->connector_id); -+ if (disconnects & (1ULL << output->connector_id)) { -+ disconnects &= ~(1ULL << output->connector_id); - weston_log("connector %d disconnected\n", - output->connector_id); - drm_output_destroy(&output->base); --- -1.9.1 - diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-support-RGB565-with-pixman-renderer.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-support-RGB565-with-pixman-renderer.patch deleted file mode 100644 index 0d77f529e..000000000 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-support-RGB565-with-pixman-renderer.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 91b452fa515b94928d32af6e1b1b0405469747fd Mon Sep 17 00:00:00 2001 -From: Tomi Valkeinen -Date: Wed, 8 Mar 2017 13:05:38 -0500 -Subject: [PATCH] compositor-drm: support RGB565 with pixman renderer - -At the moment only XRGB8888 is supported when using pixman renderer. -This patch adds support also for RGB565. - -Signed-off-by: Tomi Valkeinen -Reviewed-by: Daniel Stone -Reviewed-by: Derek Foreman -Signed-off-by: Daniel Stone ---- - src/compositor-drm.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 55 insertions(+), 7 deletions(-) - -diff --git a/src/compositor-drm.c b/src/compositor-drm.c -index fd89627..443b69a 100644 ---- a/src/compositor-drm.c -+++ b/src/compositor-drm.c -@@ -262,10 +262,12 @@ drm_fb_destroy_callback(struct gbm_bo *bo, void *data) - } - - static struct drm_fb * --drm_fb_create_dumb(struct drm_backend *b, unsigned width, unsigned height) -+drm_fb_create_dumb(struct drm_backend *b, unsigned width, unsigned height, -+ uint32_t format) - { - struct drm_fb *fb; - int ret; -+ uint32_t bpp, depth; - - struct drm_mode_create_dumb create_arg; - struct drm_mode_destroy_dumb destroy_arg; -@@ -275,8 +277,20 @@ drm_fb_create_dumb(struct drm_backend *b, unsigned width, unsigned height) - if (!fb) - return NULL; - -+ switch (format) { -+ case GBM_FORMAT_XRGB8888: -+ bpp = 32; -+ depth = 24; -+ break; -+ case GBM_FORMAT_RGB565: -+ bpp = depth = 16; -+ break; -+ default: -+ return NULL; -+ } -+ - memset(&create_arg, 0, sizeof create_arg); -- create_arg.bpp = 32; -+ create_arg.bpp = bpp; - create_arg.width = width; - create_arg.height = height; - -@@ -289,8 +303,29 @@ drm_fb_create_dumb(struct drm_backend *b, unsigned width, unsigned height) - fb->size = create_arg.size; - fb->fd = b->drm.fd; - -- ret = drmModeAddFB(b->drm.fd, width, height, 24, 32, -- fb->stride, fb->handle, &fb->fb_id); -+ ret = -1; -+ -+ if (!b->no_addfb2) { -+ uint32_t handles[4], pitches[4], offsets[4]; -+ -+ handles[0] = fb->handle; -+ pitches[0] = fb->stride; -+ offsets[0] = 0; -+ -+ ret = drmModeAddFB2(b->drm.fd, width, height, -+ format, handles, pitches, offsets, -+ &fb->fb_id, 0); -+ if (ret) { -+ weston_log("addfb2 failed: %m\n"); -+ b->no_addfb2 = 1; -+ } -+ } -+ -+ if (ret) { -+ ret = drmModeAddFB(b->drm.fd, width, height, depth, bpp, -+ fb->stride, fb->handle, &fb->fb_id); -+ } -+ - if (ret) - goto err_bo; - -@@ -1879,17 +1914,30 @@ drm_output_init_pixman(struct drm_output *output, struct drm_backend *b) - { - int w = output->base.current_mode->width; - int h = output->base.current_mode->height; -+ uint32_t format = output->gbm_format; -+ uint32_t pixman_format; - unsigned int i; - -- /* FIXME error checking */ -+ switch (format) { -+ case GBM_FORMAT_XRGB8888: -+ pixman_format = PIXMAN_x8r8g8b8; -+ break; -+ case GBM_FORMAT_RGB565: -+ pixman_format = PIXMAN_r5g6b5; -+ break; -+ default: -+ weston_log("Unsupported pixman format 0x%x\n", format); -+ return -1; -+ } - -+ /* FIXME error checking */ - for (i = 0; i < ARRAY_LENGTH(output->dumb); i++) { -- output->dumb[i] = drm_fb_create_dumb(b, w, h); -+ output->dumb[i] = drm_fb_create_dumb(b, w, h, format); - if (!output->dumb[i]) - goto err; - - output->image[i] = -- pixman_image_create_bits(PIXMAN_x8r8g8b8, w, h, -+ pixman_image_create_bits(pixman_format, w, h, - output->dumb[i]->map, - output->dumb[i]->stride); - if (!output->image[i]) --- -1.9.1 - diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-udev-seat-restrict-udev-enumeration-to-card0.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-udev-seat-restrict-udev-enumeration-to-card0.patch index 515f06c47..45d4ec7d6 100644 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-udev-seat-restrict-udev-enumeration-to-card0.patch +++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-udev-seat-restrict-udev-enumeration-to-card0.patch @@ -17,13 +17,13 @@ Upstream-Status: Pending Signed-off-by: Anand Balagopalakrishnan --- - src/compositor-drm.c | 2 +- + libweston/compositor-drm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/compositor-drm.c b/src/compositor-drm.c +diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 6777bf8..59c2cc5 100644 ---- a/src/compositor-drm.c -+++ b/src/compositor-drm.c +--- a/libweston/compositor-drm.c ++++ b/libweston/compositor-drm.c @@ -2827,7 +2827,7 @@ find_primary_gpu(struct drm_backend *b, const char *seat) e = udev_enumerate_new(b->udev); diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0002-Weston-Allow-visual_id-to-be-0.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0002-Weston-Allow-visual_id-to-be-0.patch index 39c840182..b7f467b45 100644 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0002-Weston-Allow-visual_id-to-be-0.patch +++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0002-Weston-Allow-visual_id-to-be-0.patch @@ -10,13 +10,13 @@ should be (id == visual_id || id == 0) instead of (id == visual_id) Signed-off-by: Eric Ruei --- - src/gl-renderer.c | 2 +- + libweston/gl-renderer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/gl-renderer.c b/src/gl-renderer.c +diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c index 23c0cd7..4c1f170 100644 ---- a/src/gl-renderer.c -+++ b/src/gl-renderer.c +--- a/libweston/gl-renderer.c ++++ b/libweston/gl-renderer.c @@ -2462,7 +2462,7 @@ match_config_to_visual(EGLDisplay egl_display, &id)) continue; diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch index bdf5626f7..806f4900e 100644 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch +++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch @@ -19,13 +19,13 @@ becomes visible at the first time. Signed-off-by: Eric Ruei --- - src/text-backend.c | 1 + + compositor/text-backend.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/src/text-backend.c b/src/text-backend.c +diff --git a/compositor/text-backend.c b/compositor/text-backend.c index ab4667f..36c70a5 100644 ---- a/src/text-backend.c -+++ b/src/text-backend.c +--- a/compositor/text-backend.c ++++ b/compositor/text-backend.c @@ -337,6 +337,7 @@ text_input_show_input_panel(struct wl_client *client, text_input->surface); wl_signal_emit(&ec->update_input_panel_signal, diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-Weston-Fix-touch-screen-crash-issue.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-Weston-Fix-touch-screen-crash-issue.patch index 673ca3dbc..ba20551e1 100644 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-Weston-Fix-touch-screen-crash-issue.patch +++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-Weston-Fix-touch-screen-crash-issue.patch @@ -11,13 +11,13 @@ notify_touch(). Signed-off-by: Eric Ruei --- - src/input.c | 6 ++++++ + libweston/input.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/src/input.c b/src/input.c +diff --git a/libweston/input.c b/libweston/input.c index 8fe898c..0f72d23 100644 ---- a/src/input.c -+++ b/src/input.c +--- a/libweston/input.c ++++ b/libweston/input.c @@ -1848,6 +1848,12 @@ notify_touch(struct weston_seat *seat, uint32_t time, int touch_id, * until all touch points are up again. */ if (touch->num_tp == 1) { diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston_%.bbappend b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston_%.bbappend index 8704908f2..2005b601e 100644 --- a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston_%.bbappend +++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston_%.bbappend @@ -9,17 +9,17 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" RDEPENDS_${PN} += "weston-conf" ####################### F I X M E ########################## -# FIXME pyro DISABLED_SRC_URI += " \ - file://0001-udev-seat-restrict-udev-enumeration-to-card0.patch \ file://0001-Add-soc-performance-monitor-utilites.patch \ +" +####################### F I X M E ########################## + +SRC_URI += " \ + file://0001-udev-seat-restrict-udev-enumeration-to-card0.patch \ file://0002-Weston-Allow-visual_id-to-be-0.patch \ file://0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch \ file://0004-Weston-Fix-touch-screen-crash-issue.patch \ - file://0001-compositor-drm-fix-hotplug-weston-termination-proble.patch \ - file://0001-compositor-drm-support-RGB565-with-pixman-renderer.patch \ " -####################### F I X M E ########################## RDEPENDS_${PN}_remove = "weston-conf" -- cgit 1.2.3-korg