msm: camera: isp: reduce bufdone error logs
If buf done error come for same applied request id then log only once. Change the bufdone deferred logs to debug logs. CRs-Fixed: 2824276 Change-Id: I870708bfb0c4f0ad0a1fade3a7e334551d055c73 Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
This commit is contained in:
@@ -839,6 +839,7 @@ static int __cam_isp_ctx_handle_buf_done_for_req_list(
|
||||
"Move active request %lld to free list(cnt = %d) [flushed], ctx %u",
|
||||
buf_done_req_id, ctx_isp->active_req_cnt,
|
||||
ctx->ctx_id);
|
||||
ctx_isp->last_bufdone_err_apply_req_id = 0;
|
||||
} else {
|
||||
list_add(&req->list, &ctx->pending_req_list);
|
||||
CAM_DBG(CAM_REQ,
|
||||
@@ -864,6 +865,7 @@ static int __cam_isp_ctx_handle_buf_done_for_req_list(
|
||||
"Move active request %lld to free list(cnt = %d) [all fences done], ctx %u",
|
||||
buf_done_req_id, ctx_isp->active_req_cnt, ctx->ctx_id);
|
||||
ctx_isp->req_info.last_bufdone_req_id = req->request_id;
|
||||
ctx_isp->last_bufdone_err_apply_req_id = 0;
|
||||
}
|
||||
|
||||
cam_cpas_notify_event("IFE BufDone", buf_done_req_id);
|
||||
@@ -1167,11 +1169,11 @@ static int __cam_isp_ctx_handle_buf_done_for_request_verify_addr(
|
||||
*/
|
||||
req_isp->deferred_fence_map_index[deferred_indx] = j;
|
||||
req_isp->num_deferred_acks++;
|
||||
CAM_WARN(CAM_ISP,
|
||||
CAM_DBG(CAM_ISP,
|
||||
"ctx[%d] : Deferred buf done for %llu with bubble state %d recovery %d",
|
||||
ctx->ctx_id, req->request_id, bubble_state,
|
||||
req_isp->bubble_report);
|
||||
CAM_WARN(CAM_ISP,
|
||||
CAM_DBG(CAM_ISP,
|
||||
"ctx[%d] : Deferred info : num_acks=%d, fence_map_index=%d, resource_handle=0x%x, sync_id=%d",
|
||||
ctx->ctx_id, req_isp->num_deferred_acks, j,
|
||||
req_isp->fence_map_out[j].resource_handle,
|
||||
@@ -1383,20 +1385,28 @@ static int __cam_isp_ctx_handle_buf_done_verify_addr(
|
||||
struct cam_ctx_request *req;
|
||||
struct cam_ctx_request *next_req = NULL;
|
||||
struct cam_context *ctx = ctx_isp->base;
|
||||
bool req_in_wait_list = false;
|
||||
|
||||
if (list_empty(&ctx->active_req_list)) {
|
||||
CAM_WARN(CAM_ISP,
|
||||
"Buf done with no active request bubble_state=%d",
|
||||
bubble_state);
|
||||
|
||||
if (!list_empty(&ctx->wait_req_list)) {
|
||||
struct cam_isp_ctx_req *req_isp;
|
||||
|
||||
req = list_first_entry(&ctx->wait_req_list,
|
||||
struct cam_ctx_request, list);
|
||||
CAM_WARN(CAM_ISP,
|
||||
"Buf done with no active request but with req in wait list, req %llu",
|
||||
req->request_id);
|
||||
|
||||
req_in_wait_list = true;
|
||||
if (ctx_isp->last_applied_req_id !=
|
||||
ctx_isp->last_bufdone_err_apply_req_id) {
|
||||
CAM_WARN(CAM_ISP,
|
||||
"Buf done with no active request but with req in wait list, req %llu last apply id:%lld last err id:%lld",
|
||||
req->request_id,
|
||||
ctx_isp->last_applied_req_id,
|
||||
ctx_isp->last_bufdone_err_apply_req_id);
|
||||
ctx_isp->last_bufdone_err_apply_req_id =
|
||||
ctx_isp->last_applied_req_id;
|
||||
}
|
||||
|
||||
req_isp = (struct cam_isp_ctx_req *) req->req_priv;
|
||||
|
||||
/*
|
||||
@@ -1410,6 +1420,15 @@ static int __cam_isp_ctx_handle_buf_done_verify_addr(
|
||||
__cam_isp_ctx_handle_buf_done_for_request_verify_addr(
|
||||
ctx_isp, req, done, bubble_state, true, true);
|
||||
}
|
||||
|
||||
if (!req_in_wait_list && (ctx_isp->last_applied_req_id !=
|
||||
ctx_isp->last_bufdone_err_apply_req_id)) {
|
||||
CAM_WARN(CAM_ISP,
|
||||
"Buf done with no active request bubble_state=%d last_applied_req_id:%lld ",
|
||||
bubble_state, ctx_isp->last_applied_req_id);
|
||||
ctx_isp->last_bufdone_err_apply_req_id =
|
||||
ctx_isp->last_applied_req_id;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -277,6 +277,7 @@ struct cam_isp_context_event_record {
|
||||
* decide whether to apply request in offline ctx
|
||||
* @workq: Worker thread for offline ife
|
||||
* @trigger_id: ID provided by CRM for each ctx on the link
|
||||
* @last_bufdone_err_apply_req_id: last bufdone error apply request id
|
||||
*
|
||||
*/
|
||||
struct cam_isp_context {
|
||||
@@ -323,6 +324,7 @@ struct cam_isp_context {
|
||||
atomic_t rxd_epoch;
|
||||
struct cam_req_mgr_core_workq *workq;
|
||||
int32_t trigger_id;
|
||||
int64_t last_bufdone_err_apply_req_id;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user