media: imx-csi: Move crop/compose reset after filling default mbus fields
If caller passes un-initialized field type V4L2_FIELD_ANY to CSI sink pad, the reset CSI crop window would not be correct, because the crop window depends on a valid input field type. To fix move the reset of crop and compose windows to after the call to imx_media_fill_default_mbus_fields(). Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
6e537b58de
commit
ab2f05cdb1
|
@ -1409,19 +1409,6 @@ static void csi_try_fmt(struct csi_priv *priv,
|
||||||
W_ALIGN, &sdformat->format.height,
|
W_ALIGN, &sdformat->format.height,
|
||||||
MIN_H, MAX_H, H_ALIGN, S_ALIGN);
|
MIN_H, MAX_H, H_ALIGN, S_ALIGN);
|
||||||
|
|
||||||
/* Reset crop and compose rectangles */
|
|
||||||
crop->left = 0;
|
|
||||||
crop->top = 0;
|
|
||||||
crop->width = sdformat->format.width;
|
|
||||||
crop->height = sdformat->format.height;
|
|
||||||
if (sdformat->format.field == V4L2_FIELD_ALTERNATE)
|
|
||||||
crop->height *= 2;
|
|
||||||
csi_try_crop(priv, crop, cfg, &sdformat->format, upstream_ep);
|
|
||||||
compose->left = 0;
|
|
||||||
compose->top = 0;
|
|
||||||
compose->width = crop->width;
|
|
||||||
compose->height = crop->height;
|
|
||||||
|
|
||||||
*cc = imx_media_find_mbus_format(sdformat->format.code,
|
*cc = imx_media_find_mbus_format(sdformat->format.code,
|
||||||
CS_SEL_ANY, true);
|
CS_SEL_ANY, true);
|
||||||
if (!*cc) {
|
if (!*cc) {
|
||||||
|
@ -1437,6 +1424,20 @@ static void csi_try_fmt(struct csi_priv *priv,
|
||||||
imx_media_fill_default_mbus_fields(
|
imx_media_fill_default_mbus_fields(
|
||||||
&sdformat->format, infmt,
|
&sdformat->format, infmt,
|
||||||
priv->active_output_pad == CSI_SRC_PAD_DIRECT);
|
priv->active_output_pad == CSI_SRC_PAD_DIRECT);
|
||||||
|
|
||||||
|
/* Reset crop and compose rectangles */
|
||||||
|
crop->left = 0;
|
||||||
|
crop->top = 0;
|
||||||
|
crop->width = sdformat->format.width;
|
||||||
|
crop->height = sdformat->format.height;
|
||||||
|
if (sdformat->format.field == V4L2_FIELD_ALTERNATE)
|
||||||
|
crop->height *= 2;
|
||||||
|
csi_try_crop(priv, crop, cfg, &sdformat->format, upstream_ep);
|
||||||
|
compose->left = 0;
|
||||||
|
compose->top = 0;
|
||||||
|
compose->width = crop->width;
|
||||||
|
compose->height = crop->height;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue