From 3852e749f03addf8f496d65c550f3219b41c8ed9 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Mon, 5 Jun 2023 10:22:23 +0800 Subject: [PATCH] media: rockchip: vicap change compact mode by align of width and it only control with unit and online mode Signed-off-by: Zefa Chen Change-Id: Ibdf6b6969dacdb0f418066594b9c0520d0d9a7fb --- .../media/platform/rockchip/cif/subdev-itf.c | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/drivers/media/platform/rockchip/cif/subdev-itf.c b/drivers/media/platform/rockchip/cif/subdev-itf.c index b8b79fc0b7a6..7f850cc75e47 100644 --- a/drivers/media/platform/rockchip/cif/subdev-itf.c +++ b/drivers/media/platform/rockchip/cif/subdev-itf.c @@ -172,23 +172,29 @@ static int sditf_get_set_fmt(struct v4l2_subdev *sd, priv->hdr_cfg.hdr_mode == HDR_COMPR) { rkcif_set_fmt(&cif_dev->stream[0], &pixm, false); } else if (priv->hdr_cfg.hdr_mode == HDR_X2) { - if (is_uncompact) { - cif_dev->stream[0].is_compact = false; - cif_dev->stream[0].is_high_align = true; - } else { - cif_dev->stream[0].is_compact = true; + if (priv->mode.rdbk_mode == RKISP_VICAP_ONLINE && + priv->toisp_inf.link_mode == TOISP_UNITE) { + if (is_uncompact) { + cif_dev->stream[0].is_compact = false; + cif_dev->stream[0].is_high_align = true; + } else { + cif_dev->stream[0].is_compact = true; + } } rkcif_set_fmt(&cif_dev->stream[0], &pixm, false); rkcif_set_fmt(&cif_dev->stream[1], &pixm, false); } else if (priv->hdr_cfg.hdr_mode == HDR_X3) { - if (is_uncompact) { - cif_dev->stream[0].is_compact = false; - cif_dev->stream[0].is_high_align = true; - cif_dev->stream[1].is_compact = false; - cif_dev->stream[1].is_high_align = true; - } else { - cif_dev->stream[0].is_compact = true; - cif_dev->stream[1].is_compact = true; + if (priv->mode.rdbk_mode == RKISP_VICAP_ONLINE && + priv->toisp_inf.link_mode == TOISP_UNITE) { + if (is_uncompact) { + cif_dev->stream[0].is_compact = false; + cif_dev->stream[0].is_high_align = true; + cif_dev->stream[1].is_compact = false; + cif_dev->stream[1].is_high_align = true; + } else { + cif_dev->stream[0].is_compact = true; + cif_dev->stream[1].is_compact = true; + } } rkcif_set_fmt(&cif_dev->stream[0], &pixm, false); rkcif_set_fmt(&cif_dev->stream[1], &pixm, false);