From 8a5b96b0af07dbaa4e7fb67f7468f5d9068b6e25 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Tue, 26 Nov 2024 09:50:00 +0800 Subject: [PATCH] media: rockchip: isp: fix group aov no working for isp32 Change-Id: Ice9d129c32691c1822cd424785dd3f59d2ae74cb Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/isp/isp_params.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/isp_params.c b/drivers/media/platform/rockchip/isp/isp_params.c index 60909b9cf495..e607df692501 100644 --- a/drivers/media/platform/rockchip/isp/isp_params.c +++ b/drivers/media/platform/rockchip/isp/isp_params.c @@ -233,11 +233,17 @@ static void rkisp_params_vb2_buf_queue(struct vb2_buffer *vb) if (!(params->module_cfg_update & ISP32_MODULE_RTT_FST)) return; spin_lock_irqsave(¶ms_vdev->config_lock, flags); - while (!list_empty(¶ms_vdev->params)) { - buf = list_first_entry(¶ms_vdev->params, - struct rkisp_buffer, queue); - if (buf == params_buf) - break; + if (params->module_cfg_update & ~ISP32_MODULE_RTT_FST) { + while (!list_empty(¶ms_vdev->params)) { + buf = list_first_entry(¶ms_vdev->params, + struct rkisp_buffer, queue); + if (buf == params_buf) + break; + list_del(&buf->queue); + vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_DONE); + } + } else { + buf = list_last_entry(¶ms_vdev->params, struct rkisp_buffer, queue); list_del(&buf->queue); vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_DONE); }