msm: camera: isp: Update last flush request id

On flush specific request, update last flush request ID for
the link.

CRs-Fixed: 3404872
Change-Id: I05eade5792a891c78fa279895b8053ecb1ae9f95
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
This commit is contained in:
Karthik Anantha Ram
2022-11-21 15:51:40 -08:00
committed by Camera Software Integration
parent 6d559d7ed1
commit 7a1b3e3de0
2 changed files with 14 additions and 12 deletions

View File

@@ -6522,15 +6522,14 @@ static int __cam_isp_ctx_config_dev_in_top_state(
if (rc) {
if (rc == -EBADR)
CAM_INFO(CAM_ISP,
"Add req failed:req id=%llu flushed,ctx:%u,link:0x%x",
req->request_id, ctx->ctx_id, ctx->link_hdl);
"Add req failed: req id=%llu, it has been flushed on link 0x%x ctx %u",
req->request_id, ctx->link_hdl, ctx->ctx_id);
else
CAM_ERR(CAM_ISP,
"Add req failed: req id=%llu, ctx_idx: %u, link: 0x%x",
req->request_id, ctx->ctx_id, ctx->link_hdl);
"Add req failed: req id=%llu on link 0x%x ctx %u",
req->request_id, ctx->link_hdl, ctx->ctx_id);
} else {
__cam_isp_ctx_enqueue_request_in_order(
ctx, req, true);
__cam_isp_ctx_enqueue_request_in_order(ctx, req, true);
}
} else {
CAM_ERR(CAM_ISP, "Unable to add request: req id=%llu,ctx: %u,link: 0x%x",

View File

@@ -2957,14 +2957,17 @@ int cam_req_mgr_process_flush_req(void *priv, void *data)
switch (flush_info->flush_type) {
case CAM_REQ_MGR_FLUSH_TYPE_ALL:
link->last_flush_id = flush_info->req_id;
CAM_INFO(CAM_CRM, "Last request id to flush is %lld",
flush_info->req_id);
CAM_INFO(CAM_CRM, "Last request id to flush is %lld on link 0x%x",
flush_info->req_id, link->link_hdl);
__cam_req_mgr_flush_req_slot(link);
__cam_req_mgr_reset_apply_data(link);
__cam_req_mgr_flush_dev_with_max_pd(link, flush_info, link->max_delay);
link->open_req_cnt = 0;
break;
case CAM_REQ_MGR_FLUSH_TYPE_CANCEL_REQ:
link->last_flush_id = flush_info->req_id;
CAM_DBG(CAM_CRM, "Canceling req %lld on link 0x%x",
flush_info->req_id, link->link_hdl);
rc = __cam_req_mgr_try_cancel_req(link, flush_info);
if (rc)
CAM_WARN(CAM_CRM, "cannot cancel req_id %lld on link 0x%x",
@@ -3742,13 +3745,13 @@ static int cam_req_mgr_cb_add_req(struct cam_req_mgr_add_request *add_req)
if (idx < 0) {
if (((uint32_t)add_req->req_id) <= (link->last_flush_id)) {
CAM_INFO(CAM_CRM,
"req %lld not found in in_q; it has been flushed [last_flush_req %u]",
add_req->req_id, link->last_flush_id);
"req %lld not found in in_q; it has been flushed [last_flush_req %lld] link 0x%x",
add_req->req_id, link->last_flush_id, link->link_hdl);
rc = -EBADR;
} else {
CAM_ERR(CAM_CRM,
"req %lld not found in in_q",
add_req->req_id);
"req %lld not found in in_q on link 0x%x [last_flush_req %lld]",
add_req->req_id, link->link_hdl, link->last_flush_id);
rc = -ENOENT;
}
goto end;