blob: 3aab1740028b550aa101ef634771c0e87926a9da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
From 50dd867589931beef05dbcdb17a37a8a678e4b13 Mon Sep 17 00:00:00 2001
From: Damian Hobson-Garcia <dhobsong@igel.co.jp>
Date: Fri, 10 May 2019 13:34:42 +0900
Subject: [PATCH] Handle data_offset setting from V4L2 API
The data in each buffer does not necessarily start at the
beginning of the buffer. Adjust as necessary according to
the data_offset field specified from user space.
---
vsp2driver/vsp2_video.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/vsp2driver/vsp2_video.c b/vsp2driver/vsp2_video.c
index 8875578..0abf81c 100644
--- a/vsp2driver/vsp2_video.c
+++ b/vsp2driver/vsp2_video.c
@@ -764,7 +764,8 @@ static int vsp2_video_buffer_prepare(struct vb2_buffer *vb)
}
for (i = 0; i < vb->num_planes; ++i) {
- buf->mem.addr[i] = vb2_dma_contig_plane_dma_addr(vb, i);
+ buf->mem.addr[i] = vb2_dma_contig_plane_dma_addr(vb, i) +
+ vb->planes[i].data_offset;
if (vb2_plane_size(vb, i) < format->plane_fmt[i].sizeimage)
return -EINVAL;
--
2.17.1
|