mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
usb: gadget: uvc: use on returned header len in video_encode_isoc_sg
The function uvc_video_encode_header function returns the number of bytes used for the header. We change the video_encode_isoc_sg function to use the returned header_len rather than UVCG_REQUEST_HEADER_LEN and make the encode function more flexible. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Link: https://lore.kernel.org/r/20211022093223.26493-1-m.grzeschik@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d9f2734843
commit
f262ce66d4
|
|
@ -104,22 +104,22 @@ uvc_video_encode_isoc_sg(struct usb_request *req, struct uvc_video *video,
|
|||
unsigned int len = video->req_size;
|
||||
unsigned int sg_left, part = 0;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
int header_len;
|
||||
|
||||
sg = ureq->sgt.sgl;
|
||||
sg_init_table(sg, ureq->sgt.nents);
|
||||
|
||||
/* Init the header. */
|
||||
ret = uvc_video_encode_header(video, buf, ureq->header,
|
||||
header_len = uvc_video_encode_header(video, buf, ureq->header,
|
||||
video->req_size);
|
||||
sg_set_buf(sg, ureq->header, UVCG_REQUEST_HEADER_LEN);
|
||||
len -= ret;
|
||||
sg_set_buf(sg, ureq->header, header_len);
|
||||
len -= header_len;
|
||||
|
||||
if (pending <= len)
|
||||
len = pending;
|
||||
|
||||
req->length = (len == pending) ?
|
||||
len + UVCG_REQUEST_HEADER_LEN : video->req_size;
|
||||
len + header_len : video->req_size;
|
||||
|
||||
/* Init the pending sgs with payload */
|
||||
sg = sg_next(sg);
|
||||
|
|
@ -148,7 +148,7 @@ uvc_video_encode_isoc_sg(struct usb_request *req, struct uvc_video *video,
|
|||
req->num_sgs = i + 1;
|
||||
|
||||
req->length -= len;
|
||||
video->queue.buf_used += req->length - UVCG_REQUEST_HEADER_LEN;
|
||||
video->queue.buf_used += req->length - header_len;
|
||||
|
||||
if (buf->bytesused == video->queue.buf_used || !buf->sg) {
|
||||
video->queue.buf_used = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user