summaryrefslogtreecommitdiff
path: root/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0028-kmssink-use-control-node-to-setplane-to-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0028-kmssink-use-control-node-to-setplane-to-.patch')
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0028-kmssink-use-control-node-to-setplane-to-.patch108
1 files changed, 0 insertions, 108 deletions
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0028-kmssink-use-control-node-to-setplane-to-.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0028-kmssink-use-control-node-to-setplane-to-.patch
deleted file mode 100644
index 2edd593..0000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0028-kmssink-use-control-node-to-setplane-to-.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From c2dd58fac7dc43280fab80d2234193993076665c Mon Sep 17 00:00:00 2001
-From: Haihua Hu <jared.hu@nxp.com>
-Date: Tue, 8 Aug 2017 12:55:42 +0800
-Subject: [PATCH 1/3] [MMFMWK-7567] kmssink: use control node to setplane to
- avoid getting DRM-Master
-
-a workaround on Linux 4.9 for kmssink multi-user
-
-Upstream-Status: Inappropriate [i.MX specific]
-
-Signed-off-by: Haihua Hu <jared.hu@nxp.com>
----
- sys/kms/gstkmssink.c | 31 +++++++++++++++++++++++++++++--
- sys/kms/gstkmssink.h | 1 +
- 2 files changed, 30 insertions(+), 2 deletions(-)
-
-diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
-index d19e19e..e91c211 100644
---- a/sys/kms/gstkmssink.c
-+++ b/sys/kms/gstkmssink.c
-@@ -51,6 +51,8 @@
- #include <drm_fourcc.h>
-
- #include <string.h>
-+#include <fcntl.h>
-+#include <unistd.h>
-
- #include "gstkmssink.h"
- #include "gstkmsutils.h"
-@@ -485,6 +487,21 @@ ensure_allowed_caps (GstKMSSink * self, drmModeConnector * conn,
- return (self->allowed_caps && !gst_caps_is_empty (self->allowed_caps));
- }
-
-+static gint
-+get_drm_minor_base (gint type)
-+{
-+ switch (type) {
-+ case DRM_NODE_PRIMARY:
-+ return 0;
-+ case DRM_NODE_CONTROL:
-+ return 64;
-+ case DRM_NODE_RENDER:
-+ return 128;
-+ default:
-+ return -1;
-+ }
-+}
-+
- static gboolean
- gst_kms_sink_start (GstBaseSink * bsink)
- {
-@@ -496,6 +513,7 @@ gst_kms_sink_start (GstBaseSink * bsink)
- drmModePlane *plane;
- gboolean universal_planes;
- gboolean ret;
-+ gint minor;
-
- self = GST_KMS_SINK (bsink);
- universal_planes = FALSE;
-@@ -510,7 +528,11 @@ gst_kms_sink_start (GstBaseSink * bsink)
- self->fd = drmOpen (self->devname, NULL);
- else
- self->fd = kms_open (&self->devname);
-- if (self->fd < 0)
-+
-+ minor = get_drm_minor_base (DRM_NODE_CONTROL);
-+ self->ctrl_fd = drmOpenControl(minor);
-+
-+ if (self->fd < 0 || self->ctrl_fd < 0)
- goto open_failed;
-
- log_drm_version (self);
-@@ -689,6 +711,11 @@ gst_kms_sink_stop (GstBaseSink * bsink)
- self->fd = -1;
- }
-
-+ if (self->ctrl_fd >= 0) {
-+ drmClose (self->ctrl_fd);
-+ self->ctrl_fd = -1;
-+ }
-+
- return TRUE;
- }
-
-@@ -1278,7 +1305,7 @@ retry_set_plane:
- "drmModeSetPlane at (%i,%i) %ix%i sourcing at (%i,%i) %ix%i",
- result.x, result.y, result.w, result.h, src.x, src.y, src.w, src.h);
-
-- ret = drmModeSetPlane (self->fd, self->plane_id, self->crtc_id, fb_id, 0,
-+ ret = drmModeSetPlane (self->ctrl_fd, self->plane_id, self->crtc_id, fb_id, 0,
- result.x, result.y, result.w, result.h,
- /* source/cropping coordinates are given in Q16 */
- src.x << 16, src.y << 16, src.w << 16, src.h << 16);
-diff --git a/sys/kms/gstkmssink.h b/sys/kms/gstkmssink.h
-index 214f3ad..f2ab4d4 100644
---- a/sys/kms/gstkmssink.h
-+++ b/sys/kms/gstkmssink.h
-@@ -49,6 +49,7 @@ struct _GstKMSSink {
-
- /*< private >*/
- gint fd;
-+ gint ctrl_fd;
- gint conn_id;
- gint crtc_id;
- gint plane_id;
---
-1.9.1
-