Commit 61aa709c authored by Michael Grzeschik's avatar Michael Grzeschik Committed by Greg Kroah-Hartman
Browse files

usb: gadget: uvc: rework uvcg_queue_next_buffer to uvcg_complete_buffer



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: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20220402232744.3622565-2-m.grzeschik@pengutronix.de


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent be30e350
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -315,24 +315,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++;
@@ -340,8 +333,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)
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,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);
+3 −3
Original line number Diff line number Diff line
@@ -112,7 +112,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;
@@ -183,7 +183,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;
	}
}
@@ -210,7 +210,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;
	}
}