Merge 5.18-rc5 into usb-next
[linux-2.6-microblaze.git] / drivers / usb / gadget / function / uvc_queue.c
index 2cda982..d25edc3 100644 (file)
@@ -185,18 +185,7 @@ int uvcg_query_buffer(struct uvc_video_queue *queue, struct v4l2_buffer *buf)
 
 int uvcg_queue_buffer(struct uvc_video_queue *queue, struct v4l2_buffer *buf)
 {
-       unsigned long flags;
-       int ret;
-
-       ret = vb2_qbuf(&queue->queue, NULL, buf);
-       if (ret < 0)
-               return ret;
-
-       spin_lock_irqsave(&queue->irqlock, flags);
-       ret = (queue->flags & UVC_QUEUE_PAUSED) != 0;
-       queue->flags &= ~UVC_QUEUE_PAUSED;
-       spin_unlock_irqrestore(&queue->irqlock, flags);
-       return ret;
+       return vb2_qbuf(&queue->queue, NULL, buf);
 }
 
 /*
@@ -328,33 +317,22 @@ int uvcg_queue_enable(struct uvc_video_queue *queue, int enable)
 }
 
 /* called with &queue_irqlock held.. */
-struct uvc_buffer *uvcg_queue_next_buffer(struct uvc_video_queue *queue,
+void uvcg_complete_buffer(struct uvc_video_queue *queue,
                                          struct uvc_buffer *buf)
 {
-       struct uvc_buffer *nextbuf;
-
        if ((queue->flags & UVC_QUEUE_DROP_INCOMPLETE) &&
             buf->length != buf->bytesused) {
                buf->state = UVC_BUF_STATE_QUEUED;
                vb2_set_plane_payload(&buf->buf.vb2_buf, 0, 0);
-               return buf;
+               return;
        }
 
-       list_del(&buf->queue);
-       if (!list_empty(&queue->irqqueue))
-               nextbuf = list_first_entry(&queue->irqqueue, struct uvc_buffer,
-                                          queue);
-       else
-               nextbuf = NULL;
-
        buf->buf.field = V4L2_FIELD_NONE;
        buf->buf.sequence = queue->sequence++;
        buf->buf.vb2_buf.timestamp = ktime_get_ns();
 
        vb2_set_plane_payload(&buf->buf.vb2_buf, 0, buf->bytesused);
        vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_DONE);
-
-       return nextbuf;
 }
 
 struct uvc_buffer *uvcg_queue_head(struct uvc_video_queue *queue)
@@ -364,8 +342,6 @@ struct uvc_buffer *uvcg_queue_head(struct uvc_video_queue *queue)
        if (!list_empty(&queue->irqqueue))
                buf = list_first_entry(&queue->irqqueue, struct uvc_buffer,
                                       queue);
-       else
-               queue->flags |= UVC_QUEUE_PAUSED;
 
        return buf;
 }