media: rockchip: isp: fix multi sensor with unite mode

large resolution need to divided into left and right
small resolution no need to divided

Change-Id: If0f60d97b90afa7eba306c09b5c56eda7735c5fa
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2024-11-21 18:11:49 +08:00
committed by Tao Huang
parent edcefc7318
commit 358b83e069

View File

@@ -1020,7 +1020,7 @@ static void rkisp_rdbk_trigger_handle(struct rkisp_device *dev, u32 cmd)
isp = dev;
is_try = true;
times = 0;
if (hw->unite == ISP_UNITE_ONE) {
if (hw->unite == ISP_UNITE_ONE && isp->unite_div > ISP_UNITE_DIV1) {
if (hw->is_multi_overflow && dev->sw_rd_cnt < 2)
isp->unite_index = ISP_UNITE_RIGHT;
else if (!hw->is_multi_overflow)
@@ -1103,8 +1103,8 @@ static void rkisp_rdbk_trigger_handle(struct rkisp_device *dev, u32 cmd)
/* frame double for multi camera resolution out of hardware limit
* first for HW save this camera information, and second to output image
*/
if ((hw->unite == ISP_UNITE_ONE ||
(hw->pre_dev_id != -1 && hw->pre_dev_id != id))) {
if ((hw->unite == ISP_UNITE_ONE && isp->unite_div > ISP_UNITE_DIV1) ||
(hw->pre_dev_id != -1 && hw->pre_dev_id != id)) {
isp->is_frame_double = true;
isp->sw_rd_cnt = 1;
times = 0;
@@ -1112,7 +1112,7 @@ static void rkisp_rdbk_trigger_handle(struct rkisp_device *dev, u32 cmd)
/* resolution out of hardware limit
* frame is vertically divided into left and right
*/
if (hw->unite == ISP_UNITE_ONE) {
if (hw->unite == ISP_UNITE_ONE && isp->unite_div > ISP_UNITE_DIV1) {
isp->sw_rd_cnt *= 2;
isp->sw_rd_cnt += 1;
}