From 1bc05e77db1b0c2f5ec3917a9b21d64c01342b5f Mon Sep 17 00:00:00 2001 From: Sylwester Nawrocki Date: Mon, 26 Nov 2012 11:08:26 -0300 Subject: [PATCH] [media] s5p-fimc: Fix horizontal/vertical image flip Setting FIMC_REG_CITRGFMT_FLIP_X_MIRROR bit causes X-axis image flip (vertical flip) and thus it corresponds to V4L2_CID_VFLIP. Likewise, setting FIMC_REG_CITRGFMT_FLIP_Y_MIRROR bit causes Y-axis image flip (horizontal flip) and thus it corresponds to V4L2_CID_HFLIP. Currently the driver does X-axis flip when V4L2_CID_HFLIP is set and Y-axis flip for V4L2_CID_VFLIP. Fix this incorrect assignment by setting proper FIMC_REG_CITRGFMT register bits for ctx->hflip and ctx->vflip. Reported-by: Kyungmin Park Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/s5p-fimc/fimc-reg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/s5p-fimc/fimc-reg.c b/drivers/media/platform/s5p-fimc/fimc-reg.c index 2c9d0c0..9c3c461 100644 --- a/drivers/media/platform/s5p-fimc/fimc-reg.c +++ b/drivers/media/platform/s5p-fimc/fimc-reg.c @@ -44,9 +44,9 @@ static u32 fimc_hw_get_in_flip(struct fimc_ctx *ctx) u32 flip = FIMC_REG_MSCTRL_FLIP_NORMAL; if (ctx->hflip) - flip = FIMC_REG_MSCTRL_FLIP_X_MIRROR; - if (ctx->vflip) flip = FIMC_REG_MSCTRL_FLIP_Y_MIRROR; + if (ctx->vflip) + flip = FIMC_REG_MSCTRL_FLIP_X_MIRROR; if (ctx->rotation <= 90) return flip; @@ -59,9 +59,9 @@ static u32 fimc_hw_get_target_flip(struct fimc_ctx *ctx) u32 flip = FIMC_REG_CITRGFMT_FLIP_NORMAL; if (ctx->hflip) - flip |= FIMC_REG_CITRGFMT_FLIP_X_MIRROR; - if (ctx->vflip) flip |= FIMC_REG_CITRGFMT_FLIP_Y_MIRROR; + if (ctx->vflip) + flip |= FIMC_REG_CITRGFMT_FLIP_X_MIRROR; if (ctx->rotation <= 90) return flip; -- 2.7.4