From 3e27e3494b91aa1f6bba37b7b1f0f087a7798741 Mon Sep 17 00:00:00 2001 From: "ziyux.jiang" Date: Wed, 16 Nov 2011 01:47:08 +0800 Subject: [PATCH] [PORT FROM R2] atomisp: Fix related failure check. BZ: 17272 when frame allocation or others fail, we should return related error messages instead of doing nothing. Change-Id: I99ad6d5b721e5dcba7132cec3d68866c3e042717 Orig-Change-Id: I3199519ef7a0b6ca1ad01f6184671e43a30a06f6 Signed-off-by: ziyux.jiang Reviewed-on: http://android.intel.com:8080/24108 Reviewed-by: Cohen, David A Reviewed-by: Hu, Gang A Reviewed-by: Wang, Wen W Reviewed-by: Zhang, Xiaolin Tested-by: Koski, Anttu Reviewed-by: buildbot Tested-by: buildbot Reviewed-on: http://android.intel.com:8080/28010 Reviewed-by: Tuominen, TeemuX Reviewed-by: Koski, Anttu --- drivers/media/video/atomisp/atomisp_cmd.c | 16 ++++++++++++++-- drivers/media/video/atomisp/atomisp_ioctl.c | 15 +++++++-------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/media/video/atomisp/atomisp_cmd.c b/drivers/media/video/atomisp/atomisp_cmd.c index 09ca4b0..de3b615 100644 --- a/drivers/media/video/atomisp/atomisp_cmd.c +++ b/drivers/media/video/atomisp/atomisp_cmd.c @@ -422,15 +422,27 @@ static int atomisp_start_binary(struct atomisp_device *isp) } break; case CI_MODE_PREVIEW: - sh_css_preview_start(NULL, isp->regular_output_frame); + ret = sh_css_preview_start(NULL, isp->regular_output_frame); + if (sh_css_success != ret) { + v4l2_err(&atomisp_dev, + "start preview error!\n"); + + return -EINVAL; + } break; case CI_MODE_VIDEO: if (isp->params.video_dis_en) { sh_css_video_set_dis_vector(isp->params.dis_x, isp->params.dis_y); } - sh_css_video_start(NULL, isp->regular_output_frame, + ret = sh_css_video_start(NULL, isp->regular_output_frame, isp->vf_frame); + if (sh_css_success != ret) { + v4l2_err(&atomisp_dev, + "start video error!\n"); + + return -EINVAL; + } break; default: return -EINVAL; diff --git a/drivers/media/video/atomisp/atomisp_ioctl.c b/drivers/media/video/atomisp/atomisp_ioctl.c index d79c4ac..50d4e5a 100644 --- a/drivers/media/video/atomisp/atomisp_ioctl.c +++ b/drivers/media/video/atomisp/atomisp_ioctl.c @@ -970,17 +970,16 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf) hrt_isp_css_mm_set_user_ptr(userptr, pgnr); if (!pipe->is_main) - sh_css_frame_allocate_from_info(&handle, &vf_info); + ret = sh_css_frame_allocate_from_info(&handle, + &vf_info); else - sh_css_frame_allocate_from_info(&handle, &out_info); + ret = sh_css_frame_allocate_from_info(&handle, + &out_info); hrt_isp_css_mm_set_user_ptr(0, 0); - if (IS_ERR(handle)) { - v4l2_err(&atomisp_dev, "Error to allocate" - " frame for userptr capture %ld\n", - PTR_ERR(handle)); - - return PTR_ERR(handle); + if (ret != sh_css_success) { + v4l2_err(&atomisp_dev, "Error to allocate frame\n"); + return -ENOMEM; } if (vm_mem->vaddr) { -- 2.7.4