This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: v4l: subdev: Add trivial set_routing support
Author:  Sakari Ailus <sakari.ai...@linux.intel.com>
Date:    Thu Aug 31 15:40:07 2023 +0300

Add trivial S_ROUTING IOCTL support for drivers where routing is static.
Essentially this means returning the same information G_ROUTING call would
have done.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Co-developed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Reviewed-by: Julien Massot <julien.mas...@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 drivers/media/v4l2-core/v4l2-subdev.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

---

diff --git a/drivers/media/v4l2-core/v4l2-subdev.c 
b/drivers/media/v4l2-core/v4l2-subdev.c
index 3d1ed8ab5229..8470d6eda9a3 100644
--- a/drivers/media/v4l2-core/v4l2-subdev.c
+++ b/drivers/media/v4l2-core/v4l2-subdev.c
@@ -1013,6 +1013,20 @@ static long subdev_do_ioctl(struct file *file, unsigned 
int cmd, void *arg,
                                return -EINVAL;
                }
 
+               /*
+                * If the driver doesn't support setting routing, just return
+                * the routing table.
+                */
+               if (!v4l2_subdev_has_op(sd, pad, set_routing)) {
+                       memcpy((struct v4l2_subdev_route 
*)(uintptr_t)routing->routes,
+                              state->routing.routes,
+                              min(state->routing.num_routes, 
routing->len_routes) *
+                              sizeof(*state->routing.routes));
+                       routing->num_routes = state->routing.num_routes;
+
+                       return 0;
+               }
+
                krouting.num_routes = routing->num_routes;
                krouting.len_routes = routing->len_routes;
                krouting.routes = routes;

Reply via email to