If DEBUG is defined it is possible to set upper left corner Signed-off-by: Philipp Wiesner <p.wiesner@xxxxxxxxx> Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html