From 546e4c48e1ec2f81071f97fd61fd2db60e81b03b Mon Sep 17 00:00:00 2001 From: Ankit Premrajka Date: Thu, 18 Apr 2013 14:20:47 -0700 Subject: [PATCH] msm: camera_v2: Post fd close event to user space. Post the stream destroy event to back-end even if the last fd is being closed. This is required because when the mediaserver crashes, the fds are closed in no particular order. Change-Id: Ie6098f9aa2b9090d9901684998a8ab3a332d4805 Signed-off-by: Ankit Premrajka --- drivers/media/platform/msm/camera_v2/camera/camera.c | 7 ++++++- drivers/media/platform/msm/camera_v2/msm.c | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/msm/camera_v2/camera/camera.c b/drivers/media/platform/msm/camera_v2/camera/camera.c index 53859db3b41..e6e6cfeffb7 100644 --- a/drivers/media/platform/msm/camera_v2/camera/camera.c +++ b/drivers/media/platform/msm/camera_v2/camera/camera.c @@ -596,13 +596,18 @@ static int camera_v4l2_close(struct file *filep) struct v4l2_event event; struct msm_video_device *pvdev = video_drvdata(filep); struct camera_v4l2_private *sp = fh_to_private(filep->private_data); - BUG_ON(!pvdev); atomic_sub_return(1, &pvdev->opened); if (atomic_read(&pvdev->opened) == 0) { + camera_pack_event(filep, MSM_CAMERA_SET_PARM, + MSM_CAMERA_PRIV_DEL_STREAM, -1, &event); + + /* Donot wait, imaging server may have crashed */ + msm_post_event(&event, MSM_POST_EVT_TIMEOUT); + camera_pack_event(filep, MSM_CAMERA_DEL_SESSION, 0, -1, &event); /* Donot wait, imaging server may have crashed */ diff --git a/drivers/media/platform/msm/camera_v2/msm.c b/drivers/media/platform/msm/camera_v2/msm.c index 9f1c81ad714..be9f613d623 100644 --- a/drivers/media/platform/msm/camera_v2/msm.c +++ b/drivers/media/platform/msm/camera_v2/msm.c @@ -661,6 +661,7 @@ int msm_post_event(struct v4l2_event *event, int timeout) rc = -ETIMEDOUT; } if (rc < 0) { + pr_err("%s: rc = %d\n", __func__, rc); mutex_unlock(&session->lock); return rc; }