Loading drivers/media/platform/msm/camera_v2/msm.c +5 −5 Original line number Diff line number Diff line Loading @@ -257,25 +257,25 @@ void msm_delete_stream(unsigned int session_id, unsigned int stream_id) return; while (1) { unsigned long wl_flags; if (try_count > 5) { pr_err("%s : not able to delete stream %d\n", __func__, __LINE__); break; } write_lock(&session->stream_rwlock); write_lock_irqsave(&session->stream_rwlock, wl_flags); try_count++; stream = msm_queue_find(&session->stream_q, struct msm_stream, list, __msm_queue_find_stream, &stream_id); if (!stream) { write_unlock(&session->stream_rwlock); write_unlock_irqrestore(&session->stream_rwlock, wl_flags); return; } if (msm_vb2_get_stream_state(stream) != 1) { write_unlock(&session->stream_rwlock); write_unlock_irqrestore(&session->stream_rwlock, wl_flags); continue; } Loading @@ -285,7 +285,7 @@ void msm_delete_stream(unsigned int session_id, unsigned int stream_id) kfree(stream); stream = NULL; spin_unlock_irqrestore(&(session->stream_q.lock), flags); write_unlock(&session->stream_rwlock); write_unlock_irqrestore(&session->stream_rwlock, wl_flags); break; } Loading drivers/media/platform/msm/camera_v2/msm_vb2/msm_vb2.c +30 −29 Original line number Diff line number Diff line Loading @@ -45,22 +45,23 @@ int msm_vb2_buf_init(struct vb2_buffer *vb) struct msm_stream *stream; struct msm_session *session; struct msm_vb2_buffer *msm_vb2_buf; unsigned long rl_flags; session = msm_get_session_from_vb2q(vb->vb2_queue); if (IS_ERR_OR_NULL(session)) return -EINVAL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s: Couldn't find stream\n", __func__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } msm_vb2_buf = container_of(vb, struct msm_vb2_buffer, vb2_buf); msm_vb2_buf->in_freeq = 0; read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return 0; } Loading @@ -69,7 +70,7 @@ static void msm_vb2_buf_queue(struct vb2_buffer *vb) struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; unsigned long flags; unsigned long flags, rl_flags; msm_vb2 = container_of(vb, struct msm_vb2_buffer, vb2_buf); Loading @@ -82,19 +83,19 @@ static void msm_vb2_buf_queue(struct vb2_buffer *vb) if (IS_ERR_OR_NULL(session)) return; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s:%d] NULL stream", __func__, __LINE__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return; } spin_lock_irqsave(&stream->stream_lock, flags); list_add_tail(&msm_vb2->list, &stream->queued_list); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); } static int msm_vb2_buf_finish(struct vb2_buffer *vb) Loading @@ -102,7 +103,7 @@ static int msm_vb2_buf_finish(struct vb2_buffer *vb) struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; unsigned long flags; unsigned long flags, rl_flags; struct msm_vb2_buffer *msm_vb2_entry, *temp; msm_vb2 = container_of(vb, struct msm_vb2_buffer, vb2_buf); Loading @@ -116,12 +117,12 @@ static int msm_vb2_buf_finish(struct vb2_buffer *vb) if (IS_ERR_OR_NULL(session)) return -EINVAL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s:%d] NULL stream", __func__, __LINE__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } Loading @@ -134,7 +135,7 @@ static int msm_vb2_buf_finish(struct vb2_buffer *vb) } } spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return 0; } Loading @@ -143,7 +144,7 @@ static void msm_vb2_buf_cleanup(struct vb2_buffer *vb) struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; unsigned long flags; unsigned long flags, rl_flags; msm_vb2 = container_of(vb, struct msm_vb2_buffer, vb2_buf); Loading @@ -156,19 +157,19 @@ static void msm_vb2_buf_cleanup(struct vb2_buffer *vb) if (IS_ERR_OR_NULL(session)) return; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s:%d] NULL stream", __func__, __LINE__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return; } spin_lock_irqsave(&stream->stream_lock, flags); INIT_LIST_HEAD(&stream->queued_list); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); } int msm_vb2_get_stream_state(struct msm_stream *stream) Loading Loading @@ -244,17 +245,17 @@ static struct vb2_buffer *msm_vb2_get_buf(int session_id, struct msm_session *session; struct vb2_buffer *vb2_buf = NULL; struct msm_vb2_buffer *msm_vb2 = NULL; unsigned long flags; unsigned long flags, rl_flags; session = msm_get_session(session_id); if (IS_ERR_OR_NULL(session)) return NULL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream(session, stream_id); if (IS_ERR_OR_NULL(stream)) { read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return NULL; } Loading @@ -280,7 +281,7 @@ static struct vb2_buffer *msm_vb2_get_buf(int session_id, vb2_buf = NULL; end: spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return vb2_buf; } Loading @@ -292,17 +293,17 @@ static int msm_vb2_put_buf(struct vb2_buffer *vb, int session_id, struct msm_vb2_buffer *msm_vb2; struct vb2_buffer *vb2_buf = NULL; int rc = 0; unsigned long flags; unsigned long flags, rl_flags; session = msm_get_session(session_id); if (IS_ERR_OR_NULL(session)) return -EINVAL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream(session, stream_id); if (IS_ERR_OR_NULL(stream)) { read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } Loading @@ -317,7 +318,7 @@ static int msm_vb2_put_buf(struct vb2_buffer *vb, int session_id, pr_err("VB buffer is INVALID vb=%p, ses_id=%d, str_id=%d\n", vb, session_id, stream_id); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } msm_vb2 = Loading @@ -333,14 +334,14 @@ static int msm_vb2_put_buf(struct vb2_buffer *vb, int session_id, rc = -EINVAL; } spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return rc; } static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, unsigned int stream_id) { unsigned long flags; unsigned long flags, rl_flags; struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; Loading @@ -351,11 +352,11 @@ static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, if (IS_ERR_OR_NULL(session)) return 0; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream(session, stream_id); if (IS_ERR_OR_NULL(stream)) { read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } Loading @@ -370,7 +371,7 @@ static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, pr_err("VB buffer is INVALID ses_id=%d, str_id=%d, vb=%p\n", session_id, stream_id, vb); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } msm_vb2 = Loading @@ -388,7 +389,7 @@ static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, rc = -EINVAL; } spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return rc; } Loading Loading
drivers/media/platform/msm/camera_v2/msm.c +5 −5 Original line number Diff line number Diff line Loading @@ -257,25 +257,25 @@ void msm_delete_stream(unsigned int session_id, unsigned int stream_id) return; while (1) { unsigned long wl_flags; if (try_count > 5) { pr_err("%s : not able to delete stream %d\n", __func__, __LINE__); break; } write_lock(&session->stream_rwlock); write_lock_irqsave(&session->stream_rwlock, wl_flags); try_count++; stream = msm_queue_find(&session->stream_q, struct msm_stream, list, __msm_queue_find_stream, &stream_id); if (!stream) { write_unlock(&session->stream_rwlock); write_unlock_irqrestore(&session->stream_rwlock, wl_flags); return; } if (msm_vb2_get_stream_state(stream) != 1) { write_unlock(&session->stream_rwlock); write_unlock_irqrestore(&session->stream_rwlock, wl_flags); continue; } Loading @@ -285,7 +285,7 @@ void msm_delete_stream(unsigned int session_id, unsigned int stream_id) kfree(stream); stream = NULL; spin_unlock_irqrestore(&(session->stream_q.lock), flags); write_unlock(&session->stream_rwlock); write_unlock_irqrestore(&session->stream_rwlock, wl_flags); break; } Loading
drivers/media/platform/msm/camera_v2/msm_vb2/msm_vb2.c +30 −29 Original line number Diff line number Diff line Loading @@ -45,22 +45,23 @@ int msm_vb2_buf_init(struct vb2_buffer *vb) struct msm_stream *stream; struct msm_session *session; struct msm_vb2_buffer *msm_vb2_buf; unsigned long rl_flags; session = msm_get_session_from_vb2q(vb->vb2_queue); if (IS_ERR_OR_NULL(session)) return -EINVAL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s: Couldn't find stream\n", __func__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } msm_vb2_buf = container_of(vb, struct msm_vb2_buffer, vb2_buf); msm_vb2_buf->in_freeq = 0; read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return 0; } Loading @@ -69,7 +70,7 @@ static void msm_vb2_buf_queue(struct vb2_buffer *vb) struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; unsigned long flags; unsigned long flags, rl_flags; msm_vb2 = container_of(vb, struct msm_vb2_buffer, vb2_buf); Loading @@ -82,19 +83,19 @@ static void msm_vb2_buf_queue(struct vb2_buffer *vb) if (IS_ERR_OR_NULL(session)) return; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s:%d] NULL stream", __func__, __LINE__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return; } spin_lock_irqsave(&stream->stream_lock, flags); list_add_tail(&msm_vb2->list, &stream->queued_list); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); } static int msm_vb2_buf_finish(struct vb2_buffer *vb) Loading @@ -102,7 +103,7 @@ static int msm_vb2_buf_finish(struct vb2_buffer *vb) struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; unsigned long flags; unsigned long flags, rl_flags; struct msm_vb2_buffer *msm_vb2_entry, *temp; msm_vb2 = container_of(vb, struct msm_vb2_buffer, vb2_buf); Loading @@ -116,12 +117,12 @@ static int msm_vb2_buf_finish(struct vb2_buffer *vb) if (IS_ERR_OR_NULL(session)) return -EINVAL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s:%d] NULL stream", __func__, __LINE__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } Loading @@ -134,7 +135,7 @@ static int msm_vb2_buf_finish(struct vb2_buffer *vb) } } spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return 0; } Loading @@ -143,7 +144,7 @@ static void msm_vb2_buf_cleanup(struct vb2_buffer *vb) struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; unsigned long flags; unsigned long flags, rl_flags; msm_vb2 = container_of(vb, struct msm_vb2_buffer, vb2_buf); Loading @@ -156,19 +157,19 @@ static void msm_vb2_buf_cleanup(struct vb2_buffer *vb) if (IS_ERR_OR_NULL(session)) return; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream_from_vb2q(vb->vb2_queue); if (!stream) { pr_err("%s:%d] NULL stream", __func__, __LINE__); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return; } spin_lock_irqsave(&stream->stream_lock, flags); INIT_LIST_HEAD(&stream->queued_list); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); } int msm_vb2_get_stream_state(struct msm_stream *stream) Loading Loading @@ -244,17 +245,17 @@ static struct vb2_buffer *msm_vb2_get_buf(int session_id, struct msm_session *session; struct vb2_buffer *vb2_buf = NULL; struct msm_vb2_buffer *msm_vb2 = NULL; unsigned long flags; unsigned long flags, rl_flags; session = msm_get_session(session_id); if (IS_ERR_OR_NULL(session)) return NULL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream(session, stream_id); if (IS_ERR_OR_NULL(stream)) { read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return NULL; } Loading @@ -280,7 +281,7 @@ static struct vb2_buffer *msm_vb2_get_buf(int session_id, vb2_buf = NULL; end: spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return vb2_buf; } Loading @@ -292,17 +293,17 @@ static int msm_vb2_put_buf(struct vb2_buffer *vb, int session_id, struct msm_vb2_buffer *msm_vb2; struct vb2_buffer *vb2_buf = NULL; int rc = 0; unsigned long flags; unsigned long flags, rl_flags; session = msm_get_session(session_id); if (IS_ERR_OR_NULL(session)) return -EINVAL; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream(session, stream_id); if (IS_ERR_OR_NULL(stream)) { read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } Loading @@ -317,7 +318,7 @@ static int msm_vb2_put_buf(struct vb2_buffer *vb, int session_id, pr_err("VB buffer is INVALID vb=%p, ses_id=%d, str_id=%d\n", vb, session_id, stream_id); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } msm_vb2 = Loading @@ -333,14 +334,14 @@ static int msm_vb2_put_buf(struct vb2_buffer *vb, int session_id, rc = -EINVAL; } spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return rc; } static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, unsigned int stream_id) { unsigned long flags; unsigned long flags, rl_flags; struct msm_vb2_buffer *msm_vb2; struct msm_stream *stream; struct msm_session *session; Loading @@ -351,11 +352,11 @@ static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, if (IS_ERR_OR_NULL(session)) return 0; read_lock(&session->stream_rwlock); read_lock_irqsave(&session->stream_rwlock, rl_flags); stream = msm_get_stream(session, stream_id); if (IS_ERR_OR_NULL(stream)) { read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } Loading @@ -370,7 +371,7 @@ static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, pr_err("VB buffer is INVALID ses_id=%d, str_id=%d, vb=%p\n", session_id, stream_id, vb); spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return -EINVAL; } msm_vb2 = Loading @@ -388,7 +389,7 @@ static int msm_vb2_buf_done(struct vb2_buffer *vb, int session_id, rc = -EINVAL; } spin_unlock_irqrestore(&stream->stream_lock, flags); read_unlock(&session->stream_rwlock); read_unlock_irqrestore(&session->stream_rwlock, rl_flags); return rc; } Loading