mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 19:01:37 +00:00
[media] s5p-fimc: fix the value of YUV422 1-plane formats
Some color formats are mismatched in s5p-fimc driver. CIOCTRL[1:0], order422_out, should be set 2b'00 not 2b'11 to use V4L2_PIX_FMT_YUYV. Because in V4L2 standard V4L2_PIX_FMT_YUYV means "start + 0: Y'00 Cb00 Y'01 Cr00 Y'02 Cb01 Y'03 Cr01". According to datasheet 2b'00 is right value for V4L2_PIX_FMT_YUYV. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
a25be18dfb
commit
10038bea7a
@ -450,34 +450,34 @@ static void fimc_set_yuv_order(struct fimc_ctx *ctx)
|
||||
/* Set order for 1 plane input formats. */
|
||||
switch (ctx->s_frame.fmt->color) {
|
||||
case S5P_FIMC_YCRYCB422:
|
||||
ctx->in_order_1p = S5P_FIMC_IN_YCRYCB;
|
||||
ctx->in_order_1p = S5P_MSCTRL_ORDER422_CBYCRY;
|
||||
break;
|
||||
case S5P_FIMC_CBYCRY422:
|
||||
ctx->in_order_1p = S5P_FIMC_IN_CBYCRY;
|
||||
ctx->in_order_1p = S5P_MSCTRL_ORDER422_YCRYCB;
|
||||
break;
|
||||
case S5P_FIMC_CRYCBY422:
|
||||
ctx->in_order_1p = S5P_FIMC_IN_CRYCBY;
|
||||
ctx->in_order_1p = S5P_MSCTRL_ORDER422_YCBYCR;
|
||||
break;
|
||||
case S5P_FIMC_YCBYCR422:
|
||||
default:
|
||||
ctx->in_order_1p = S5P_FIMC_IN_YCBYCR;
|
||||
ctx->in_order_1p = S5P_MSCTRL_ORDER422_CRYCBY;
|
||||
break;
|
||||
}
|
||||
dbg("ctx->in_order_1p= %d", ctx->in_order_1p);
|
||||
|
||||
switch (ctx->d_frame.fmt->color) {
|
||||
case S5P_FIMC_YCRYCB422:
|
||||
ctx->out_order_1p = S5P_FIMC_OUT_YCRYCB;
|
||||
ctx->out_order_1p = S5P_CIOCTRL_ORDER422_CBYCRY;
|
||||
break;
|
||||
case S5P_FIMC_CBYCRY422:
|
||||
ctx->out_order_1p = S5P_FIMC_OUT_CBYCRY;
|
||||
ctx->out_order_1p = S5P_CIOCTRL_ORDER422_YCRYCB;
|
||||
break;
|
||||
case S5P_FIMC_CRYCBY422:
|
||||
ctx->out_order_1p = S5P_FIMC_OUT_CRYCBY;
|
||||
ctx->out_order_1p = S5P_CIOCTRL_ORDER422_YCBYCR;
|
||||
break;
|
||||
case S5P_FIMC_YCBYCR422:
|
||||
default:
|
||||
ctx->out_order_1p = S5P_FIMC_OUT_YCBYCR;
|
||||
ctx->out_order_1p = S5P_CIOCTRL_ORDER422_CRYCBY;
|
||||
break;
|
||||
}
|
||||
dbg("ctx->out_order_1p= %d", ctx->out_order_1p);
|
||||
|
@ -99,18 +99,6 @@ enum fimc_color_fmt {
|
||||
|
||||
#define fimc_fmt_is_rgb(x) ((x) & 0x10)
|
||||
|
||||
/* Y/Cb/Cr components order at DMA output for 1 plane YCbCr 4:2:2 formats. */
|
||||
#define S5P_FIMC_OUT_CRYCBY S5P_CIOCTRL_ORDER422_CRYCBY
|
||||
#define S5P_FIMC_OUT_CBYCRY S5P_CIOCTRL_ORDER422_YCRYCB
|
||||
#define S5P_FIMC_OUT_YCRYCB S5P_CIOCTRL_ORDER422_CBYCRY
|
||||
#define S5P_FIMC_OUT_YCBYCR S5P_CIOCTRL_ORDER422_YCBYCR
|
||||
|
||||
/* Input Y/Cb/Cr components order for 1 plane YCbCr 4:2:2 color formats. */
|
||||
#define S5P_FIMC_IN_CRYCBY S5P_MSCTRL_ORDER422_CRYCBY
|
||||
#define S5P_FIMC_IN_CBYCRY S5P_MSCTRL_ORDER422_YCRYCB
|
||||
#define S5P_FIMC_IN_YCRYCB S5P_MSCTRL_ORDER422_CBYCRY
|
||||
#define S5P_FIMC_IN_YCBYCR S5P_MSCTRL_ORDER422_YCBYCR
|
||||
|
||||
/* Cb/Cr chrominance components order for 2 plane Y/CbCr 4:2:2 formats. */
|
||||
#define S5P_FIMC_LSB_CRCB S5P_CIOCTRL_ORDER422_2P_LSB_CRCB
|
||||
|
||||
|
@ -98,8 +98,8 @@
|
||||
#define S5P_CIOCTRL 0x4c
|
||||
#define S5P_CIOCTRL_ORDER422_MASK (3 << 0)
|
||||
#define S5P_CIOCTRL_ORDER422_CRYCBY (0 << 0)
|
||||
#define S5P_CIOCTRL_ORDER422_YCRYCB (1 << 0)
|
||||
#define S5P_CIOCTRL_ORDER422_CBYCRY (2 << 0)
|
||||
#define S5P_CIOCTRL_ORDER422_CBYCRY (1 << 0)
|
||||
#define S5P_CIOCTRL_ORDER422_YCRYCB (2 << 0)
|
||||
#define S5P_CIOCTRL_ORDER422_YCBYCR (3 << 0)
|
||||
#define S5P_CIOCTRL_LASTIRQ_ENABLE (1 << 2)
|
||||
#define S5P_CIOCTRL_YCBCR_3PLANE (0 << 3)
|
||||
@ -223,10 +223,10 @@
|
||||
#define S5P_MSCTRL_FLIP_Y_MIRROR (2 << 13)
|
||||
#define S5P_MSCTRL_FLIP_180 (3 << 13)
|
||||
#define S5P_MSCTRL_ORDER422_SHIFT 4
|
||||
#define S5P_MSCTRL_ORDER422_CRYCBY (0 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_YCRYCB (1 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_CBYCRY (2 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_YCBYCR (3 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_YCBYCR (0 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_CBYCRY (1 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_YCRYCB (2 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_CRYCBY (3 << 4)
|
||||
#define S5P_MSCTRL_ORDER422_MASK (3 << 4)
|
||||
#define S5P_MSCTRL_INPUT_EXTCAM (0 << 3)
|
||||
#define S5P_MSCTRL_INPUT_MEMORY (1 << 3)
|
||||
|
Loading…
Reference in New Issue
Block a user