Moi,
On Wed, Aug 02, 2023 at 02:04:57PM +0300, Tomi Valkeinen wrote:
+static int ti_csi2rx_enum_fmt_vid_cap(struct file *file, void *priv,
+ struct v4l2_fmtdesc *f)
+{
+ const struct ti_csi2rx_fmt *fmt = NULL;
+
+ if (f->mbus_code) {
+ if (f->index > 0)
+ return -EINVAL;
This fails to enumerate the formats if mbus_code is set, doesn't it?
This is intentional: if the mbus_code field is set, you're supposed to get
only format(s) corresponding to that mbus code.
+
+ fmt = find_format_by_code(f->mbus_code);
+ } else {
+ if (f->index >= num_formats)
+ return -EINVAL;
+
+ fmt = &formats[f->index];
+ }
+
+ if (!fmt)
+ return -EINVAL;
+
+ f->pixelformat = fmt->fourcc;
+ memset(f->reserved, 0, sizeof(f->reserved));
+ f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ return 0;
+}