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:
Pavan Kumar Chilamkurthi
2020-01-09 12:01:18 -08:00
committed by Gerrit - the friendly Code Review server
parent 6c7de8467b
commit a44cb8d722

View File

@@ -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;
}