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 the current 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 <steve_longerb...@mentor.com>
---
 drivers/staging/media/imx/imx-media-csi.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/media/imx/imx-media-csi.c 
b/drivers/staging/media/imx/imx-media-csi.c
index c878a00..471130a 100644
--- a/drivers/staging/media/imx/imx-media-csi.c
+++ b/drivers/staging/media/imx/imx-media-csi.c
@@ -1358,17 +1358,6 @@ static void csi_try_fmt(struct csi_priv *priv,
                                      W_ALIGN, &sdformat->format.height,
                                      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;
-               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,
                                                 CS_SEL_ANY, true);
                if (!*cc) {
@@ -1385,6 +1374,17 @@ static void csi_try_fmt(struct csi_priv *priv,
                        &sdformat->format, infmt,
                        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;
+               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;
        }
 }
-- 
2.7.4

Reply via email to