diff options
| author | Michael Grzeschik <[email protected]> | 2022-10-17 22:11:41 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2022-10-25 17:06:13 +0000 |
| commit | 19905240aef0181d1e6944070eb85fce75f75bcd (patch) | |
| tree | 92e1fa478b6de86f64ef793d68d957e63ccebb0a /drivers/usb/gadget/function/uvc_queue.c | |
| parent | usb: bdc: change state when port disconnected (diff) | |
| download | kernel-19905240aef0181d1e6944070eb85fce75f75bcd.tar.gz kernel-19905240aef0181d1e6944070eb85fce75f75bcd.zip | |
usb: gadget: uvc: limit isoc_sg to super speed gadgets
The overhead of preparing sg data is high for transfers with limited
payload. When transferring isoc over high-speed usb the maximum payload
is rather small which is a good argument no to use sg. This patch is
changing the uvc_video_encode_isoc_sg encode function only to be used
for super speed gadgets.
Signed-off-by: Michael Grzeschik <[email protected]>
Cc: stable <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/usb/gadget/function/uvc_queue.c')
| -rw-r--r-- | drivers/usb/gadget/function/uvc_queue.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/function/uvc_queue.c index 0aa3d7e1f3cc..782eaae93140 100644 --- a/drivers/usb/gadget/function/uvc_queue.c +++ b/drivers/usb/gadget/function/uvc_queue.c @@ -84,12 +84,9 @@ static int uvc_buffer_prepare(struct vb2_buffer *vb) return -ENODEV; buf->state = UVC_BUF_STATE_QUEUED; - if (queue->use_sg) { - buf->sgt = vb2_dma_sg_plane_desc(vb, 0); - buf->sg = buf->sgt->sgl; - } else { - buf->mem = vb2_plane_vaddr(vb, 0); - } + buf->sgt = vb2_dma_sg_plane_desc(vb, 0); + buf->sg = buf->sgt->sgl; + buf->mem = vb2_plane_vaddr(vb, 0); buf->length = vb2_plane_size(vb, 0); if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) buf->bytesused = 0; |
