msm: camera: Fix for dual ISP buffer management
Return -1 when there is no free buffer for dual ISP use case,
in order to have proper error handling in isp driver..
Change-Id: Ic3f3261bebe192fdcf62a1d06f4e8a1e6033ef61
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c b/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c
index 04afec0..8ea1a00 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c
@@ -287,13 +287,15 @@
bufq->buf_client_count)
list_del_init(
&temp_buf_info->share_list);
- if (temp_buf_info->buf_reuse_flag)
+ if (temp_buf_info->buf_reuse_flag) {
kfree(temp_buf_info);
- else
+ } else {
*buf_info = temp_buf_info;
+ rc = 0;
+ }
spin_unlock_irqrestore(
&bufq->bufq_lock, flags);
- return 0;
+ return rc;
}
}
}
@@ -342,6 +344,7 @@
(*buf_info)->buf_used[id] = 1;
(*buf_info)->buf_get_count = 1;
(*buf_info)->buf_put_count = 0;
+ (*buf_info)->buf_reuse_flag = 0;
list_add_tail(&(*buf_info)->share_list,
&bufq->share_head);
}