From b3f281b0e486b67e1861047ee41f7103d78c336b Mon Sep 17 00:00:00 2001 From: Satish Kumar Nagireddy Date: Wed, 10 Apr 2019 15:04:54 -0700 Subject: [PATCH] v4l: xilinx: vip: Fix stride calculation The stride calculation for RGB 10bit and YUV444 10bit formats are missing scaling / padding factor and also using wrong bpl factor. This patch corrects the stride calculation by fixing aforementioned issue. Signed-off-by: Satish Kumar Nagireddy Reviewed-by: Hyun Kwon --- drivers/media/platform/xilinx/xilinx-vip.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/xilinx/xilinx-vip.c b/drivers/media/platform/xilinx/xilinx-vip.c index 69fd69b1e0e0..20e466053776 100644 --- a/drivers/media/platform/xilinx/xilinx-vip.c +++ b/drivers/media/platform/xilinx/xilinx-vip.c @@ -68,7 +68,7 @@ static const struct xvip_video_format xvip_video_formats[] = { { XVIP_VF_YUVX, 8, NULL, MEDIA_BUS_FMT_VUY8_1X24, 4, 32, V4L2_PIX_FMT_XVUY32, 1, 1, 1, 1, "X:4:4:4, packed, YUYV" }, { XVIP_VF_YUVX, 10, NULL, MEDIA_BUS_FMT_VUY10_1X30, - 4, 32, V4L2_PIX_FMT_XVUY10, 1, 1, 1, 1, "2:10:10:10, packed, XVUY" }, + 3, 32, V4L2_PIX_FMT_XVUY10, 1, 1, 1, 1, "2:10:10:10, packed, XVUY" }, { XVIP_VF_RBG, 8, NULL, MEDIA_BUS_FMT_RBG888_1X24, 3, 24, V4L2_PIX_FMT_BGR24, 1, 1, 1, 1, "24-bit RGB" }, { XVIP_VF_RBG, 8, NULL, MEDIA_BUS_FMT_RBG888_1X24, @@ -78,7 +78,7 @@ static const struct xvip_video_format xvip_video_formats[] = { { XVIP_VF_XRGB, 8, NULL, MEDIA_BUS_FMT_RBG888_1X24, 4, 32, V4L2_PIX_FMT_XBGR32, 1, 1, 1, 1, "8:8:8:x RGBx w/8 bits padding" }, { XVIP_VF_XBGR, 10, NULL, MEDIA_BUS_FMT_RBG101010_1X30, - 4, 32, V4L2_PIX_FMT_XBGR30, 1, 1, 1, 1, "2:10:10:10, packed, XBGR" }, + 3, 32, V4L2_PIX_FMT_XBGR30, 1, 1, 1, 1, "2:10:10:10, packed, XBGR" }, { XVIP_VF_XBGR, 12, NULL, MEDIA_BUS_FMT_RBG121212_1X36, 3, 40, V4L2_PIX_FMT_XBGR40, 1, 1, 1, 1, "4:12:12:12, packed, XBGR" }, { XVIP_VF_RBG, 16, NULL, MEDIA_BUS_FMT_RBG161616_1X48, @@ -179,6 +179,8 @@ void xvip_bpl_scaling_factor(u32 fourcc, u32 *numerator, u32 *denominator) case V4L2_PIX_FMT_XV20: case V4L2_PIX_FMT_XV15M: case V4L2_PIX_FMT_XV20M: + case V4L2_PIX_FMT_XBGR30: + case V4L2_PIX_FMT_XVUY10: *numerator = 10; *denominator = 8; break; @@ -215,6 +217,8 @@ void xvip_width_padding_factor(u32 fourcc, u32 *numerator, u32 *denominator) case V4L2_PIX_FMT_XV20: case V4L2_PIX_FMT_XV15M: case V4L2_PIX_FMT_XV20M: + case V4L2_PIX_FMT_XBGR30: + case V4L2_PIX_FMT_XVUY10: /* 32 bits are required per 30 bits of data */ *numerator = 32; *denominator = 30; -- 2.39.2