From b0cf5382efa9a97d44498fc22735c0c82b50b18a Mon Sep 17 00:00:00 2001 From: William Wu Date: Sat, 23 Apr 2022 11:02:28 +0800 Subject: [PATCH] usb: gadget: uvc: prepare buffer with data offset for rockchip platform For some Rockchip platforms (e.g. RV1106 UVC), it needs to get the offset in the plane which used for the start of data in the uvc buffer. Signed-off-by: William Wu Change-Id: I0144709f33b1d3ca955779be487134901468923f --- drivers/usb/gadget/function/uvc_queue.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/function/uvc_queue.c index 3cc3da8ffb77..1679c6c93356 100644 --- a/drivers/usb/gadget/function/uvc_queue.c +++ b/drivers/usb/gadget/function/uvc_queue.c @@ -70,7 +70,11 @@ static int uvc_buffer_prepare(struct vb2_buffer *vb) return -ENODEV; buf->state = UVC_BUF_STATE_QUEUED; +#ifdef CONFIG_ARCH_ROCKCHIP + buf->mem = vb2_plane_vaddr(vb, 0) + vb2_plane_data_offset(vb, 0); +#else buf->mem = vb2_plane_vaddr(vb, 0); +#endif buf->length = vb2_plane_size(vb, 0); if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) buf->bytesused = 0;