media: imx: imx7-media-csi: Fix video field handling
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 10 Mar 2020 16:06:29 +0000 (17:06 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 12 Mar 2020 16:31:06 +0000 (17:31 +0100)
Commit 4791bd7d6adc ("media: imx: Try colorimetry at both sink and
source pads") reworked the way that formats are set on the sink pad of
the CSI subdevice, and accidentally removed video field handling.
Restore it by defaulting to V4L2_FIELD_NONE if the field value isn't
supported, with the only two supported value being V4L2_FIELD_NONE and
V4L2_FIELD_INTERLACED.

Fixes: 4791bd7d6adc ("media: imx: Try colorimetry at both sink and source pads")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/imx/imx7-media-csi.c

index 3e5faaff6c0e3b9de70a032c0820133d5243cfe9..3da1e79f1bad48890d34a128f9701401c221b8b7 100644 (file)
@@ -1009,6 +1009,7 @@ static int imx7_csi_try_fmt(struct imx7_csi *csi,
                sdformat->format.width = in_fmt->width;
                sdformat->format.height = in_fmt->height;
                sdformat->format.code = in_fmt->code;
+               sdformat->format.field = in_fmt->field;
                *cc = in_cc;
 
                sdformat->format.colorspace = in_fmt->colorspace;
@@ -1025,6 +1026,9 @@ static int imx7_csi_try_fmt(struct imx7_csi *csi,
                                                         false);
                        sdformat->format.code = (*cc)->codes[0];
                }
+
+               if (sdformat->format.field != V4L2_FIELD_INTERLACED)
+                       sdformat->format.field = V4L2_FIELD_NONE;
                break;
        default:
                return -EINVAL;