usb: gadget: uvc: rework uvcg_queue_next_buffer to uvcg_complete_buffer
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Sat, 2 Apr 2022 23:27:42 +0000 (01:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 29 Oct 2022 08:12:53 +0000 (10:12 +0200)
commit 61aa709ca58a0dbeeb817bfa9230c1a92979f2c6 upstream.

The function uvcg_queue_next_buffer is used different than its name
suggests. The return value nextbuf is never used by any caller. This
patch reworks the function to its actual purpose, by removing the unused
code and renaming it. The function name uvcg_complete_buffer makes it
more clear that it is actually marking the current video buffer as
complete.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20220402232744.3622565-2-m.grzeschik@pengutronix.de
Cc: Dan Vacura <w36195@motorola.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/uvc_queue.c
drivers/usb/gadget/function/uvc_queue.h
drivers/usb/gadget/function/uvc_video.c

index a64b842665b922c94c698a045e0f52c8c2d2a5f6..d9eda91ba4de5155979e3bee1016c5a968d5ac9c 100644 (file)
@@ -335,24 +335,17 @@ 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++;
@@ -360,8 +353,6 @@ struct uvc_buffer *uvcg_queue_next_buffer(struct uvc_video_queue *queue,
 
        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)
index 05360a0767f61f8f4e20010e4a70a8a5cee7928b..b668927b5d2c4ef9c04c228a842226214435790c 100644 (file)
@@ -93,7 +93,7 @@ void uvcg_queue_cancel(struct uvc_video_queue *queue, int disconnect);
 
 int uvcg_queue_enable(struct uvc_video_queue *queue, int enable);
 
-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 *uvcg_queue_head(struct uvc_video_queue *queue);
index fb414c1dd6cd9e5eaca71b1422b51afd0288d833..1b8d8b9bb3ecf9af800ca0a3468bb5f66d877c94 100644 (file)
@@ -83,7 +83,7 @@ uvc_video_encode_bulk(struct usb_request *req, struct uvc_video *video,
        if (buf->bytesused == video->queue.buf_used) {
                video->queue.buf_used = 0;
                buf->state = UVC_BUF_STATE_DONE;
-               uvcg_queue_next_buffer(&video->queue, buf);
+               uvcg_complete_buffer(&video->queue, buf);
                video->fid ^= UVC_STREAM_FID;
 
                video->payload_size = 0;
@@ -154,7 +154,7 @@ uvc_video_encode_isoc_sg(struct usb_request *req, struct uvc_video *video,
                video->queue.buf_used = 0;
                buf->state = UVC_BUF_STATE_DONE;
                buf->offset = 0;
-               uvcg_queue_next_buffer(&video->queue, buf);
+               uvcg_complete_buffer(&video->queue, buf);
                video->fid ^= UVC_STREAM_FID;
        }
 }
@@ -181,7 +181,7 @@ uvc_video_encode_isoc(struct usb_request *req, struct uvc_video *video,
        if (buf->bytesused == video->queue.buf_used) {
                video->queue.buf_used = 0;
                buf->state = UVC_BUF_STATE_DONE;
-               uvcg_queue_next_buffer(&video->queue, buf);
+               uvcg_complete_buffer(&video->queue, buf);
                video->fid ^= UVC_STREAM_FID;
        }
 }