From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 03 Jan 2024 09:43:39 +0000
Subject: [PATCH] update kernel to 5.10.198
---
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