most: add patch to enable building against newer kernels 02/26102/1
authorScott Murray <scott.murray@konsulko.com>
Thu, 25 Feb 2021 20:58:55 +0000 (15:58 -0500)
committerScott Murray <scott.murray@konsulko.com>
Thu, 25 Feb 2021 21:30:57 +0000 (16:30 -0500)
Add patch to enable building the standalone MOST driver against
kernels 5.7 or newer.

Bug-AGL: SPEC-3819

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I6d8e2f68e3f1e73e1901e07d12a8569fb65996e9

recipes-kernel/most/files/0013-Fix-build-with-5.7-kernel.patch [new file with mode: 0644]
recipes-kernel/most/most.bbappend

diff --git a/recipes-kernel/most/files/0013-Fix-build-with-5.7-kernel.patch b/recipes-kernel/most/files/0013-Fix-build-with-5.7-kernel.patch
new file mode 100644 (file)
index 0000000..85e3885
--- /dev/null
@@ -0,0 +1,54 @@
+Fix building against 5.7 or newer kernels
+
+VFL_TYPE_GRABBER was renamed VFL_TYPE_VIDEO in 5.7.  Marking as
+inappropriate for upstream for now, as it seems the standalone
+version of the driver has been superceded by the version in the
+staging tree in the mainline kernel, and there are no obvious
+signs of maintenance.
+
+Upstream-Status: Inappropriate [no upstream]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c
+index db75d4d..fbf7139 100644
+--- a/aim-v4l2/video.c
++++ b/aim-v4l2/video.c
+@@ -14,6 +14,7 @@
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ #include <linux/module.h>
++#include <linux/version.h>
+ #include <linux/slab.h>
+ #include <linux/init.h>
+ #include <linux/device.h>
+@@ -31,6 +32,11 @@
+ #define V4L2_AIM_MAX_INPUT  1
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0)
++/* Handle pre-5.7 naming */
++#define VFL_TYPE_VIDEO VFL_TYPE_GRABBER
++#endif
++
+ static struct most_aim aim_info;
+ struct most_video_dev {
+@@ -82,7 +88,7 @@ static int aim_vdev_open(struct file *filp)
+       v4l2_info(&mdev->v4l2_dev, "aim_vdev_open()\n");
+       switch (vdev->vfl_type) {
+-      case VFL_TYPE_GRABBER:
++      case VFL_TYPE_VIDEO:
+               break;
+       default:
+               return -EINVAL;
+@@ -461,7 +467,7 @@ static int aim_register_videodev(struct most_video_dev *mdev)
+       /* Register the v4l2 device */
+       video_set_drvdata(mdev->vdev, mdev);
+-      ret = video_register_device(mdev->vdev, VFL_TYPE_GRABBER, -1);
++      ret = video_register_device(mdev->vdev, VFL_TYPE_VIDEO, -1);
+       if (ret) {
+               v4l2_err(&mdev->v4l2_dev, "video_register_device failed (%d)\n",
+                        ret);
index ad422eb..b5a140f 100644 (file)
@@ -12,4 +12,5 @@ SRC_URI_append = " \
         file://0010-backport-usb-setup-timer.patch \
         file://0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch \
         file://0012-Fix-build-with-5.4-kernel.patch \
+        file://0013-Fix-build-with-5.7-kernel.patch \
 "