mirror of
git://git.yoctoproject.org/meta-raspberrypi.git
synced 2025-07-19 12:39:02 +02:00

There is new patch-status QA check in oe-core: https://git.openembedded.org/openembedded-core/commit/?id=76a685bfcf927593eac67157762a53259089ea8a This is temporary work around just to hide _many_ warnings from optional patch-status (if you add it to WARN_QA). This just added Upstream-Status: Pending everywhere without actually investigating what's the proper status. This is just to hide current QA warnings and to catch new .patch files being added without Upstream-Status, but the number of Pending patches is now terrible: Patches in Pending state: 41 (57%) With recent change to enable patch-status not only for all .patch files in oe-core, but for all recipes from oe-core: https://git.openembedded.org/openembedded-core/commit/?id=61a881fdbe8b5a21c6276b8a5d06cc30486b1eb3 this causes bluez5 do_patch failures as reported in: https://lists.openembedded.org/g/openembedded-core/message/183177 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
92 lines
2.9 KiB
Diff
92 lines
2.9 KiB
Diff
From bdb5bbe994b91a7c64ca6103fbf2bbd590e6b8e5 Mon Sep 17 00:00:00 2001
|
|
From: Khem Raj <raj.khem@gmail.com>
|
|
Date: Sat, 2 Apr 2016 10:54:59 -0700
|
|
Subject: [PATCH] implement buffer wrapping interface for dispmanx
|
|
|
|
Courtesy: Zan Dobersek
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
---
|
|
Upstream-Status: Pending
|
|
|
|
interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++
|
|
interface/wayland/dispmanx.xml | 10 +++++++
|
|
2 files changed, 52 insertions(+)
|
|
|
|
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
|
|
index 5730743..9ef89cd 100644
|
|
--- a/interface/khronos/ext/egl_wayland.c
|
|
+++ b/interface/khronos/ext/egl_wayland.c
|
|
@@ -133,8 +133,50 @@ dispmanx_create_buffer(struct wl_client *client, struct wl_resource *resource,
|
|
buffer->handle);
|
|
}
|
|
|
|
+static void
|
|
+dispmanx_wrap_buffer(struct wl_client *client, struct wl_resource *resource,
|
|
+ uint32_t id, uint32_t handle, int32_t width, int32_t height,
|
|
+ uint32_t stride, uint32_t buffer_height, uint32_t format)
|
|
+{
|
|
+ struct wl_dispmanx_server_buffer *buffer;
|
|
+ VC_IMAGE_TYPE_T vc_format = get_vc_format(format);
|
|
+ uint32_t dummy;
|
|
+
|
|
+ if(vc_format == VC_IMAGE_MIN) {
|
|
+ wl_resource_post_error(resource,
|
|
+ WL_DISPMANX_ERROR_INVALID_FORMAT,
|
|
+ "invalid format");
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ buffer = calloc(1, sizeof *buffer);
|
|
+ if (buffer == NULL) {
|
|
+ wl_resource_post_no_memory(resource);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ buffer->handle = handle;
|
|
+ buffer->width = width;
|
|
+ buffer->height = height;
|
|
+ buffer->format = format;
|
|
+
|
|
+ buffer->resource = wl_resource_create(resource->client, &wl_buffer_interface,
|
|
+ 1, id);
|
|
+ if (!buffer->resource) {
|
|
+ wl_resource_post_no_memory(resource);
|
|
+ vc_dispmanx_resource_delete(buffer->handle);
|
|
+ free(buffer);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ wl_resource_set_implementation(buffer->resource,
|
|
+ (void (**)(void)) &dispmanx_buffer_interface,
|
|
+ buffer, destroy_buffer);
|
|
+}
|
|
+
|
|
static const struct wl_dispmanx_interface dispmanx_interface = {
|
|
dispmanx_create_buffer,
|
|
+ dispmanx_wrap_buffer,
|
|
};
|
|
|
|
static void
|
|
diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml
|
|
index c18626d..11ed1ef 100644
|
|
--- a/interface/wayland/dispmanx.xml
|
|
+++ b/interface/wayland/dispmanx.xml
|
|
@@ -118,6 +118,16 @@
|
|
<arg name="buffer" type="object" interface="wl_buffer"/>
|
|
<arg name="handle" type="uint"/>
|
|
</event>
|
|
+
|
|
+ <request name="wrap_buffer">
|
|
+ <arg name="id" type="new_id" interface="wl_buffer"/>
|
|
+ <arg name="handle" type="uint"/>
|
|
+ <arg name="width" type="int"/>
|
|
+ <arg name="height" type="int"/>
|
|
+ <arg name="stride" type="uint"/>
|
|
+ <arg name="buffer_height" type="uint"/>
|
|
+ <arg name="format" type="uint"/>
|
|
+ </request>
|
|
</interface>
|
|
|
|
</protocol>
|