buildroot/package/eudev/0002-Fix-compile-time-issue...

45 lines
1.5 KiB
Diff

From 09b536e0b9d0964674936901ab9d2954f935c8b4 Mon Sep 17 00:00:00 2001
From: Stefan Ott <stefan@ott.net>
Date: Wed, 5 Apr 2023 18:20:37 +0200
Subject: [PATCH] Fix compile-time issue on very old kernels
Kernel versions prior to 3.4 did not have V4L2_CAP_DEVICE_CAPS and
compiling against such a kernel will fail.
This patch introduces a version check and makes eudev fall back to
v2cap.capabilities on these kernels.
Upstream: https://github.com/eudev-project/eudev/commit/09b536e0b9d0964674936901ab9d2954f935c8b4
Signed-off-by: Stefan Ott <stefan@ott.net>
---
src/v4l_id/v4l_id.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/v4l_id/v4l_id.c b/src/v4l_id/v4l_id.c
index 6bf45effe..702d5b687 100644
--- a/src/v4l_id/v4l_id.c
+++ b/src/v4l_id/v4l_id.c
@@ -28,6 +28,7 @@
#include <sys/types.h>
#include <sys/time.h>
#include <sys/ioctl.h>
+#include <linux/version.h>
#include <linux/videodev2.h>
#include "util.h"
@@ -71,9 +72,11 @@ int main(int argc, char *argv[]) {
printf("ID_V4L_VERSION=2\n");
printf("ID_V4L_PRODUCT=%s\n", v2cap.card);
printf("ID_V4L_CAPABILITIES=:");
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)
if (v2cap.capabilities & V4L2_CAP_DEVICE_CAPS)
capabilities = v2cap.device_caps;
else
+#endif
capabilities = v2cap.capabilities;
if ((capabilities & V4L2_CAP_VIDEO_CAPTURE) > 0 ||
(capabilities & V4L2_CAP_VIDEO_CAPTURE_MPLANE) > 0)
--
2.40.0