From 55a9d1b059fd905fc5aed31baf22505c312482a8 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Thu, 1 Sep 2022 18:13:21 +0800 Subject: [PATCH] media: rockchip: isp: fix size for multi isp composite mode Change-Id: I18dd3c58e043246a4899e0388c8289f093290577 Signed-off-by: Cai YiWei --- .../media/platform/rockchip/isp/isp_params_v21.c | 10 +++++----- .../media/platform/rockchip/isp/isp_params_v32.c | 16 ++++++++-------- .../media/platform/rockchip/isp/isp_params_v3x.c | 10 +++++----- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/isp_params_v21.c b/drivers/media/platform/rockchip/isp/isp_params_v21.c index 7b8dd01e7bd9..40f280ea2947 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v21.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v21.c @@ -3854,7 +3854,7 @@ multi_overflow: * * case1: bigmode special reg cfg * _________ max width:4096 - * | sensor0 | max size:1920*1080*2 mode=0 index=0 + * | sensor0 | max size:3840*2160 mode=0 index=0 * |_________| * |_sensor1_| max size:1920*1080 mode=2 index=2 * |_sensor2_| max size:1920*1080 mode=2 index=3 @@ -3874,7 +3874,7 @@ multi_overflow: if (k) { is_bigmode = true; if (k != 1 || - (hw->isp_size[idx1[0]].size > ISP21_VIR4_MAX_SIZE * 2)) { + (hw->isp_size[idx1[0]].size > ISP21_VIR2_MAX_SIZE)) { dev_warn(dev, "isp%d %dx%d over three vir isp max:1920x1080\n", idx1[0], hw->isp_size[idx1[0]].h, hw->isp_size[idx1[0]].w); hw->is_multi_overflow = true; @@ -3908,8 +3908,8 @@ multi_overflow: * * case1: bigmode special reg cfg * _________ max width:4096 - * | sensor0 | max size:1920*1080*3 mode=0 index=0 - * | | + * | sensor0 | max size: mode=0 index=0 + * | | 3840*2160+1920*1080 * |_________| * |_sensor1_| max size:1920*1080 mode=2 index=3 * max width:1920 @@ -3932,7 +3932,7 @@ multi_overflow: if (k) { is_bigmode = true; if (k == 2 || j || - hw->isp_size[idx1[k - 1]].size > ISP21_VIR4_MAX_SIZE * 3) { + hw->isp_size[idx1[k - 1]].size > (ISP21_VIR4_MAX_SIZE + ISP21_VIR2_MAX_SIZE)) { dev_warn(dev, "isp%d %dx%d over two vir isp max:3840x2160\n", idx1[k - 1], hw->isp_size[idx1[k - 1]].w, hw->isp_size[idx1[k - 1]].h); hw->is_multi_overflow = true; diff --git a/drivers/media/platform/rockchip/isp/isp_params_v32.c b/drivers/media/platform/rockchip/isp/isp_params_v32.c index 1ccd91239ff6..dd6ae74508d4 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v32.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v32.c @@ -4238,7 +4238,7 @@ multi_overflow: * * case1: bigmode special reg cfg * _________ max width:3072 - * | sensor0 | max size:1280*800*2 mode=0 index=0 + * | sensor0 | max size:1920*1080 mode=0 index=0 * |_________| * |_sensor1_| max size:1280*800 mode=2 index=2 * |_sensor2_| max size:1280*800 mode=2 index=3 @@ -4258,7 +4258,7 @@ multi_overflow: if (k) { is_bigmode = true; if (k != 1 || - (hw->isp_size[idx1[0]].size > ISP32_VIR4_MAX_SIZE * 2)) { + (hw->isp_size[idx1[0]].size > ISP32_VIR2_MAX_SIZE)) { dev_warn(dev, "isp%d %dx%d over three vir isp max:1280x800\n", idx1[0], hw->isp_size[idx1[0]].w, hw->isp_size[idx1[0]].h); hw->is_multi_overflow = true; @@ -4284,16 +4284,16 @@ multi_overflow: ispdev->multi_index = ispdev->dev_id; ispdev->multi_mode = 1; /* case0: bigmode nobigmode - * _________ max width:1920 max width:1920 - * | sensor0 | max size:1920*1080 max size:1920*1080 + * _________ max width:1920 max width:960 + * | sensor0 | max size:1920*1080 max size:960*540 * |_________| - * | sensor1 | max size:1920*1080 max size:1920*1080 + * | sensor1 | max size:1920*1080 max size:960*540 * |_________| * * case1: bigmode special reg cfg * _________ max width:3072 - * | sensor0 | max size:1280*800*3 mode=0 index=0 - * | | + * | sensor0 | max size: mode=0 index=0 + * | | 1920*1080+1280*800 * |_________| * |_sensor1_| max size:1280*800 mode=2 index=3 * max width:1280 @@ -4316,7 +4316,7 @@ multi_overflow: if (k) { is_bigmode = true; if (k == 2 || j || - hw->isp_size[idx1[k - 1]].size > ISP32_VIR4_MAX_SIZE * 3) { + hw->isp_size[idx1[k - 1]].size > (ISP32_VIR4_MAX_SIZE + ISP32_VIR2_MAX_SIZE)) { dev_warn(dev, "isp%d %dx%d over two vir isp max:1920x1080\n", idx1[k - 1], hw->isp_size[idx1[k - 1]].w, hw->isp_size[idx1[k - 1]].h); hw->is_multi_overflow = true; diff --git a/drivers/media/platform/rockchip/isp/isp_params_v3x.c b/drivers/media/platform/rockchip/isp/isp_params_v3x.c index fc6f2db6f3c6..6080f5a36aea 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v3x.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v3x.c @@ -4272,7 +4272,7 @@ multi_overflow: * * case1: bigmode special reg cfg * _________ max width:4672 - * | sensor0 | max size:2560*1536*2 mode=0 index=0 + * | sensor0 | max size:3840*2160 mode=0 index=0 * |_________| * |_sensor1_| max size:2560*1536 mode=2 index=2 * |_sensor2_| max size:2560*1536 mode=2 index=3 @@ -4292,7 +4292,7 @@ multi_overflow: if (k) { is_bigmode = true; if (k != 1 || - (hw->isp_size[idx1[0]].size > ISP3X_VIR4_MAX_SIZE * 2)) { + (hw->isp_size[idx1[0]].size > ISP3X_VIR2_MAX_SIZE)) { dev_warn(dev, "isp%d %dx%d over three vir isp max:%dx1536\n", idx1[0], hw->isp_size[idx1[0]].w, hw->isp_size[idx1[0]].h, hw->is_unite ? (2560 - RKMOUDLE_UNITE_EXTEND_PIXEL) * 2 : 2560); @@ -4327,8 +4327,8 @@ multi_overflow: * * case1: bigmode special reg cfg * _________ max width:4672 - * | sensor0 | max size:2560*2160*3 mode=0 index=0 - * | | + * | sensor0 | max size: mode=0 index=0 + * | | 3840*2160+2560*2160 * |_________| * |_sensor1_| max size:2560*1536 mode=2 index=3 * max width:2560 @@ -4351,7 +4351,7 @@ multi_overflow: if (k) { is_bigmode = true; if (k == 2 || j || - hw->isp_size[idx1[k - 1]].size > ISP3X_VIR4_MAX_SIZE * 3) { + hw->isp_size[idx1[k - 1]].size > (ISP3X_VIR4_MAX_SIZE + ISP3X_VIR2_MAX_SIZE)) { dev_warn(dev, "isp%d %dx%d over two vir isp max:%dx2160\n", idx1[k - 1], hw->isp_size[idx1[k - 1]].w, hw->isp_size[idx1[k - 1]].h, hw->is_unite ? (3840 - RKMOUDLE_UNITE_EXTEND_PIXEL) * 2 : 3840);