meta-agl-bsp: meta-ti: Rework Weston patches for 2.0 19/11019/2
authorTom Rini <trini@konsulko.com>
Fri, 22 Sep 2017 21:28:03 +0000 (17:28 -0400)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Sun, 24 Sep 2017 16:31:47 +0000 (16:31 +0000)
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 <trini@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/11019
Reviewed-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-by: Matt Ranostay <matt.ranostay@konsulko.com>
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-fix-hotplug-weston-termination-proble.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-compositor-drm-support-RGB565-with-pixman-renderer.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-udev-seat-restrict-udev-enumeration-to-card0.patch
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0002-Weston-Allow-visual_id-to-be-0.patch
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-Weston-Fix-touch-screen-crash-issue.patch
meta-agl-bsp/meta-ti/recipes-arago/weston/weston_%.bbappend

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 (file)
index fde38d5..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From 8497d95cc77af9bbdbbce03878e9fd273d94ba7f Mon Sep 17 00:00:00 2001
-From: Eric Ruei <e-ruei1@ti.com>
-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 <e-ruei1@ti.com>
----
- 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 (file)
index 0d77f52..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From 91b452fa515b94928d32af6e1b1b0405469747fd Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen@ti.com>
-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 <tomi.valkeinen@ti.com>
-Reviewed-by: Daniel Stone <daniels@collabora.com>
-Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-Signed-off-by: Daniel Stone <daniels@collabora.com>
----
- 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
-
index 515f06c..45d4ec7 100644 (file)
@@ -17,13 +17,13 @@ Upstream-Status: Pending
 
 Signed-off-by: Anand Balagopalakrishnan <anandb@ti.com>
 ---
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);
index 39c8401..b7f467b 100644 (file)
@@ -10,13 +10,13 @@ should be (id == visual_id || id == 0) instead of (id == visual_id)
 
 Signed-off-by: Eric Ruei <e-ruei1@ti.com>
 ---
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;
index bdf5626..806f490 100644 (file)
@@ -19,13 +19,13 @@ becomes visible at the first time.
 
 Signed-off-by: Eric Ruei <e-ruei1@ti.com>
 ---
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,
index 673ca3d..ba20551 100644 (file)
@@ -11,13 +11,13 @@ notify_touch().
 
 Signed-off-by: Eric Ruei <e-ruei1@ti.com>
 ---
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) {
index 8704908..2005b60 100644 (file)
@@ -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"