Loading drivers/cam_isp/cam_isp_context.c +11 −11 Original line number Diff line number Diff line Loading @@ -3069,6 +3069,17 @@ static int __cam_isp_ctx_apply_req_in_activated_state( struct cam_isp_context *ctx_isp = NULL; struct cam_hw_config_args cfg = {0}; ctx_isp = (struct cam_isp_context *) ctx->ctx_priv; if (apply->re_apply) if (apply->request_id <= ctx_isp->last_applied_req_id) { CAM_INFO_RATE_LIMIT(CAM_ISP, "ctx_id:%d Trying to reapply the same request %llu again", ctx->ctx_id, apply->request_id); return 0; } if (list_empty(&ctx->pending_req_list)) { CAM_ERR_RATE_LIMIT(CAM_ISP, "ctx_id:%d No available request for Apply id %lld", Loading @@ -3084,8 +3095,6 @@ static int __cam_isp_ctx_apply_req_in_activated_state( * The maximum number of request allowed to be outstanding is 2. * */ ctx_isp = (struct cam_isp_context *) ctx->ctx_priv; if (atomic_read(&ctx_isp->process_bubble)) { CAM_INFO_RATE_LIMIT(CAM_ISP, "ctx_id:%d Processing bubble cannot apply Request Id %llu", Loading @@ -3095,15 +3104,6 @@ static int __cam_isp_ctx_apply_req_in_activated_state( goto end; } if (apply->re_apply) if (apply->request_id <= ctx_isp->last_applied_req_id) { CAM_INFO_RATE_LIMIT(CAM_ISP, "ctx_id:%d Trying to reapply the same request %llu again", ctx->ctx_id, apply->request_id); return 0; } spin_lock_bh(&ctx->lock); req = list_first_entry(&ctx->pending_req_list, struct cam_ctx_request, list); Loading drivers/cam_req_mgr/cam_req_mgr_core.c +13 −0 Original line number Diff line number Diff line Loading @@ -929,6 +929,19 @@ static int __cam_req_mgr_send_req(struct cam_req_mgr_core_link *link, apply_req.report_if_bubble = in_q->slot[idx].recover; /* * If it is dual trigger usecase, need to tell * devices that the req is re-applied, then the * devices need to skip applying if the req has * been handled. * e.x. ISP device */ if (link->retry_cnt > 0) { if (!apply_req.report_if_bubble && link->dual_trigger) apply_req.re_apply = true; } if ((slot->ops.dev_hdl == dev->dev_hdl) && (slot->ops.is_applied)) { slot->ops.is_applied = false; Loading Loading
drivers/cam_isp/cam_isp_context.c +11 −11 Original line number Diff line number Diff line Loading @@ -3069,6 +3069,17 @@ static int __cam_isp_ctx_apply_req_in_activated_state( struct cam_isp_context *ctx_isp = NULL; struct cam_hw_config_args cfg = {0}; ctx_isp = (struct cam_isp_context *) ctx->ctx_priv; if (apply->re_apply) if (apply->request_id <= ctx_isp->last_applied_req_id) { CAM_INFO_RATE_LIMIT(CAM_ISP, "ctx_id:%d Trying to reapply the same request %llu again", ctx->ctx_id, apply->request_id); return 0; } if (list_empty(&ctx->pending_req_list)) { CAM_ERR_RATE_LIMIT(CAM_ISP, "ctx_id:%d No available request for Apply id %lld", Loading @@ -3084,8 +3095,6 @@ static int __cam_isp_ctx_apply_req_in_activated_state( * The maximum number of request allowed to be outstanding is 2. * */ ctx_isp = (struct cam_isp_context *) ctx->ctx_priv; if (atomic_read(&ctx_isp->process_bubble)) { CAM_INFO_RATE_LIMIT(CAM_ISP, "ctx_id:%d Processing bubble cannot apply Request Id %llu", Loading @@ -3095,15 +3104,6 @@ static int __cam_isp_ctx_apply_req_in_activated_state( goto end; } if (apply->re_apply) if (apply->request_id <= ctx_isp->last_applied_req_id) { CAM_INFO_RATE_LIMIT(CAM_ISP, "ctx_id:%d Trying to reapply the same request %llu again", ctx->ctx_id, apply->request_id); return 0; } spin_lock_bh(&ctx->lock); req = list_first_entry(&ctx->pending_req_list, struct cam_ctx_request, list); Loading
drivers/cam_req_mgr/cam_req_mgr_core.c +13 −0 Original line number Diff line number Diff line Loading @@ -929,6 +929,19 @@ static int __cam_req_mgr_send_req(struct cam_req_mgr_core_link *link, apply_req.report_if_bubble = in_q->slot[idx].recover; /* * If it is dual trigger usecase, need to tell * devices that the req is re-applied, then the * devices need to skip applying if the req has * been handled. * e.x. ISP device */ if (link->retry_cnt > 0) { if (!apply_req.report_if_bubble && link->dual_trigger) apply_req.re_apply = true; } if ((slot->ops.dev_hdl == dev->dev_hdl) && (slot->ops.is_applied)) { slot->ops.is_applied = false; Loading