Loading drivers/media/platform/msm/camera/cam_isp/cam_isp_context.c +21 −0 Original line number Diff line number Diff line Loading @@ -695,6 +695,16 @@ static int __cam_isp_ctx_handle_buf_done_in_activated_state( ctx_isp->substate_activated); __cam_isp_ctx_update_event_record(ctx_isp, CAM_ISP_CTX_EVENT_BUFDONE, req); } else if (req->request_id > ctx_isp->req_info.reported_req_id) { CAM_INFO_RATE_LIMIT(CAM_ISP, "Not moving req_id %lld to free list. rep_req %lld", req->request_id, ctx_isp->req_info.reported_req_id); __cam_isp_ctx_update_state_monitor_array(ctx_isp, CAM_ISP_HW_EVENT_DONE, ctx_isp->substate_activated, ctx_isp->substate_activated); __cam_isp_ctx_update_event_record(ctx_isp, CAM_ISP_CTX_EVENT_BUFDONE, req); } else { list_del_init(&req->list); list_add_tail(&req->list, &ctx->free_req_list); Loading Loading @@ -907,6 +917,7 @@ static int __cam_isp_ctx_notify_sof_in_activated_state( struct cam_context *ctx = ctx_isp->base; struct cam_ctx_request *req = NULL; uint64_t request_id = 0; struct cam_isp_ctx_req *req_isp = NULL; /* * notify reqmgr with sof signal. Note, due to scheduling delay Loading Loading @@ -934,6 +945,8 @@ static int __cam_isp_ctx_notify_sof_in_activated_state( if (req->request_id > ctx_isp->req_info.reported_req_id) { request_id = req->request_id; req_isp = (struct cam_isp_ctx_req *)req->req_priv; ctx_isp->req_info.reported_req_id = request_id; ctx_isp->req_info.last_reported_id_time_stamp = jiffies_to_msecs(jiffies); Loading Loading @@ -966,6 +979,14 @@ static int __cam_isp_ctx_notify_sof_in_activated_state( rc = -EFAULT; } if ((req_isp) && (req_isp->num_acked == req_isp->num_fence_map_out)) { CAM_INFO_RATE_LIMIT(CAM_REQ, "Move active req %lld to free [all fences done] ctx %u", req->request_id, ctx_isp->active_req_cnt, ctx->ctx_id); list_del_init(&req->list); list_add_tail(&req->list, &ctx->free_req_list); } return 0; } Loading Loading
drivers/media/platform/msm/camera/cam_isp/cam_isp_context.c +21 −0 Original line number Diff line number Diff line Loading @@ -695,6 +695,16 @@ static int __cam_isp_ctx_handle_buf_done_in_activated_state( ctx_isp->substate_activated); __cam_isp_ctx_update_event_record(ctx_isp, CAM_ISP_CTX_EVENT_BUFDONE, req); } else if (req->request_id > ctx_isp->req_info.reported_req_id) { CAM_INFO_RATE_LIMIT(CAM_ISP, "Not moving req_id %lld to free list. rep_req %lld", req->request_id, ctx_isp->req_info.reported_req_id); __cam_isp_ctx_update_state_monitor_array(ctx_isp, CAM_ISP_HW_EVENT_DONE, ctx_isp->substate_activated, ctx_isp->substate_activated); __cam_isp_ctx_update_event_record(ctx_isp, CAM_ISP_CTX_EVENT_BUFDONE, req); } else { list_del_init(&req->list); list_add_tail(&req->list, &ctx->free_req_list); Loading Loading @@ -907,6 +917,7 @@ static int __cam_isp_ctx_notify_sof_in_activated_state( struct cam_context *ctx = ctx_isp->base; struct cam_ctx_request *req = NULL; uint64_t request_id = 0; struct cam_isp_ctx_req *req_isp = NULL; /* * notify reqmgr with sof signal. Note, due to scheduling delay Loading Loading @@ -934,6 +945,8 @@ static int __cam_isp_ctx_notify_sof_in_activated_state( if (req->request_id > ctx_isp->req_info.reported_req_id) { request_id = req->request_id; req_isp = (struct cam_isp_ctx_req *)req->req_priv; ctx_isp->req_info.reported_req_id = request_id; ctx_isp->req_info.last_reported_id_time_stamp = jiffies_to_msecs(jiffies); Loading Loading @@ -966,6 +979,14 @@ static int __cam_isp_ctx_notify_sof_in_activated_state( rc = -EFAULT; } if ((req_isp) && (req_isp->num_acked == req_isp->num_fence_map_out)) { CAM_INFO_RATE_LIMIT(CAM_REQ, "Move active req %lld to free [all fences done] ctx %u", req->request_id, ctx_isp->active_req_cnt, ctx->ctx_id); list_del_init(&req->list); list_add_tail(&req->list, &ctx->free_req_list); } return 0; } Loading