From b3f31ae7266a0897fdc62e29df6b0371f085ce77 Mon Sep 17 00:00:00 2001 From: Karthik Anantha Ram Date: Sat, 21 Nov 2020 12:36:25 -0800 Subject: [PATCH] msm: camera: isp: Transition to HALT state prior to HW stop In case of any error IRQs encountered during stop, there is no need to notify them to UMD since the entire pipeline would be reset prior to next session start. With this change we transition to HALT state and then issue stop. CRs-Fixed: 2825121 Change-Id: I9535439d1a29e3b6f8da968b60e5b2b5bc32c1bf Signed-off-by: Karthik Anantha Ram --- drivers/cam_isp/cam_isp_context.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/cam_isp/cam_isp_context.c b/drivers/cam_isp/cam_isp_context.c index 9828d5c51090..cb17a392fb56 100644 --- a/drivers/cam_isp/cam_isp_context.c +++ b/drivers/cam_isp/cam_isp_context.c @@ -5362,6 +5362,11 @@ static int __cam_isp_ctx_stop_dev_in_activated_unlock( (struct cam_isp_context *) ctx->ctx_priv; struct cam_isp_stop_args stop_isp; + /* Mask off all the incoming hardware events */ + spin_lock_bh(&ctx->lock); + ctx_isp->substate_activated = CAM_ISP_CTX_ACTIVATED_HALT; + spin_unlock_bh(&ctx->lock); + /* stop hw first */ if (ctx_isp->hw_ctx) { stop.ctxt_to_hw_map = ctx_isp->hw_ctx; @@ -5374,10 +5379,6 @@ static int __cam_isp_ctx_stop_dev_in_activated_unlock( &stop); } - /* Mask off all the incoming hardware events */ - spin_lock_bh(&ctx->lock); - ctx_isp->substate_activated = CAM_ISP_CTX_ACTIVATED_HALT; - spin_unlock_bh(&ctx->lock); CAM_DBG(CAM_ISP, "next Substate[%s]", __cam_isp_ctx_substate_val_to_type( ctx_isp->substate_activated));