msm: camera: ife: Look into next request if res not found
In cases where IRQ delays or overlap happens, the IRQ we get for the resource may belong to the 2nd request in the queue. If the IRQ resource is not found in top request, look into the second request as well. CRs-Fixed: 2600457 Change-Id: Ida2665a00169463e2f146de1cfa6be076d8c7d72 Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
6c7de8467b
commit
a44cb8d722
@@ -809,10 +809,28 @@ static int __cam_isp_ctx_handle_buf_done_for_request(
|
||||
}
|
||||
|
||||
if (j == req_isp->num_fence_map_out) {
|
||||
CAM_ERR(CAM_ISP,
|
||||
"Can not find matching lane handle 0x%x!",
|
||||
done->resource_handle[i]);
|
||||
rc = -EINVAL;
|
||||
if (done_next_req) {
|
||||
/*
|
||||
* If not found in current request, it could be
|
||||
* belonging to next request, This can happen if
|
||||
* IRQ delay happens.
|
||||
*/
|
||||
CAM_WARN(CAM_ISP,
|
||||
"BUF_DONE for res 0x%x not found in Req %lld ",
|
||||
__cam_isp_resource_handle_id_to_type(
|
||||
done->resource_handle[i]),
|
||||
req->request_id);
|
||||
|
||||
done_next_req->resource_handle
|
||||
[done_next_req->num_handles++] =
|
||||
done->resource_handle[i];
|
||||
} else {
|
||||
CAM_ERR(CAM_ISP,
|
||||
"Can not find matching lane handle 0x%x! in Req %lld",
|
||||
done->resource_handle[i],
|
||||
req->request_id);
|
||||
rc = -EINVAL;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user