45 lines
1.5 KiB
Diff
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
|
|
|