If DEBUG is defined it is possible to set upper left corner

Signed-off-by: Philipp Wiesner <p.wies...@phytec.de>
Signed-off-by: Michael Grzeschik <m.grzesc...@pengutronix.de>
---
 drivers/media/video/mt9m111.c |   31 +++++++++++++++++++++++--------
 1 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c
index e8d8e9b..db5ac32 100644
--- a/drivers/media/video/mt9m111.c
+++ b/drivers/media/video/mt9m111.c
@@ -428,14 +428,7 @@ static int mt9m111_make_rect(struct i2c_client *client,
                             struct v4l2_rect *rect)
 {
        struct mt9m111 *mt9m111 = to_mt9m111(client);
-
-       if (mt9m111->fmt->code == V4L2_MBUS_FMT_SBGGR8_1X8 ||
-           mt9m111->fmt->code == V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE) {
-               /* Bayer format - even size lengths */
-               rect->width     = ALIGN(rect->width, 2);
-               rect->height    = ALIGN(rect->height, 2);
-               /* Let the user play with the starting pixel */
-       }
+       enum v4l2_mbus_pixelcode code = mt9m111->fmt->code;
 
        /* FIXME: the datasheet doesn't specify minimum sizes */
        soc_camera_limit_side(&rect->left, &rect->width,
@@ -444,6 +437,28 @@ static int mt9m111_make_rect(struct i2c_client *client,
        soc_camera_limit_side(&rect->top, &rect->height,
                     MT9M111_MIN_DARK_ROWS, 2, MT9M111_MAX_HEIGHT);
 
+       switch (code) {
+       case V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE:
+               /* unprocessed Bayer pattern format, IFP is bypassed */
+#ifndef DEBUG
+               /* assure that Bayer sequence is BGGR */
+               /* in debug mode, let user play with starting pixel */
+               rect->left      = ALIGN(rect->left, 2);
+               rect->top       = ALIGN(rect->top, 2) + 1;
+#endif
+       case V4L2_MBUS_FMT_SBGGR8_1X8:
+               /* processed Bayer pattern format, sequence is fixed */
+               /* assure even side lengths for both Bayer modes */
+               rect->width     = ALIGN(rect->width, 2);
+               rect->height    = ALIGN(rect->height, 2);
+       default:
+               /* needed to avoid compiler warnings */;
+       }
+
+       dev_dbg(&client->dev, "%s: rect: left=%d top=%d width=%d height=%d "
+               "mf: pixelcode=%d\n", __func__, rect->left, rect->top,
+               rect->width, rect->height, code);
+
        return mt9m111_setup_rect(client, rect);
 }
 
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to