Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: i2c: vgxy61: Report stream using frame descriptors

Add support for .get_frame_desc() to report CSI-2 virtual channel
and data type information. This allows CSI-2 receivers to properly
interpret the stream without inferring the data type from the pixel
format.

Signed-off-by: Julien Massot <julien.massot@collabora.com>
Reviewed-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Julien Massot and committed by
Hans Verkuil
5ae50740 9db72db2

+16
+16
drivers/media/i2c/vgxy61.c
··· 1181 1181 return ret; 1182 1182 } 1183 1183 1184 + static int vgxy61_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, 1185 + struct v4l2_mbus_frame_desc *fd) 1186 + { 1187 + struct vgxy61_dev *sensor = to_vgxy61_dev(sd); 1188 + 1189 + fd->type = V4L2_MBUS_FRAME_DESC_TYPE_CSI2; 1190 + fd->num_entries = 1; 1191 + fd->entry[0].pixelcode = sensor->fmt.code; 1192 + fd->entry[0].stream = 0; 1193 + fd->entry[0].bus.csi2.vc = 0; 1194 + fd->entry[0].bus.csi2.dt = get_data_type_by_code(sensor->fmt.code); 1195 + 1196 + return 0; 1197 + } 1198 + 1184 1199 static int vgxy61_set_fmt(struct v4l2_subdev *sd, 1185 1200 struct v4l2_subdev_state *sd_state, 1186 1201 struct v4l2_subdev_format *format) ··· 1417 1402 .set_fmt = vgxy61_set_fmt, 1418 1403 .get_selection = vgxy61_get_selection, 1419 1404 .enum_frame_size = vgxy61_enum_frame_size, 1405 + .get_frame_desc = vgxy61_get_frame_desc, 1420 1406 }; 1421 1407 1422 1408 static const struct v4l2_subdev_ops vgxy61_subdev_ops = {