Commit ab2f05cd authored by Steve Longerbeam's avatar Steve Longerbeam Committed by Mauro Carvalho Chehab

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: default avatarSteve Longerbeam <slongerbeam@gmail.com>
Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 6e537b58
...@@ -1409,19 +1409,6 @@ static void csi_try_fmt(struct csi_priv *priv, ...@@ -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, ...@@ -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;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment