From 00b96150b76df65967f6adf5ec3dee666a6e2afc Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Mon, 18 Mar 2024 17:54:21 +0800 Subject: [PATCH] media: rockchip: vicap fixes size error of rgb888 with rk3576 Signed-off-by: Zefa Chen Change-Id: Ic9e933375b5a3d57fefd3cd4a7e9fcd2c74e8830 --- drivers/media/platform/rockchip/cif/capture.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index 7d7f3eac2b09..7a0c8fd26e81 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -3524,7 +3524,7 @@ static int rkcif_csi_channel_init(struct rkcif_stream *stream, if (stream->crop_enable) { channel->crop_en = 1; - if (channel->fmt_val == CSI_WRDDR_TYPE_RGB888) + if (channel->fmt_val == CSI_WRDDR_TYPE_RGB888 && dev->chip_id < CHIP_RK3576_CIF) channel->crop_st_x = 3 * stream->crop[CROP_SRC_ACT].left; else if (channel->fmt_val == CSI_WRDDR_TYPE_RGB565) channel->crop_st_x = 2 * stream->crop[CROP_SRC_ACT].left; @@ -3580,7 +3580,8 @@ static int rkcif_csi_channel_init(struct rkcif_stream *stream, if (dev->chip_id > CHIP_RK3562_CIF && stream->sw_dbg_en) channel->virtual_width = (channel->virtual_width + 23) / 24 * 24; - if (channel->fmt_val == CSI_WRDDR_TYPE_RGB888 || channel->fmt_val == CSI_WRDDR_TYPE_RGB565) + if ((channel->fmt_val == CSI_WRDDR_TYPE_RGB888 && dev->chip_id < CHIP_RK3576_CIF) || + channel->fmt_val == CSI_WRDDR_TYPE_RGB565) channel->width = channel->width * fmt->bpp[0] / 8; /* * rk cif don't support output yuyv fmt data