diff mbox series

[meta-arago,scarthgap] libdrm: remove any rogue specific overrides

Message ID 20251112230243.190593-2-rs@ti.com
State New
Headers show
Series [meta-arago,scarthgap] libdrm: remove any rogue specific overrides | expand

Commit Message

Randolph Sapp Nov. 12, 2025, 11:02 p.m. UTC
From: Randolph Sapp <rs@ti.com>

These are being carried as local overrides in the rogue userspace
libraries, and are only exercised in required paths. These patches were
only ever required for the userspace side of the server itself, not for
individual applications.

Signed-off-by: Randolph Sapp <rs@ti.com>
---

Any remaining patches on libdrm are required for display testing or are
functions specifically added for omapdrm and should be audited by the tagged
maintainers.

 .../recipes-graphics/drm/libdrm-arago.inc     |   2 -
 ...ync-add-support-for-pre-v4.7-kernels.patch |  95 --------
 ...Add-sync_fence_info-and-sync_pt_info.patch | 215 ------------------
 3 files changed, 312 deletions(-)
 delete mode 100644 meta-arago-distro/recipes-graphics/drm/libdrm/0001-libsync-add-support-for-pre-v4.7-kernels.patch
 delete mode 100644 meta-arago-distro/recipes-graphics/drm/libdrm/0002-Add-sync_fence_info-and-sync_pt_info.patch

Comments

PRC Automation Nov. 12, 2025, 11:05 p.m. UTC | #1
meta-arago / na / 20251112230243.190593-2-rs

PRC Results: PASS

=========================================================
  check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
All patches passed



=========================================================
  apply-yocto-patch: PASS
=========================================================
scarthgap
=====================
Summary:
- Patch Series: [meta-arago][scarthgap][PATCH] libdrm: remove any rogue specific overrides
- Submitter: From: <rs@ti.com>
From: Randolph Sapp <rs@ti.com>
-From: Brendan King <Brendan.King@imgtec.com>
-From: Brendan King <Brendan.King@imgtec.com>
- Date: Date: Wed, 12 Nov 2025 17:02:44 -0600
-Date: Tue, 13 Jun 2017 15:52:44 +0100
-Date: Thu, 24 Aug 2017 13:28:38 +0100
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: 6917a8bfbc5d94a684c15f1fd9768c2e6dc31a7a

Applied to:
- Repository: lcpd-prc-meta-arago
- Base Branch: scarthgap-wip
- Commit Author: Randolph Sapp <rs@ti.com>
- Commit Subject: udev-aragoconf: aggregate generic udev rules
- Commit SHA: 39a7faf1cc1f969a1e22215e901f956df40cc8a3

Patches
----------------------------------------
All patches applied



=========================================================
  check-yocto-repo: PASS
=========================================================
scarthgap
=====================
PASS
diff mbox series

Patch

diff --git a/meta-arago-distro/recipes-graphics/drm/libdrm-arago.inc b/meta-arago-distro/recipes-graphics/drm/libdrm-arago.inc
index 68496668..80c607ca 100644
--- a/meta-arago-distro/recipes-graphics/drm/libdrm-arago.inc
+++ b/meta-arago-distro/recipes-graphics/drm/libdrm-arago.inc
@@ -4,8 +4,6 @@  SRC_URI += " \
 file://0001-Add-option-to-run-a-test-indefinitely.patch \
 file://0001-omap-fix-omap_bo_size-for-tiled-buffers.patch \
 file://0002-omap-add-OMAP_BO-flags-to-affect-buffer-allocation.patch \
-file://0001-libsync-add-support-for-pre-v4.7-kernels.patch \
-file://0002-Add-sync_fence_info-and-sync_pt_info.patch \
 "
 
 PR:append = ".arago4"
diff --git a/meta-arago-distro/recipes-graphics/drm/libdrm/0001-libsync-add-support-for-pre-v4.7-kernels.patch b/meta-arago-distro/recipes-graphics/drm/libdrm/0001-libsync-add-support-for-pre-v4.7-kernels.patch
deleted file mode 100644
index d645bab6..00000000
--- a/meta-arago-distro/recipes-graphics/drm/libdrm/0001-libsync-add-support-for-pre-v4.7-kernels.patch
+++ /dev/null
@@ -1,95 +0,0 @@ 
-From 900afd25d9a35b2b8fd29f8c424aa3c3cd170d6f Mon Sep 17 00:00:00 2001
-From: Brendan King <Brendan.King@imgtec.com>
-Date: Tue, 13 Jun 2017 15:52:44 +0100
-Subject: [PATCH 1/2] libsync: add support for pre-v4.7 kernels
-
-Add support for the the sync merge ioctl supported by older kernels.
-
-Upstream-Status: Pending
-
----
- libsync.h | 44 +++++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 41 insertions(+), 3 deletions(-)
-
-diff --git a/libsync.h b/libsync.h
-index f1a2f96d..c3b8a385 100644
---- a/libsync.h
-+++ b/libsync.h
-@@ -40,6 +40,10 @@
- extern "C" {
- #endif
- 
-+#ifndef SYNC_IOC_MAGIC
-+#define SYNC_IOC_MAGIC		'>'
-+#endif
-+
- #ifndef SYNC_IOC_MERGE
- /* duplicated from linux/sync_file.h to avoid build-time dependency
-  * on new (v4.7) kernel headers.  Once distro's are mostly using
-@@ -53,10 +57,22 @@ struct sync_merge_data {
- 	uint32_t	flags;
- 	uint32_t	pad;
- };
--#define SYNC_IOC_MAGIC		'>'
- #define SYNC_IOC_MERGE		_IOWR(SYNC_IOC_MAGIC, 3, struct sync_merge_data)
- #endif
- 
-+#ifndef SYNC_IOC_LEGACY_MERGE
-+/* the legacy definitions are based on the contents of
-+ * drivers/staging/android/uapi/sync.h in the v4.4 kernel.
-+ */
-+struct sync_legacy_merge_data {
-+	int32_t	fd2;
-+	char	name[32];
-+	int32_t	fence;
-+};
-+
-+#define SYNC_IOC_LEGACY_MERGE	_IOWR(SYNC_IOC_MAGIC, 1, \
-+	struct sync_legacy_merge_data)
-+#endif
- 
- static inline int sync_wait(int fd, int timeout)
- {
-@@ -83,6 +99,24 @@ static inline int sync_wait(int fd, int timeout)
- 	return ret;
- }
- 
-+static inline int sync_legacy_merge(const char *name, int fd1, int fd2)
-+{
-+	struct sync_legacy_merge_data data;
-+	int ret;
-+
-+	data.fd2 = fd2;
-+	strncpy(data.name, name, sizeof(data.name));
-+
-+	do {
-+		ret = ioctl(fd1, SYNC_IOC_LEGACY_MERGE, &data);
-+	} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-+
-+	if (ret < 0)
-+		return ret;
-+
-+	return data.fence;
-+}
-+
- static inline int sync_merge(const char *name, int fd1, int fd2)
- {
- 	struct sync_merge_data data = {0};
-@@ -95,8 +129,12 @@ static inline int sync_merge(const char *name, int fd1, int fd2)
- 		ret = ioctl(fd1, SYNC_IOC_MERGE, &data);
- 	} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
- 
--	if (ret < 0)
--		return ret;
-+	if (ret < 0) {
-+		if (errno == ENOTTY)
-+			return sync_legacy_merge(name, fd1, fd2);
-+		else
-+			return ret;
-+	}
- 
- 	return data.fence;
- }
--- 
-2.17.1
-
diff --git a/meta-arago-distro/recipes-graphics/drm/libdrm/0002-Add-sync_fence_info-and-sync_pt_info.patch b/meta-arago-distro/recipes-graphics/drm/libdrm/0002-Add-sync_fence_info-and-sync_pt_info.patch
deleted file mode 100644
index 2786c04d..00000000
--- a/meta-arago-distro/recipes-graphics/drm/libdrm/0002-Add-sync_fence_info-and-sync_pt_info.patch
+++ /dev/null
@@ -1,215 +0,0 @@ 
-From 09da458d04e048a80500feb7d167a4faac56f84e Mon Sep 17 00:00:00 2001
-From: Brendan King <Brendan.King@imgtec.com>
-Date: Thu, 24 Aug 2017 13:28:38 +0100
-Subject: [PATCH 2/2] Add sync_fence_info and sync_pt_info
-
-For pre-4.7 kernels, sync_fence_info returns the data from the
-SYNC_IOC_FENCE_INFO ioctl. For newer kernels, the SYNC_IOC_FILE_INFO
-ioctl is called, and the data converted to SYNC_IOC_FENCE_INFO form.
-
-Upstream-Status: Pending
-
----
- libsync.h | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 172 insertions(+)
-
-diff --git a/libsync.h b/libsync.h
-index c3b8a385..44f7330d 100644
---- a/libsync.h
-+++ b/libsync.h
-@@ -31,6 +31,7 @@
- #include <assert.h>
- #include <errno.h>
- #include <stdint.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <sys/ioctl.h>
- #include <sys/poll.h>
-@@ -74,6 +75,54 @@ struct sync_legacy_merge_data {
- 	struct sync_legacy_merge_data)
- #endif
- 
-+#ifndef SYNC_IOC_FILE_INFO
-+/* duplicated from linux/sync_file.h to avoid a build-time dependency
-+ * on new (v4.7) kernel headers.
-+ */
-+struct sync_fence_info {
-+	char		obj_name[32];
-+	char		driver_name[32];
-+	int32_t		status;
-+	uint32_t	flags;
-+	uint64_t	timestamp_ns;
-+};
-+
-+struct sync_file_info {
-+	char		name[32];
-+	int32_t		status;
-+	uint32_t	flags;
-+	uint32_t	num_fences;
-+	uint32_t	pad;
-+	uint64_t	sync_fence_info;
-+};
-+
-+#define SYNC_IOC_FILE_INFO	_IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info)
-+#endif
-+
-+#ifndef SYNC_IOC_LEGACY_FENCE_INFO
-+/* the legacy definitions are based on the contents of
-+ * drivers/staging/android/uapi/sync.h in the v4.4 kernel.
-+ */
-+struct sync_pt_info {
-+	uint32_t	len;
-+	char		obj_name[32];
-+	char		driver_name[32];
-+	int32_t		status;
-+	uint64_t	timestamp_ns;
-+	uint8_t		driver_data[0];
-+};
-+
-+struct sync_fence_info_data {
-+	uint32_t	len;
-+	char		name[32];
-+	int32_t		status;
-+	uint8_t		pt_info[0];
-+};
-+
-+#define SYNC_IOC_LEGACY_FENCE_INFO	_IOWR(SYNC_IOC_MAGIC, 2, \
-+	struct sync_fence_info_data)
-+#endif
-+
- static inline int sync_wait(int fd, int timeout)
- {
- 	struct pollfd fds = {0};
-@@ -179,6 +228,129 @@ static inline int sync_accumulate(const char *name, int *fd1, int fd2)
- 	return 0;
- }
- 
-+static inline struct sync_pt_info *sync_pt_info(
-+					struct sync_fence_info_data *info,
-+					struct sync_pt_info *pt_info)
-+{
-+	if (!pt_info)
-+		pt_info = (struct sync_pt_info *)info->pt_info;
-+	else
-+		pt_info = (struct sync_pt_info *)((uint8_t *)pt_info +
-+				pt_info->len);
-+
-+	if ((uint32_t)((uint8_t *)pt_info - (uint8_t *)info) >= info->len)
-+		return NULL;
-+
-+	return pt_info;
-+}
-+
-+static inline struct sync_fence_info_data *sync_legacy_fence_info(int fd)
-+{
-+	const uint32_t len = 4096;
-+	struct sync_fence_info_data *info = malloc(len);
-+	int ret;
-+
-+	if (!info)
-+		return NULL;
-+
-+	info->len = len;
-+
-+	do {
-+		ret = ioctl(fd, SYNC_IOC_LEGACY_FENCE_INFO, info);
-+	} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-+
-+	if (ret < 0) {
-+		free(info);
-+		return NULL;
-+	}
-+
-+	return info;
-+}
-+
-+static inline struct sync_fence_info_data *fence_info_from_file_info(
-+					struct sync_file_info *file_info,
-+					uint32_t num_fences)
-+{
-+	struct sync_fence_info_data *info;
-+	size_t info_len;
-+	struct sync_pt_info *pt_info = NULL;
-+	struct sync_fence_info *fence_info;
-+	uint32_t i;
-+
-+	info_len = sizeof(*info) + num_fences * sizeof(*pt_info);
-+	info = malloc(info_len);
-+	if (!info)
-+		return NULL;
-+
-+	info->len = info_len;
-+	strncpy(info->name, file_info->name, sizeof(info->name));
-+	info->status = file_info->status;
-+
-+	fence_info = (struct sync_fence_info *)(uintptr_t)
-+			file_info->sync_fence_info;
-+	for (i = 0; i < num_fences; i++) {
-+		pt_info = sync_pt_info(info, pt_info);
-+		assert(pt_info);
-+
-+		pt_info->len = sizeof(*pt_info);
-+		strncpy(pt_info->obj_name, fence_info->obj_name,
-+			sizeof(pt_info->obj_name));
-+		strncpy(pt_info->driver_name, fence_info->driver_name,
-+			sizeof(pt_info->driver_name));
-+		pt_info->status = fence_info->status;
-+		pt_info->timestamp_ns = fence_info->timestamp_ns;
-+
-+		fence_info++;
-+	}
-+
-+	return info;
-+}
-+
-+static inline struct sync_fence_info_data *sync_fence_info(int fd)
-+{
-+	struct sync_fence_info_data *info = NULL;
-+	struct sync_file_info initial_info = {""};
-+	struct sync_file_info *file_info;
-+	int ret;
-+
-+	do {
-+		ret = ioctl(fd, SYNC_IOC_FILE_INFO, &initial_info);
-+	} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-+
-+	if (ret < 0) {
-+		if (errno == ENOTTY)
-+			return sync_legacy_fence_info(fd);
-+		else
-+			return NULL;
-+	}
-+
-+	file_info = calloc(1, sizeof(*file_info) + initial_info.num_fences *
-+				sizeof(struct sync_fence_info));
-+	if (!file_info)
-+		return NULL;
-+
-+	file_info->num_fences = initial_info.num_fences;
-+	file_info->sync_fence_info = (uint64_t)(uintptr_t)(file_info + 1);
-+
-+	do {
-+		ret = ioctl(fd, SYNC_IOC_FILE_INFO, file_info);
-+	} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-+
-+	if (ret < 0)
-+		goto free_file_info;
-+
-+	info = fence_info_from_file_info(file_info, initial_info.num_fences);
-+
-+free_file_info:
-+	free(file_info);
-+
-+	return info;
-+}
-+
-+static inline void sync_fence_info_free(struct sync_fence_info_data *info)
-+{
-+	free(info);
-+}
- #if defined(__cplusplus)
- }
- #endif
--- 
-2.17.1
-