aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/omap3isp/ispqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/platform/omap3isp/ispqueue.c')
-rw-r--r--drivers/media/platform/omap3isp/ispqueue.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/drivers/media/platform/omap3isp/ispqueue.c b/drivers/media/platform/omap3isp/ispqueue.c
index dcd9446f01a5..77afb6370443 100644
--- a/drivers/media/platform/omap3isp/ispqueue.c
+++ b/drivers/media/platform/omap3isp/ispqueue.c
@@ -660,7 +660,6 @@ int omap3isp_video_queue_init(struct isp_video_queue *queue,
660 struct device *dev, unsigned int bufsize) 660 struct device *dev, unsigned int bufsize)
661{ 661{
662 INIT_LIST_HEAD(&queue->queue); 662 INIT_LIST_HEAD(&queue->queue);
663 spin_lock_init(&queue->irqlock);
664 663
665 queue->type = type; 664 queue->type = type;
666 queue->ops = ops; 665 queue->ops = ops;
@@ -761,7 +760,6 @@ int omap3isp_video_queue_qbuf(struct isp_video_queue *queue,
761 struct v4l2_buffer *vbuf) 760 struct v4l2_buffer *vbuf)
762{ 761{
763 struct isp_video_buffer *buf; 762 struct isp_video_buffer *buf;
764 unsigned long flags;
765 int ret; 763 int ret;
766 764
767 if (vbuf->type != queue->type) 765 if (vbuf->type != queue->type)
@@ -801,11 +799,8 @@ int omap3isp_video_queue_qbuf(struct isp_video_queue *queue,
801 buf->state = ISP_BUF_STATE_QUEUED; 799 buf->state = ISP_BUF_STATE_QUEUED;
802 list_add_tail(&buf->stream, &queue->queue); 800 list_add_tail(&buf->stream, &queue->queue);
803 801
804 if (queue->streaming) { 802 if (queue->streaming)
805 spin_lock_irqsave(&queue->irqlock, flags);
806 queue->ops->buffer_queue(buf); 803 queue->ops->buffer_queue(buf);
807 spin_unlock_irqrestore(&queue->irqlock, flags);
808 }
809 804
810 return 0; 805 return 0;
811} 806}
@@ -862,17 +857,14 @@ int omap3isp_video_queue_dqbuf(struct isp_video_queue *queue,
862int omap3isp_video_queue_streamon(struct isp_video_queue *queue) 857int omap3isp_video_queue_streamon(struct isp_video_queue *queue)
863{ 858{
864 struct isp_video_buffer *buf; 859 struct isp_video_buffer *buf;
865 unsigned long flags;
866 860
867 if (queue->streaming) 861 if (queue->streaming)
868 return 0; 862 return 0;
869 863
870 queue->streaming = 1; 864 queue->streaming = 1;
871 865
872 spin_lock_irqsave(&queue->irqlock, flags);
873 list_for_each_entry(buf, &queue->queue, stream) 866 list_for_each_entry(buf, &queue->queue, stream)
874 queue->ops->buffer_queue(buf); 867 queue->ops->buffer_queue(buf);
875 spin_unlock_irqrestore(&queue->irqlock, flags);
876 868
877 return 0; 869 return 0;
878} 870}
@@ -890,7 +882,6 @@ int omap3isp_video_queue_streamon(struct isp_video_queue *queue)
890void omap3isp_video_queue_streamoff(struct isp_video_queue *queue) 882void omap3isp_video_queue_streamoff(struct isp_video_queue *queue)
891{ 883{
892 struct isp_video_buffer *buf; 884 struct isp_video_buffer *buf;
893 unsigned long flags;
894 unsigned int i; 885 unsigned int i;
895 886
896 if (!queue->streaming) 887 if (!queue->streaming)
@@ -898,7 +889,6 @@ void omap3isp_video_queue_streamoff(struct isp_video_queue *queue)
898 889
899 queue->streaming = 0; 890 queue->streaming = 0;
900 891
901 spin_lock_irqsave(&queue->irqlock, flags);
902 for (i = 0; i < queue->count; ++i) { 892 for (i = 0; i < queue->count; ++i) {
903 buf = queue->buffers[i]; 893 buf = queue->buffers[i];
904 894
@@ -907,7 +897,6 @@ void omap3isp_video_queue_streamoff(struct isp_video_queue *queue)
907 897
908 buf->state = ISP_BUF_STATE_IDLE; 898 buf->state = ISP_BUF_STATE_IDLE;
909 } 899 }
910 spin_unlock_irqrestore(&queue->irqlock, flags);
911 900
912 INIT_LIST_HEAD(&queue->queue); 901 INIT_LIST_HEAD(&queue->queue);
913} 902}