Commit 1bfef497 authored by Sakari Ailus's avatar Sakari Ailus Committed by Hans Verkuil
Browse files

media: v4l: subdev: Add trivial set_routing support



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: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Co-developed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarJulien Massot <julien.massot@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent 91e99e5a
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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;