msm: camera: isp: Additional fixes for KMD internal recovery

Avoid programming RUP/AUP at CSID start for internal recovery.
The request being recovered will configure this appropriately via CDM.
Also avoid resetting epoch factor for IFE PIX resource at stream off
that is triggered internally, the UMD configured epoch factor is
needed to stream on again post recovery.

CRs-Fixed: 3045706
Change-Id: I865ad0c2c08330a29eacfea63b4e15892a84bd69
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
This commit is contained in:
Karthik Anantha Ram
2021-10-20 14:44:38 -07:00
orang tua 361f1cf006
melakukan fa319fa819
8 mengubah file dengan 46 tambahan dan 26 penghapusan

Melihat File

@@ -4192,7 +4192,7 @@ static int __cam_isp_ctx_flush_req_in_top_state(
stop_args.ctxt_to_hw_map = ctx_isp->hw_ctx;
stop_isp.hw_stop_cmd = CAM_ISP_HW_STOP_IMMEDIATELY;
stop_isp.stop_only = true;
stop_isp.internal_trigger = false;
stop_isp.is_internal_stop = false;
stop_args.args = (void *)&stop_isp;
rc = ctx->hw_mgr_intf->hw_stop(ctx->hw_mgr_intf->hw_mgr_priv,
&stop_args);
@@ -6078,6 +6078,7 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx,
start_isp.hw_config.init_packet = 1;
start_isp.hw_config.reapply_type = CAM_CONFIG_REAPPLY_NONE;
start_isp.hw_config.cdm_reset_before_apply = false;
start_isp.is_internal_start = false;
ctx_isp->last_applied_req_id = req->request_id;
@@ -6190,7 +6191,7 @@ static int __cam_isp_ctx_stop_dev_in_activated_unlock(
stop_isp.hw_stop_cmd = CAM_ISP_HW_STOP_IMMEDIATELY;
stop_isp.stop_only = false;
stop_isp.internal_trigger = false;
stop_isp.is_internal_stop = false;
stop.args = (void *) &stop_isp;
ctx->hw_mgr_intf->hw_stop(ctx->hw_mgr_intf->hw_mgr_priv,
@@ -6451,7 +6452,7 @@ static int __cam_isp_ctx_reset_and_recover(
stop_args.ctxt_to_hw_map = ctx_isp->hw_ctx;
stop_isp.hw_stop_cmd = CAM_ISP_HW_STOP_IMMEDIATELY;
stop_isp.stop_only = true;
stop_isp.internal_trigger = true;
stop_isp.is_internal_stop = true;
stop_args.args = (void *)&stop_isp;
rc = ctx->hw_mgr_intf->hw_stop(ctx->hw_mgr_intf->hw_mgr_priv,
&stop_args);
@@ -6495,6 +6496,7 @@ static int __cam_isp_ctx_reset_and_recover(
start_isp.hw_config.reapply_type = CAM_CONFIG_REAPPLY_IQ;
start_isp.hw_config.cdm_reset_before_apply = false;
start_isp.start_only = true;
start_isp.is_internal_start = true;
__cam_isp_context_reset_internal_recovery_params(ctx_isp);