Merge "msm: camera: isp: fix for enqueue buffer failure"
This commit is contained in:
commit
e35eb8badb
1 changed files with 8 additions and 7 deletions
|
@ -1282,6 +1282,7 @@ static int msm_isp_deinit_isp_buf_mgr(
|
||||||
int msm_isp_proc_buf_cmd(struct msm_isp_buf_mgr *buf_mgr,
|
int msm_isp_proc_buf_cmd(struct msm_isp_buf_mgr *buf_mgr,
|
||||||
unsigned int cmd, void *arg)
|
unsigned int cmd, void *arg)
|
||||||
{
|
{
|
||||||
|
int rc = -EINVAL;
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case VIDIOC_MSM_ISP_REQUEST_BUF: {
|
case VIDIOC_MSM_ISP_REQUEST_BUF: {
|
||||||
struct msm_isp_buf_request *buf_req = arg;
|
struct msm_isp_buf_request *buf_req = arg;
|
||||||
|
@ -1290,7 +1291,7 @@ int msm_isp_proc_buf_cmd(struct msm_isp_buf_mgr *buf_mgr,
|
||||||
memcpy(&buf_req_ver2, buf_req,
|
memcpy(&buf_req_ver2, buf_req,
|
||||||
sizeof(struct msm_isp_buf_request));
|
sizeof(struct msm_isp_buf_request));
|
||||||
buf_req_ver2.security_mode = NON_SECURE_MODE;
|
buf_req_ver2.security_mode = NON_SECURE_MODE;
|
||||||
buf_mgr->ops->request_buf(buf_mgr, &buf_req_ver2);
|
rc = buf_mgr->ops->request_buf(buf_mgr, &buf_req_ver2);
|
||||||
memcpy(buf_req, &buf_req_ver2,
|
memcpy(buf_req, &buf_req_ver2,
|
||||||
sizeof(struct msm_isp_buf_request));
|
sizeof(struct msm_isp_buf_request));
|
||||||
break;
|
break;
|
||||||
|
@ -1298,35 +1299,35 @@ int msm_isp_proc_buf_cmd(struct msm_isp_buf_mgr *buf_mgr,
|
||||||
case VIDIOC_MSM_ISP_REQUEST_BUF_VER2: {
|
case VIDIOC_MSM_ISP_REQUEST_BUF_VER2: {
|
||||||
struct msm_isp_buf_request_ver2 *buf_req_ver2 = arg;
|
struct msm_isp_buf_request_ver2 *buf_req_ver2 = arg;
|
||||||
|
|
||||||
buf_mgr->ops->request_buf(buf_mgr, buf_req_ver2);
|
rc = buf_mgr->ops->request_buf(buf_mgr, buf_req_ver2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case VIDIOC_MSM_ISP_ENQUEUE_BUF: {
|
case VIDIOC_MSM_ISP_ENQUEUE_BUF: {
|
||||||
struct msm_isp_qbuf_info *qbuf_info = arg;
|
struct msm_isp_qbuf_info *qbuf_info = arg;
|
||||||
|
|
||||||
buf_mgr->ops->enqueue_buf(buf_mgr, qbuf_info);
|
rc = buf_mgr->ops->enqueue_buf(buf_mgr, qbuf_info);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case VIDIOC_MSM_ISP_DEQUEUE_BUF: {
|
case VIDIOC_MSM_ISP_DEQUEUE_BUF: {
|
||||||
struct msm_isp_qbuf_info *qbuf_info = arg;
|
struct msm_isp_qbuf_info *qbuf_info = arg;
|
||||||
|
|
||||||
buf_mgr->ops->dequeue_buf(buf_mgr, qbuf_info);
|
rc = buf_mgr->ops->dequeue_buf(buf_mgr, qbuf_info);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case VIDIOC_MSM_ISP_RELEASE_BUF: {
|
case VIDIOC_MSM_ISP_RELEASE_BUF: {
|
||||||
struct msm_isp_buf_request *buf_req = arg;
|
struct msm_isp_buf_request *buf_req = arg;
|
||||||
|
|
||||||
buf_mgr->ops->release_buf(buf_mgr, buf_req->handle);
|
rc = buf_mgr->ops->release_buf(buf_mgr, buf_req->handle);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case VIDIOC_MSM_ISP_UNMAP_BUF: {
|
case VIDIOC_MSM_ISP_UNMAP_BUF: {
|
||||||
struct msm_isp_unmap_buf_req *unmap_req = arg;
|
struct msm_isp_unmap_buf_req *unmap_req = arg;
|
||||||
|
|
||||||
buf_mgr->ops->unmap_buf(buf_mgr, unmap_req->fd);
|
rc = buf_mgr->ops->unmap_buf(buf_mgr, unmap_req->fd);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int msm_isp_buf_mgr_debug(struct msm_isp_buf_mgr *buf_mgr,
|
static int msm_isp_buf_mgr_debug(struct msm_isp_buf_mgr *buf_mgr,
|
||||||
|
|
Loading…
Add table
Reference in a new issue