Merge "msm: camera: Error prints added in during camera open"
diff --git a/drivers/media/platform/msm/camera_v2/camera/camera.c b/drivers/media/platform/msm/camera_v2/camera/camera.c
index eda6150..3f7ba6b 100644
--- a/drivers/media/platform/msm/camera_v2/camera/camera.c
+++ b/drivers/media/platform/msm/camera_v2/camera/camera.c
@@ -64,9 +64,13 @@
struct msm_v4l2_event_data *event_data =
(struct msm_v4l2_event_data *)&event->u.data[0];
- if (event_data->status > MSM_CAMERA_ERR_EVT_BASE)
+ if (event_data->status > MSM_CAMERA_ERR_EVT_BASE) {
+ pr_err("%s : event_data status out of bounds\n",
+ __func__);
+ pr_err("%s : Line %d event_data->status 0X%x\n",
+ __func__, __LINE__, event_data->status);
return -EFAULT;
-
+ }
return 0;
}
@@ -461,9 +465,11 @@
struct camera_v4l2_private *sp;
sp = kzalloc(sizeof(*sp), GFP_KERNEL);
- if (!sp)
- return -ENOMEM;
+ if (!sp) {
+ pr_err("%s : memory not available\n", __func__);
+ return -ENOMEM;
+ }
filep->private_data = &sp->fh;
/* stream_id = open id */
@@ -498,9 +504,10 @@
/* free up this buffer when stream is done */
q->drv_priv =
kzalloc(sizeof(struct msm_v4l2_format_data), GFP_KERNEL);
- if (!q->drv_priv)
+ if (!q->drv_priv) {
+ pr_err("%s : memory not available\n", __func__);
return -ENOMEM;
-
+ }
q->mem_ops = msm_vb2_get_q_mem_ops();
q->ops = msm_vb2_get_q_ops();
@@ -530,38 +537,60 @@
BUG_ON(!pvdev);
rc = camera_v4l2_fh_open(filep);
- if (rc < 0)
- goto fh_open_fail;
+ if (rc < 0) {
+ pr_err("%s : camera_v4l2_fh_open failed Line %d rc %d\n",
+ __func__, __LINE__, rc);
+ goto fh_open_fail;
+ }
/* every stream has a vb2 queue */
rc = camera_v4l2_vb2_q_init(filep);
- if (rc < 0)
- goto vb2_q_fail;
+ if (rc < 0) {
+ pr_err("%s : vb2 queue init fails Line %d rc %d\n",
+ __func__, __LINE__, rc);
+ goto vb2_q_fail;
+ }
if (!atomic_read(&pvdev->opened)) {
pm_stay_awake(&pvdev->vdev->dev);
/* create a new session when first opened */
rc = msm_create_session(pvdev->vdev->num, pvdev->vdev);
- if (rc < 0)
+ if (rc < 0) {
+ pr_err("%s : session creation failed Line %d rc %d\n",
+ __func__, __LINE__, rc);
goto session_fail;
+ }
rc = msm_create_command_ack_q(pvdev->vdev->num, 0);
- if (rc < 0)
- goto command_ack_q_fail;
+ if (rc < 0) {
+ pr_err("%s : creation of command_ack queue failed\n",
+ __func__);
+ pr_err("%s : Line %d rc %d\n", __func__, __LINE__, rc);
+ goto command_ack_q_fail;
+ }
camera_pack_event(filep, MSM_CAMERA_NEW_SESSION, 0, -1, &event);
rc = msm_post_event(&event, MSM_POST_EVT_TIMEOUT);
- if (rc < 0)
+ if (rc < 0) {
+ pr_err("%s : posting of NEW_SESSION event failed\n",
+ __func__);
+ pr_err("%s : Line %d rc %d\n", __func__, __LINE__, rc);
goto post_fail;
-
+ }
rc = camera_check_event_status(&event);
- if (rc < 0)
+ if (rc < 0) {
+ pr_err("%s : checking event status fails Line %d rc %d\n",
+ __func__, __LINE__, rc);
goto post_fail;
+ }
} else {
rc = msm_create_command_ack_q(pvdev->vdev->num,
atomic_read(&pvdev->stream_cnt));
- if (rc < 0)
+ if (rc < 0) {
+ pr_err("%s : creation of command_ack queue failed Line %d rc %d\n",
+ __func__, __LINE__, rc);
goto session_fail;
+ }
}
atomic_add(1, &pvdev->opened);
diff --git a/drivers/media/platform/msm/camera_v2/msm.c b/drivers/media/platform/msm/camera_v2/msm.c
index 8a2c8e5..b1a23b4 100644
--- a/drivers/media/platform/msm/camera_v2/msm.c
+++ b/drivers/media/platform/msm/camera_v2/msm.c
@@ -341,17 +341,26 @@
{
struct msm_session *session = NULL;
- if (!msm_session_q)
+ if (!msm_session_q) {
+ pr_err("%s : session queue not available Line %d\n",
+ __func__, __LINE__);
return -ENODEV;
+ }
session = msm_queue_find(msm_session_q, struct msm_session,
list, __msm_queue_find_session, &session_id);
- if (session)
+ if (session) {
+ pr_err("%s : Session not found Line %d\n",
+ __func__, __LINE__);
return -EINVAL;
+ }
session = kzalloc(sizeof(*session), GFP_KERNEL);
- if (!session)
+ if (!session) {
+ pr_err("%s : Memory not available Line %d\n",
+ __func__, __LINE__);
return -ENOMEM;
+ }
session->session_id = session_id;
session->event_q.vdev = vdev;
@@ -367,17 +376,25 @@
struct msm_session *session;
struct msm_command_ack *cmd_ack;
- if (!msm_session_q)
+ if (!msm_session_q) {
+ pr_err("%s : Session queue not available Line %d\n",
+ __func__, __LINE__);
return -ENODEV;
+ }
session = msm_queue_find(msm_session_q, struct msm_session,
list, __msm_queue_find_session, &session_id);
- if (!session)
+ if (!session) {
+ pr_err("%s : Session not found Line %d\n",
+ __func__, __LINE__);
return -EINVAL;
+ }
mutex_lock(&session->lock);
cmd_ack = kzalloc(sizeof(*cmd_ack), GFP_KERNEL);
if (!cmd_ack) {
mutex_unlock(&session->lock);
+ pr_err("%s : memory not available Line %d\n",
+ __func__, __LINE__);
return -ENOMEM;
}
@@ -652,6 +669,8 @@
spin_lock_irqsave(&msm_eventq_lock, flags);
if (!msm_eventq) {
spin_unlock_irqrestore(&msm_eventq_lock, flags);
+ pr_err("%s : msm event queue not available Line %d\n",
+ __func__, __LINE__);
return -ENODEV;
}
spin_unlock_irqrestore(&msm_eventq_lock, flags);
@@ -661,14 +680,19 @@
/* send to imaging server and wait for ACK */
session = msm_queue_find(msm_session_q, struct msm_session,
list, __msm_queue_find_session, &session_id);
- if (WARN_ON(!session))
+ if (WARN_ON(!session)) {
+ pr_err("%s : session not found Line %d\n",
+ __func__, __LINE__);
return -EIO;
+ }
mutex_lock(&session->lock);
cmd_ack = msm_queue_find(&session->command_ack_q,
struct msm_command_ack, list,
__msm_queue_find_command_ack_q, &stream_id);
if (WARN_ON(!cmd_ack)) {
mutex_unlock(&session->lock);
+ pr_err("%s : cmd_ack not found Line %d\n",
+ __func__, __LINE__);
return -EIO;
}
@@ -676,6 +700,8 @@
if (timeout < 0) {
mutex_unlock(&session->lock);
+ pr_err("%s : timeout cannot be negative Line %d\n",
+ __func__, __LINE__);
return rc;
}
@@ -704,6 +730,8 @@
struct msm_command, list);
if (!cmd) {
mutex_unlock(&session->lock);
+ pr_err("%s : cmd dequeue failed Line %d\n",
+ __func__, __LINE__);
return -EINVAL;
}
@@ -711,9 +739,15 @@
/* compare cmd_ret and event */
if (WARN_ON(event->type != cmd->event.type) ||
- WARN_ON(event->id != cmd->event.id))
+ WARN_ON(event->id != cmd->event.id)) {
+ pr_err("%s : Either event type or id didnot match Line %d\n",
+ __func__, __LINE__);
+ pr_err("%s : event->type %d event->id %d\n", __func__,
+ event->type, event->id);
+ pr_err("%s : cmd->event.type %d cmd->event.id %d\n", __func__,
+ cmd->event.type, cmd->event.id);
rc = -EINVAL;
-
+ }
*event = cmd->event;
kzfree(cmd);