brcm2708: update to latest patches from RPi foundation
[openwrt/staging/wigyori.git] / target / linux / brcm2708 / patches-4.19 / 950-0682-staging-bcm2835-codec-Add-role-to-device-name.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Add-role-to-device-name.patch b/target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Add-role-to-device-name.patch
new file mode 100644 (file)
index 0000000..4afdf8c
--- /dev/null
@@ -0,0 +1,45 @@
+From ca613ed735fc52e68189d2ad0880f1007b931d78 Mon Sep 17 00:00:00 2001
+From: Kieran Bingham <kieran.bingham@ideasonboard.com>
+Date: Wed, 20 Mar 2019 11:55:43 +0000
+Subject: [PATCH] staging: bcm2835-codec: Add role to device name
+
+Three entities are created, Decode, Encode and ISP but all of the video
+nodes use the same video name string "bcm2835-codec" which makes it
+difficult to identify each role.
+
+Append the role-name to the video name to facilitate identifying a
+specific instance from userspace.
+
+The Card-Type is also extended with the role name to support identifying
+the device context from within QUERY_CAP operations.
+
+Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
+---
+ .../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c      | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
+@@ -947,8 +947,10 @@ static void device_run(void *priv)
+ static int vidioc_querycap(struct file *file, void *priv,
+                          struct v4l2_capability *cap)
+ {
++      struct bcm2835_codec_dev *dev = video_drvdata(file);
++
+       strncpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver) - 1);
+-      strncpy(cap->card, MEM2MEM_NAME, sizeof(cap->card) - 1);
++      strncpy(cap->card, dev->vfd.name, sizeof(cap->card) - 1);
+       snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
+                MEM2MEM_NAME);
+       return 0;
+@@ -2657,8 +2659,8 @@ static int bcm2835_codec_create(struct p
+       }
+       video_set_drvdata(vfd, dev);
+-      snprintf(vfd->name, sizeof(vfd->name), "%s",
+-               bcm2835_codec_videodev.name);
++      snprintf(vfd->name, sizeof(vfd->name), "%s-%s",
++               bcm2835_codec_videodev.name, roles[role]);
+       v4l2_info(&dev->v4l2_dev, "Device registered as /dev/video%d\n",
+                 vfd->num);