From 6778948f9de86c3cfaf36725a7c87dcff9ba247f Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 11 Dec 2023 08:20:59 +0000 Subject: [PATCH] kernel_5.10 no rt --- kernel/drivers/media/platform/rockchip/isp/capture.c | 25 ++++++++++++++++--------- 1 files changed, 16 insertions(+), 9 deletions(-) diff --git a/kernel/drivers/media/platform/rockchip/isp/capture.c b/kernel/drivers/media/platform/rockchip/isp/capture.c index fcad97f..a43e6e4 100644 --- a/kernel/drivers/media/platform/rockchip/isp/capture.c +++ b/kernel/drivers/media/platform/rockchip/isp/capture.c @@ -626,7 +626,7 @@ max_rsz->width = ALIGN(DIV_ROUND_UP(input_win->width, div), 4); max_rsz->height = DIV_ROUND_UP(input_win->height, div); - } else if (dev->hw_dev->is_unite) { + } else if (dev->hw_dev->unite) { /* scale down only for unite mode */ max_rsz->width = min_t(int, input_win->width, cfg->max_rsz_width); max_rsz->height = min_t(int, input_win->height, cfg->max_rsz_height); @@ -1140,7 +1140,8 @@ if (dev->isp_ver != ISP_V32 || dev->hw_dev->dev_link_num > 1 || - !stream->ops->set_wrap) { + !stream->ops->set_wrap || + dev->hw_dev->unite) { v4l2_err(&dev->v4l2_dev, "wrap only support for single sensor and mainpath\n"); return -EINVAL; @@ -1465,7 +1466,7 @@ const struct v4l2_rect *in) { struct rkisp_device *dev = stream->ispdev; - bool is_unite = dev->hw_dev->is_unite; + bool is_unite = !!dev->hw_dev->unite; u32 align = is_unite ? 4 : 2; /* Not crop for MP bayer raw data and dmatx path */ @@ -1616,7 +1617,9 @@ if (ispdev->isp_ver != ISP_V32) return; + mutex_lock(&ispdev->hw_dev->dev_lock); rkisp_chk_tb_over(ispdev); + mutex_unlock(&ispdev->hw_dev->dev_lock); if (ispdev->tb_head.complete != RKISP_TB_OK) return; ret = v4l2_pipeline_pm_get(&stream->vnode.vdev.entity); @@ -1733,17 +1736,21 @@ st_cfg->max_rsz_height = CIF_ISP_INPUT_H_MAX_V21; ret = rkisp_register_stream_v21(dev); } else if (dev->isp_ver == ISP_V30) { - st_cfg->max_rsz_width = dev->hw_dev->is_unite ? + st_cfg->max_rsz_width = dev->hw_dev->unite ? CIF_ISP_INPUT_W_MAX_V30_UNITE : CIF_ISP_INPUT_W_MAX_V30; - st_cfg->max_rsz_height = dev->hw_dev->is_unite ? + st_cfg->max_rsz_height = dev->hw_dev->unite ? CIF_ISP_INPUT_H_MAX_V30_UNITE : CIF_ISP_INPUT_H_MAX_V30; ret = rkisp_register_stream_v30(dev); } else if (dev->isp_ver == ISP_V32) { - st_cfg->max_rsz_width = CIF_ISP_INPUT_W_MAX_V32; - st_cfg->max_rsz_height = CIF_ISP_INPUT_H_MAX_V32; + st_cfg->max_rsz_width = dev->hw_dev->unite ? + CIF_ISP_INPUT_W_MAX_V32_UNITE : CIF_ISP_INPUT_W_MAX_V32; + st_cfg->max_rsz_height = dev->hw_dev->unite ? + CIF_ISP_INPUT_H_MAX_V32_UNITE : CIF_ISP_INPUT_H_MAX_V32; st_cfg = &rkisp_sp_stream_config; - st_cfg->max_rsz_width = CIF_ISP_INPUT_W_MAX_V32; - st_cfg->max_rsz_height = CIF_ISP_INPUT_H_MAX_V32; + st_cfg->max_rsz_width = dev->hw_dev->unite ? + CIF_ISP_INPUT_W_MAX_V32_UNITE : CIF_ISP_INPUT_W_MAX_V32; + st_cfg->max_rsz_height = dev->hw_dev->unite ? + CIF_ISP_INPUT_H_MAX_V32_UNITE : CIF_ISP_INPUT_H_MAX_V32; ret = rkisp_register_stream_v32(dev); } else if (dev->isp_ver == ISP_V32_L) { st_cfg->max_rsz_width = CIF_ISP_INPUT_W_MAX_V32_L; -- Gitblit v1.6.2