media: rockchip: vicap fixes size error of rgb888 with rk3576

Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com>
Change-Id: Ic9e933375b5a3d57fefd3cd4a7e9fcd2c74e8830
This commit is contained in:
Zefa Chen
2024-03-18 17:54:21 +08:00
parent ae3eca4206
commit 00b96150b7

View File

@@ -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