From d53bfe24ffd2fc352abbf396d1e86e6ccb8a1df5 Mon Sep 17 00:00:00 2001 From: Tejas Prajapati Date: Thu, 11 Nov 2021 12:43:59 +0530 Subject: [PATCH] msm: camera: isp: handle buf_done at apply failure from deferred list For RDI only context where the buf_done is handled from wait list, if the buf_done is moved to deferred list then the bubble recovery might fail. To make sure the bubble is processed the request needs to be moved pending list. This change helps moving the request from active list to pending list. CRs-Fixed: 3079621 Change-Id: Ibb271e68ca2312cbd3d71bd64e2ed7963bf60b55 Signed-off-by: Tejas Prajapati --- drivers/cam_isp/cam_isp_context.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/cam_isp/cam_isp_context.c b/drivers/cam_isp/cam_isp_context.c index a25285487d..7b8ef59395 100644 --- a/drivers/cam_isp/cam_isp_context.c +++ b/drivers/cam_isp/cam_isp_context.c @@ -4837,6 +4837,16 @@ static int __cam_isp_ctx_rdi_only_sof_in_bubble_state( CAM_DBG(CAM_ISP, "CDM callback detected for req: %lld, possible buf_done delay, waiting for buf_done", req->request_id); + if (req_isp->num_fence_map_out == + req_isp->num_deferred_acks) { + __cam_isp_handle_deferred_buf_done(ctx_isp, req, + true, + CAM_SYNC_STATE_SIGNALED_ERROR, + CAM_SYNC_ISP_EVENT_BUBBLE); + + __cam_isp_ctx_handle_buf_done_for_req_list( + ctx_isp, req); + } goto end; } else { CAM_WARN(CAM_ISP,